编码转换

视频处理软件ffmpeg

蓝咒 提交于 2020-02-05 02:06:43
title: ffmpeg date: 2019-10-22 author: Firefly top: false cover: true img: coverImg: toc: true mathjax: false categories: 工具 tags: 树莓派 工具 ffmpeg 转载 ffmpeg的使用方式: ffmpeg [options] [[infile options] -i infile]… {[outfile options] outfile}… 常用参数说明: 主要参数: -i 设定输入流 -f 设定输出格式 -ss 开始时间 视频参数: -b 设定视频流量,默认为200Kbit/s -r 设定帧速率,默认为25 -s 设定画面的宽与高 -aspect 设定画面的比例 -vn 不处理视频 -vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器 音频参数: -ar 设定采样率 -ac 设定声音的Channel数 -acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器 -an 不处理音频 1.视频格式转换 (其实格式转换说法不太准确,但大家都这么叫,准确的说,应该是视频容器转换) 比如一个avi文件,想转为mp4,或者一个mp4想转为ts。 ffmpeg -i input.avi output.mp4 ffmpeg -i

关于视频的一些概念

南楼画角 提交于 2020-02-05 00:42:18
http://www.samirchen.com/video-concept/ 关于视频的一些概念 2016-01-28 视频相关概念 视频文件格式 文件格式这个概念应该是我们比较熟悉的,比如我们常见的 Word 文档的文件格式是 .doc ,JPG 图片的文件格式是 .jpg 等等。那对于视频来说,我们常见的文件格式则有: .mov 、 .avi 、 .mpg 、 .vob 、 .mkv 、 .rm 、 .rmvb 等等。文件格式通常表现为文件在操作系统上存储时的后缀名,它通常会被操作系统用来与相应的打开程序关联,比如你双击一个 test.doc 文件,系统会调用 Word 去打开它。你双击一个 test.avi 或者 test.mkv 系统会调用视频播放器去打开它。 同样是视频,为什么会有 .mov 、 .avi 、 .mpg 等等这么多种文件格式呢?那是因为它们通过不同的方式实现了视频这件事情,至于这个不同在哪里,那就需要了解一下接下来要说的「视频封装格式」这个概念了。 视频封装格式 视频封装格式,简称视频格式,相当于一种储存视频信息的容器,它里面包含了封装视频文件所需要的视频信息、音频信息和相关的配置信息(比如:视频和音频的关联信息、如何解码等等)。一种视频封装格式的直接反映就是对应着相应的视频文件格式。 下面我们就列举一些文件封装格式: AVI 格式 ,对应的文件格式为

Unicode字符串

戏子无情 提交于 2020-02-04 23:45:49
字符串还有一个编码问题。 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122。 如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。 类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。 Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。 因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。 Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,其中的转义依然起作用,比如: print(u'中文') 运行结果 中文 转义: u'中文\n日文\n韩文' 多行: u

python之文件读写

瘦欲@ 提交于 2020-02-04 04:06:25
本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一、I/O操作概述 I/O在计算机中是指Input/Output,也就是Stream(流)的输入和输出。这里的输入和输出是相对于内存来说的,Input Stream(输入流)是指数据从外(磁盘、网络)流进内存,Output Stream是数据从内存流出到外面(磁盘、网络)。程序运行时,数据都是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方(通常是磁盘、网络操作)就需要IO接口。 那么这个IO接口是由谁提供呢?高级编程语言中的IO操作是如何实现的呢? 操作系统是个通用的软件程序,其通用目的如下: 硬件驱动 进程管理 内存管理 网络管理 安全管理 I/O管理 操作系统屏蔽了底层硬件,向上提供通用接口。因此,操作I/O的能力是由操作系统的提供的,每一种编程语言都会把操作系统提供的低级C接口封装起来供开发者使用,Python也不例外。 二、文件读写实现原理与操作步骤 1. 文件读写实现原理 文件读写就是一种常见的IO操作。那么根据上面的描述,可以推断python也应该封装操作系统的底层接口,直接提供了文件读写相关的操作方法。事实上,也确实如此,而且Java、PHP等其他语言也是。 那么我们要操作的对象是什么呢

