ffmpeg转换参数和对几种视频格式的转换分析

日志源地址:http://j2ee.blog.sohu.com/79718171.html

我们在将多种格式的视频转换成flv格式的时候,我们关注的就是转换后的flv视频的品质和大小。下面就自己的实践所得来和大家分享一下,主要针对avi、3gp、mp4和wmv四种格式来进行分析。通常在使用ffmpeg进行视频转换的时候我们使用到的控制音视频的主要参数有如下:
-ab bitrate 设置音频码率
-acodec codec 使用codec编解码
-ac channels 设置通道,缺省为1
-ar freq 设置音频采样率
-r fps 设置帧频,缺省25
-b bitrate 设置比特率,缺省200kb/s
-qscale 6或4 使用动态码率来设置
对于其他诸如-i、-y、-s等参数基本上都是可以很好理解的了。我们上面提到的几个参数前四个主要是用来设置音频的,后三个主要是用来设置视频的。对于音频的ar(采样率)可以指定为22050、24000、44100或48000,一般来将后两种比较常见;对于音频的ab(码率)一般是选择32、64、96或128这几种;对音频的acodec则是指定编码方式,可以指定为libmp3lame或aac等,这两种分别是指使用mp3和aac格式的音频。在实际的测试过程中我发现在使用mp3进行音频编码时指定ab为64或更高和指定ar为22050或更高对实际的视频音质没有什么大的影响,请参见后面的测试结果。

对于视频的r用来指定帧频,一般设置为29.97;对于视频的b(视频的比特率)可以指定如128、314等数字,对于1500以上则没有效果;对于视频的qscale,属于动态码率,可以设置为4或6,4的质量比6的要高。在测试的过程中我发现设置-b参数对视频的质量并没有过大的改变(指定大指定小都差不多或是一样),而设置qscale则完全不一样,如果我们想获取高品质的话应该使用动态码率而不是指定-b参数,当然了,使用动态码率的坏处就是视频的体积变大了。在使用动态码率的时候使用6的效果和4差不多,但是体积减少了,因此通常建议使用6来设置动态码率。

上面介绍了转换过程中的音视频的配置参数,综合上面,我们在转换的时候通常的命令如下:
高品质:ffmpeg -i infile -ab 128 -acodec libmp3lame -ac 1 -ar 22050 -r 29.97 -qscale 6 -y outfile
低品质:ffmpeg -i infile -ab 128 -acodec libmp3lame -ac 1 -ar 22050 -r 29.97 -b 512 -y outfile

使用这两个命令测试四种格式的视频结果如下,同时在测试的过程中会改变相应的参数进行测试,四个视频的信息如下:
AVI格式的:test.avi 14.1M
3GP格式的:test.3gp 4.30M
MP4格式的:test.mp4 16.4M
WMV格式的:test.wmv 15.0M

1.使用高品质的脚本测试结果如下:
AVI格式转换后的:-qscale 6结果=avi_01.flv 6.61M -qscale 4结果=avi_02.flv 9.30M
3GP格式转换后的:-qscale 6结果=3gp_01.flv 4.21M -qscale 4结果=3gp_02.flv 5.30M
MP4格式转换后的:-qscale 6结果=mp4_01.flv 13.1M -qscale 4结果=mp4_02.flv 17.5M
WMV格式转换后的:-qscale 6结果=wmv_01.flv 15.9M -qscale 4结果=wmv_02.flv 22.3M

2.使用低品质的脚本测试结果如下:
AVI格式转换后的:-b 512结果=avi_03.flv 2.87M -b 1000结果=avi_04.flv 2.87M
3GP格式转换后的:-b 512结果=3gp_03.flv 1.73M -b 1000结果=3gp_04.flv 1.73M
MP4格式转换后的:-b 512结果=mp4_03.flv 5.84M -b 1000结果=mp4_04.flv 5.84M
WMV格式转换后的:-b 512结果=wmv_03.flv 6.17M -b 1000结果=wmv_04.flv 6.17M

3.压缩率比较如下:
AVI格式转换后的:-qscale 6结果=53.12% -qscale 4结果=34.04% -b 512/1000结果=79.65%
3GP格式转换后的:-qscale 6结果=2.093% -qscale 4结果=123.1% -b 512/1000结果=59.77%
MP4格式转换后的:-qscale 6结果=20.12% -qscale 4结果=106.7% -b 512/1000结果=64.39%
WMV格式转换后的:-qscale 6结果=106.0% -qscale 4结果=148.7% -b 512/1000结果=58.87%

