锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / ffmpeg / ffmpeg运用x264编码的配置
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
技术分类
讨论组翻译
用队列、SDL和线程解决播放不连贯问题
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源心得,转载请注明:“锐英源www.wisestudy.cn,孙老师作品,电话13803810136。”需要全文内容也请联系孙老师。

ffmpeg运用x264编码的配置

x264始于2003年,从当开源社区的MPEG4-ASP编码器Xvid小有所成时开始的,经过几年的开发,特别是Dark Shikari加入开发后,x264逐渐成为了最好的视频编码器。FFmpeg的H264编码部分就是加入了X264模块的,所以实质上想进行H264编码那就用X264库编码吧。使用ffmpeg进行.264编码的相关文章比较少,特总结如下:
qscale的取值可以是0.01-255但实际使用超过50就很糟糕了
ffmpeg的cbr模式可以把码率控制的不错,但是vbr无法限制最高码率(虽然有max的设置,但是程序没有实现)
x264标准的封装是x264+aac in flv或者x264+aac in MP4
接下来说明下ffmpeg命令行的语法规则:

语法规则结构:

ffmpeg [[infile options][`-i' infile]]... {[outfile options] outfile}...
一个最简单的命令形式:
ffmpeg -i input.avi -b 64k output.avi
这个命令把视频以64k的码率重编码。
显然,输入文件前面要加一个-i选项下面介绍一些有用的全局参数:
-formats 参数。会显示你机器当前支持的封装、编码、解码器的信息
-y参数,会指示ffmpeg覆盖输出文件
-t 指定视频流持续的时常,支持以秒为单位的数字或"时:分:秒[.毫秒]"
-fs 指定输出文件大小的限制
-ss 指定开始的时间,和-t的单位一样
-target 直接设定你想要转成的目标格式,所有的相关设置都会采用内设值,当然也你也可以加上自己要修改的参数。可用的选择有:
"vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", …
这个例子把视频转换成vcd的格式
ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg

视频选项:

-b 指定码率注意单位是bit/s,所以我们一般要加k,比如 -b 1000k 就是1000kb/s
-g 设置组的大小
-vframes 指定要编码的帧数,比如-vframes 1 就是编码1帧,截图的时候就这样写.
-r 指定帧率,默认是25
-s 指定图像分辨率,用wxh的格式,比如320×240
-aspect 指定宽高比 可以些16:9这种,也可以写小数比如1.3333
-croptop 指定顶部裁减多少像素,类似的还有-cropleft -cropright -cropbuttom
-bt 设置比特率容许的误差,默认4000k,在第一阶段时使用这个参数会告诉码率控制器能够偏移平均码率多远,这个选项和最大最小码率无关.设太小了不利于质量
-maxrate 和-minrate 指定允许的最大和最小码率,一般如果要用cbr模式编码的话会用这个:
ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
否则用处不大
-vcodec 强制使用某种编码器
-sameq 使用和源文件相同的质量,这个选项是动态码率的
-pass 指定编码阶段,这个只有1和2,第一阶段的时候应该不处理音频,并且把输出导向空,比如: ffmpeg -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y NULffmpeg -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y /dev/null
-qscale 使用固定量化因子来量化视频这个是在vbr模式的,前面有提到,越小质量越好,不要超过50,相关的参数还有-qmin –qmax用来设定最大最小可使用的量化值
-qdiff 指定固定量化器因子允许的最大偏差
-qblur 指定量化器模糊系数,可用范围是0.0-1.0越大使得码率在时间上分配的越平均
-qcomp 指定视频量化器压缩系数,默认0.5
-me_method 指定运动估计方法(motion estimation method),可用的选择从垃圾到好排列如下:
zero (0向量)
phods
log
x1
hex
umh
epzs (默认)
full (完全搜索,很慢又好不到哪里去)
-mbd 设定宏模块决策,可用的值:
0 使用mb_cmp,不知道是什么东西,所以这些参数我参考一下mencoder里面的
1 选用需要比特最少的宏块模式
2 选用码率失真最优的宏块模式
-4mv 使用宏块的4个运动向量,只支持mpeg4
-part 使用数据划分,只支持mpeg4
-ilme 强制允许交错的编码,只支持mpeg2和mpeg4,你可以选择用-deinterlace来去交错

音频部分:

-ar 设置采样频率,默认44100hz
-ab 设置比特率,默认64k
-an 禁用音频录制
-acodec 指定音频编码器
友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内