Qt 编码问题QTextCodec

醉酒当歌 提交于 2020-02-03 16:31:31
一般在Window开发环境里,是GBK编码,在Linux开发环境里,是utf-8编码,关于编码的定义, 我就不这里多说了,网上有一大堆资料可以查看。 qt 对默认的是 unicode 编码, 在Window开发环境里,比较通用的写法是: 在main.cpp文件中加入: 1. QTextCodec *gbk = QTextCodec::codecForName("gb18030"); 2. QTextCodec::setCodecForTr(gbk); 3. QTextCodec::setCodecForLocale(gbk); 4. QTextCodec::setCodecForCStrings(gbk); 第一行:定义gb18030编码格式 第二行: 这个函数的作用是设置传给 tr函数时的默认字符串编码 ,GUI设计中最常用的一种。 第三行:这个函数主要用于设置和对本地文件系统读写时候的默认编码格式。比如通过 流读取一个文件内容时的编码格式 。或者通过 qDebug()输出打印信息时的编码 。 第四行:这个函数主要是用在 字符常量或者QByteArray构造QString对象时使用的一种编码方式 。 同理,在Linux开发环境里, 通用的写法是: QTextCodec *utg8 = QTextCodec::codecForName("utf-8"); QTextCodec:

Python之文件读写

允我心安 提交于 2020-02-03 10:41:56
本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一、I/O操作概述 I/O在计算机中是指Input/Output,也就是Stream(流)的输入和输出。这里的输入和输出是相对于内存来说的,Input Stream(输入流)是指数据从外(磁盘、网络)流进内存,Output Stream是数据从内存流出到外面(磁盘、网络)。程序运行时,数据都是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方(通常是磁盘、网络操作)就需要IO接口。 那么这个IO接口是由谁提供呢?高级编程语言中的IO操作是如何实现的呢? 操作系统是个通用的软件程序,其通用目的如下: 硬件驱动 进程管理 内存管理 网络管理 安全管理 I/O管理 操作系统屏蔽了底层硬件,向上提供通用接口。因此,操作I/O的能力是由操作系统的提供的,每一种编程语言都会把操作系统提供的低级C接口封装起来供开发者使用,Python也不例外。 二、文件读写实现原理与操作步骤 1. 文件读写实现原理 文件读写就是一种常见的IO操作。那么根据上面的描述,可以推断python也应该封装操作系统的底层接口,直接提供了文件读写相关的操作方法。事实上,也确实如此,而且Java、PHP等其他语言也是。 那么我们要操作的对象是什么呢

怎么保证测试用例的覆盖率

我们两清 提交于 2020-02-01 20:34:18
转自:http://www.51testing.com/html/71/n-865171-2.html 可参考:http://www.cnblogs.com/TestWorld/p/5211043.html 待总结.. 一、测试用例的切面设计   所谓测试切面设计,其实就是测试用例大项的划分。测试用例划分的经典方法是瀑布模型,也就是从上到下,逐渐细分,大模块包括小模块,小模块包括更小的模块。但仅仅如此是不够的,我们还要从更多的角度切入系统,从不同的角度把系统切分成一块一块的,来进行测试,从而确保测试大项的完整性。   1、功能点切面   这是最常见的切面,通常我们认为页面上的一个按钮就是一个功能点。然后我们可以根据功能的复杂程度,按每个功能;或一个功能点分多页;或多个功能点合成一页来进行用例的撰写。   2、特定切面   除此以外,还有一种特定切面的划分方法,也是用例撰写时经常会用到的。所谓的特定切面,就是忽略掉表面上的功能点,而关注测试对象的某一个面。比如我们的内部管理系统提供了销售录入导入、注册录入导入等功能,从菜单划分上对应了七八个功能点。但这些功能处理后台有个共同的处理项就是授权记录的生成,这时我们就可以把“授权记录生成”单独拿出来做一个测试项,而在其它测试项中涉及这一部分的用例就不必再一一撰写。此外象一些界面共通的操作用例单独写成一页,也是一种特定切面

数字图像处理及应用(期末复习整理)