通过比较前后的压缩大小我们可以看到在音频保持一致的情况下,使用高品质的转换和使用低品质的转换的巨大差异,同时对于不同格式的视频在转换的过程中也会出现比较大的差异。当然了,这些数据并不一定代表所有这些格式的视频都是如此,具体的要看大家的应用了。不过,我们可以确定的是AVI格式的视频在转换成FLV格式后其压缩率最大,不过对于不同编码的AVI其结果就不一定了。同时我们也还看到,对于某些格式的视频在转换后其体积比原先的还大了,这个我们在应用的时候就需要注意了。

这里没有测试RM和RMVB格式的,因为ffmpeg无法直接转换这两种格式的视频,下次我将使用mencoder来测试转换RM和RMVB格式的视频为FLV的分析。以下是转换前后截取的图片,可以参考看一下.

1.AVI格式截取前、使用-qscale 6和-b 512三个的截图分别如下:


2.3GP格式截取前、使用-qscale 6和-b 512三个的截图分别如下:


3.MP4格式截取前、使用-qscale 6和-b 512三个的截图分别如下:


4.WMV格式截取前、使用-qscale 6和-b 512三个的截图分别如下:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用R19CNDK编译完整的FFMPE4.2.2库,用于集成到Android平台使用,完成音视频开发。 压缩包里包含了完整源码,配置文件、编译成功的动态库。如何需要重新编译,可以自己看配置文件。 配置文件包含了arm-v7、arm64-v8两种,根据自己平台可以选择编译。 ffmpeg里编译时包含了X264解码库。 支持的解码库如下; "当前APP的工作路径:/home/wbyq/qt_code/build-ffmpeg_code-Desktop_Qt_5_12_6_GCC_64bit-Release\n" "FFMPEG的版本号:4.2.2\n" "[Encode][Video]a64multi ID=142" "[Encode][Video]a64multi5 ID=143" "[Encode][Video]alias_pix ID=175" "[Encode][Video]amv ID=107" "[Encode][Video]apng ID=32782" "[Encode][Video]asv1 ID=31" "[Encode][Video]asv2 ID=32" "[Encode][Video]avrp ID=32769" "[Encode][Video]avui ID=32771" "[Encode][Video]ayuv ID=32772" "[Encode][Video]bmp ID=78" "[Encode][Video]cinepak ID=43" "[Encode][Video]cljr ID=36" "[Encode][Audeo]comfortnoise ID=86077" "[Encode][Video]dnxhd ID=99" "[Encode][Video]dpx ID=128" "[Encode][Video]dvvideo ID=24" "[Encode][Video]ffv1 ID=33" "[Encode][Video]ffvhuff ID=67" "[Encode][Video]fits ID=32803" "[Encode][Video]flashsv ID=86" "[Encode][Video]flashsv2 ID=131" "[Encode][Video]flv ID=21" "[Encode][Video]gif ID=97" "[Encode][Video]h261 ID=3" "[Encode][Video]h263 ID=4" "[Encode][Video]h263p ID=19" "[Encode][Video]huffyuv ID=25" "[Encode][Video]jpeg2000 ID=88" "[Encode][Video]jpegls ID=11" "[Encode][Video]ljpeg ID=9" "[Encode][Video]magicyuv ID=32787" "[Encode][Video]mjpeg ID=7" "[Encode][Video]mpeg1video ID=1" "[Encode][Video]mpeg2video ID=2" "[Encode][Video]mpeg4 ID=12" "[Encode][Video]msmpeg4v2 ID=15" "[Encode][Video]msmpeg4 ID=16" "[Encode][Video]msvideo1 ID=46" "[Encode][Video]pam ID=66" "[Encode][Video]pbm ID=63" "[Encode][Video]pcx ID=109" "[Encode][Video]pgm ID=64" "[Encode][Video]pgmyuv ID=65" "[Encode][Video]png ID=61" "[Encode][Video]ppm ID=62" "[Encode][Video]prores ID=147" "[Encode][Video]prores_aw ID=147" "[Encode][Video]prores_ks ID=147" "[Encode][Video]qtrle ID=55" "[Encode][Video]r10k ID=144" "[Encode][Video]r210 ID=133" "[Encode][Video]rawvideo ID=13" "[Encode][Video]roqvideo ID=38" "[Encode][Video]rv10 ID=5" "[Encode][Video]rv20 ID=6" "[Encode][Audeo]s302m ID=65562" "[Encode][Video]sgi ID=101" "[Encode][Video]snow ID=32780" "[Encode][Video]sunrast ID=110" "[Encode][Video]svq1 ID=22" "[Encode][Video]targa ID=93" "[Encode][Video]tiff ID=96" "[Encode][Video]utvideo ID=152" "[Encode][Video]v210 ID=127" "[Encode][Video]v308 ID=32774" "[Encode][Video]v408 ID=32775" "[Encode][Video]v410 ID=156" "[Encode][Video]vc2 ID=116" "[Encode][Video]wrapped_avframe ID=135169" "[Encode][Video]wmv1 ID=17" "[Encode][Video]wmv2 ID=18" "[Encode][Video]xbm ID=159" "[Encode][Video]xface ID=32779" "[Encode][Video]xwd ID=157" "[Encode][Video]y41p ID=32768" "[Encode][Video]yuv4 ID=32776" "[Encode][Video]zlib ID=54" "[Encode][Video]zmbv ID=81" "[Encode][Audeo]aac ID=86018" "[Encode][Audeo]ac3 ID=86019" "[Encode][Audeo]ac3_fixed ID=86019" "[Encode][Audeo]alac ID=86032" "[Encode][Audeo]aptx ID=88081" "[Encode][Audeo]aptx_hd ID=88082" "[Encode][Audeo]dca ID=86020" "[Encode][Audeo]eac3 ID=86056" "[Encode][Audeo]flac ID=86028" "[Encode][Audeo]g723_1 ID=86068" "[Encode][Audeo]mlp ID=86045" "[Encode][Audeo]mp2 ID=86016" "[Encode][Audeo]mp2fixed ID=86016" "[Encode][Audeo]nellymoser ID=86049" "[Encode][Audeo]opus ID=86076" "[Encode][Audeo]real_144 ID=77824" "[Encode][Audeo]sbc ID=88083" "[Encode][Audeo]sonic ID=88065" "[Encode][Audeo]sonicls ID=88066" "[Encode][Audeo]truehd ID=86060" "[Encode][Audeo]tta ID=86038" "[Encode][Audeo]vorbis ID=86021" "[Encode][Audeo]wavpack ID=86041" "[Encode][Audeo]wmav1 ID=86023" "[Encode][Audeo]wmav2 ID=86024" "[Encode][Audeo]pcm_alaw ID=65543" "[Encode][Audeo]pcm_dvd ID=65555" "[Encode][Audeo]pcm_f32be ID=65556" "[Encode][Audeo]pcm_f32le ID=65557" "[Encode][Audeo]pcm_f64be ID=65558" "[Encode][Audeo]pcm_f64le ID=65559" "[Encode][Audeo]pcm_mulaw ID=65542" "[Encode][Audeo]pcm_s8 ID=65540" "[Encode][Audeo]pcm_s8_planar ID=65563" "[Encode][Audeo]pcm_s16be ID=65537" "[Encode][Audeo]pcm_s16be_planar ID=65566" "[Encode][Audeo]pcm_s16le ID=65536" "[Encode][Audeo]pcm_s16le_planar ID=65554" "[Encode][Audeo]pcm_s24be ID=65549" "[Encode][Audeo]pcm_s24daud ID=65552" "[Encode][Audeo]pcm_s24le ID=65548" "[Encode][Audeo]pcm_s24le_planar ID=65564" "[Encode][Audeo]pcm_s32be ID=65545" "[Encode][Audeo]pcm_s32le ID=65544" "[Encode][Audeo]pcm_s32le_planar ID=65565" "[Encode][Audeo]pcm_s64be ID=67585" "[Encode][Audeo]pcm_s64le ID=67584" "[Encode][Audeo]pcm_u8 ID=65541" "[Encode][Audeo]pcm_u16be ID=65539" "[Encode][Audeo]pcm_u16le ID=65538" "[Encode][Audeo]pcm_u24be ID=65551" "[Encode][Audeo]pcm_u24le ID=65550" "[Encode][Audeo]pcm_u32be ID=65547" "[Encode][Audeo]pcm_u32le ID=65546" "[Encode][Audeo]pcm_vidc ID=67588" "[Encode][Audeo]roq_dpcm ID=81920" "[Encode][Audeo]adpcm_adx ID=69641" "[Encode][Audeo]g722 ID=69660" "[Encode][Audeo]g726 ID=69643" "[Encode][Audeo]g726le ID=71684" "[Encode][Audeo]adpcm_ima_qt ID=69632" "[Encode][Audeo]adpcm_ima_wav ID=69633" "[Encode][Audeo]adpcm_ms ID=69638" "[Encode][Audeo]adpcm_swf ID=69645" "[Encode][Audeo]adpcm_yamaha ID=69646" "[Encode][Other]ssa ID=96269" "[Encode][Other]ass ID=96269" "[Encode][Other]dvbs

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值