ffmpeg 手机视频转换学习

2011年02月10日 星期四
根据 ffmpeg 常用命令行(2009.08.20更新) http://blog.csdn.net/lius1984/archive/2009/07/21/4367150.aspx 中的例子初步学习 ffmpeg 的用法。

转换成3gp

ffmpeg -y -i test.mpeg -bitexact -vcodec h263 -b 128 -r 15 -s 176x144 -acodec aac -ac 2 -ar 22500 -ab 24 -f 3gp test.3gp (上面参考网址中的命令,-bitexact 仅使用位精确算法 用于编解码测试,这个命令在 ubuntu 10.10 下默认安装的 ffmpeg 下不能工作,主要是 -vcodec 的值在有 -bitexact 时无效,-b -ab 的值是以个位数为单位,上面的值应加上k表示乘以1000,aac 的音频编码声音采样率不能是 22500,经试验,-ar 44100 或缺省(默认44100)可以 )

可工作的命令:ffmpeg -y -i test10s.avi -strict experimental -vcodec h263 -b 128k -r 15 -s 176x144 -acodec aac -ac 2 -f 3gp test10snoarab.3gp (Ubuntu 10.10 FFmpeg version 0.6-4:0.6-2ubuntu6, Copyright (c) 2000-2010 the FFmpeg developers)

但是上面在 V780 上播放外观比例失真,声音失真,改成如下命令正常:
ffmpeg -y -i test10s.avi -strict experimental -vcodec h263 -b 300k -r 15 -cropleft 100 -cropright 100 -s 176x144 -aspect 11:9 -acodec aac -ac 2 -ar 44100 -ab 96k -f 3gp test10sspec.3gp

ffmpeg -y -i test.wmv -ac 1 -acodec libamr_nb -ar 8000 -ab 12200 -s 176x144 -b 128 -r 15 test.3gp(上面参考网址中的命令,在 Ubuntu 10.10 默认的 ffmpeg 下不能工作,可能主要是 -acodec 的 libamr_nb 编码器默认没有安装,ffmpeg -codecs 中只有 D A amrnb Adaptive Multi-Rate NarrowBand,而不是 DEA amrnb...)

转换成mp4

ffmpeg -i source_video.avi -b 300K -s 320x240 -vcodec xvid -ab 32K -ar 24000 -acodec aac final_video.mp4(上面参考网址中的命令,xvid 编码在 Ubuntu 10.10 下默认的 ffmpeg 中没有,不过有 libxvid 或 mpeg4 编码)

可工作的命令:
ffmpeg -i test10s.avi -strict experimental -vcodec libxvid -b 300K -s 176x144 -ab 32K -ar 24000 -acodec aac test10slibxvidaac.mp4

ffmpeg -i test10s.avi -strict experimental -vcodec libxvid -r 15 -b 300K -s 176x144 -ab 32K -ar 24000 -acodec aac test10slibxvidaac.mp4
或将上面的 libxvid 换成 mpeg4 也行
EV libxvid libxvidcore MPEG-4 part 2
DEVSDT mpeg4 MPEG-4 part 2

但是上面的音频设置下声音失真有爆音,改为 -ar 44100 -ab 96k 可以
并且,上面只指定 -s 176x144 在 V780上播放高宽比失真,加入 -cropleft 100 -cropright 100(或 -padtop 23 -padbottom 22,这时为 -s 176x99) 和 -aspect 11:9 在电脑上的ffplay, mplayer, totem(Ubuntu 10.10 默认电影播放器)上播放和在 V780 上播放的外观比例均正常,如下命令:

ffmpeg -i test10s.avi -strict experimental -vcodec libxvid -cropleft 100 -cropright 100 -b 300k -s 176x144 -aspect 11:9 -r 15 -ab 96k -ar 44100 -acodec aac test10scrop100crop100.mp4

ffmpeg -i test10s.avi -strict experimental -vcodec libxvid -b 300k -s 176x99 -padtop 23 -padbottom 22 -aspect 11:9 -r 15 -ab 96k -ar 44100 -acodec aac test10spad23pad22later.mp4