社会主义新天地 提交于 2020-02-01 17:08:32
一、图像及其类型 图像(image)的定义是: 在一般意义下,一幅图像是一个物体或对象(object)的另一种表示。亦即图像是其所表示物体或对象信息的一个直接描述和浓缩表示。简而言之,即图像是物体在平面坐标上的直观再现。一幅图像包含了所表示物体的描述信息和特征信息,或者说图像是与之对应的物体或抽象的一个真实表示,这个表示可以通过某些技术手段实现。 数字图像处理(digital image processing): 又称为计算机图像处理,它是通过计算机对图像进行去除噪声、增强、变换、复原、分割、特征提取、识别等运算与处理。 图像的分类: 可见图像(visible image): 是指视觉系统可以直接看见的图像,这也是大多数人在日常生活中所见到的和所理解的图像,这一类图像一般通过照像、手工绘制等传统方法获得,通常计算机不能直接处理,但是经过数字化处理后可变为数字图像。 物理图像(physical image): 所反映的是物体的电磁波辐射能,包括可见光和不可见光图像。 数字图像(maths image) :指由连续函数或离散函数生成的抽象图像,其中离散函数所生成的图像就是计算机可以处理的数字图像。 其他相关概念: 计算机图形学(computer graphic): 是指利用计算机技术将概念或数学描述所表示的物体(非实物)图像进行处理和显示的过程。 计算机视觉(computer

Java 字符集,编码、解码

半世苍凉 提交于 2020-02-01 02:59:59
1、 计算机中文件、数据底层都是基于二进制的。 计算机底层并没有文本文件、图片文件之分,它只是记录着每个文件的二进制序列。 字符集:包含着字符和二进制序列之间的对应关系,一个字符对应一个二进制序列。 编码(Encode):把人能看懂的明文转换为计算机能理解二进制序列。 解码(Decode):把计算机中的二进制序列转换为人能看懂的明文。 乱码:解码方式与编码方式不同,即编码、解码使用的字符集不一致。 Windows中文本文件的默认字符集是GBK。 2、 字节的文件输出流可以指定写入模式: FileOutputStream fos=new FileOutputStream(String/File file); FileOutputStream fos=new FileOutputStream(String/File file,boolean b); //第二个参数指定是否是追加模式,true——追加,false——覆盖。 字符的文件流可以指定字符集: FileWriter fw=new FileWriter(String/File file);FileReader fr=new FileReader(String/File file); //指定字符集FileWriter fw=new FileWriter(String/File file, String/Charset

基于遗传算法的柔性车间调度问题的求解(Flexible Job-shop scheduling problem based on genetic algorithm)

喜夏-厌秋 提交于 2020-02-01 02:48:50
1、前言 距离上次研究传统车间调度问题(Job-shop scheduling problem,JSP ),大约有一个月左右了,这期间研究了一下柔性作业车间调度(Flexible Job-shop scheduling problem,FJSP),并利用MATLAB实现了基于遗传算法的FJSP问题求解。在此与大家分享一下,有问题欢迎评论留言,共同交流学习,完整代码见 基于遗传算法的FJSP问题求解 (备注:该源码在原来的 作业车间调度算法 基础上修改,部分命名未及时修改,不影响代码质量)。 2、柔性车间调度问题描述 柔性作业车间调度问题是传统Job-Shop 调度问题的扩展。在传统的 Job-Shop 调度问题中,工件的每道工序只能在一台确定的机床上加工。而在柔性作业车间调度问题中,每道工序可以在多台机床上加工,并且在不同的机床上加工所需时间不同。柔性作业车间调度问题减少了机器约束,扩大了可行解的搜索范围,增加了问题的复杂性。 柔性作业车间调度问题的描述如下:一个加工系统有 m 台机器,要加工 n种工件。每个工件包含一道或多道工序,工件的工序顺序是预先确定的;每道工序可以在多台不同的机床上加工,工序的加工时间随机床的性能不同而变化。调度目标是为每道工序选择最合适的机器、确定每台机器上各工件工序的最佳加工顺序及开工时间,使系统的某些性能指标达到最优。此外