访问量: 139 次浏览
转换各种媒体文件是我们经常遇见的一个问题,在Windows平台下,我们的选择很多,从傻瓜式的到高级的一应俱全(个人最爱的是MediaCoder)。而在Linux平台下,我们的选择就显得少了很多。在这其中,ffmpeg算是最为出众者了,但苦于其纯命令行界面,很多人都无从下手。最近一段时间,由于经常使用其转换媒体文件,也算对其的使用入了门,故写下此文,也算是一个简短的初级教程吧。
首先说说怎么安装吧。这里仅以ubuntu为例,其他的发行版的安装方法大家可以自己google或者直接去ffmpeg的下载页下载。 在ubuntu9.10以及更高版本上只要输入以下命令就OK了:
sudo apt-get install ffmpeg libavcodec-extra-52
但是,这样安装的版本缺乏一些编码器(如AAC和AMR的编码器),原因就是这些编码器的版权存在问题。为了能使用它们 ,我们要从medibuntu的仓库中下载libavcodec-extra-52才行。当然,如果你觉得用不上这些编码器,也不必费更多的神了,可以直接开始使用ffmepg。
sudo wget http://www.medibuntu.org/sources.list.d/`lsb_release -cs`.list --output- document=/etc/apt/sources.list.d/medibuntu.list && sudo apt-get -q update && sudo apt-get --yes -q --allow-unauthenticated install medibuntu-keyring && sudo apt-get -q update sudo apt-get install ffmpeg libavcodec-extra-52
下面开始介绍ffmpeg的一些主要的参数选项。更详细的选项说明和使用方法以及使用示例可以在http://ffmpeg.org/ffmpeg.html找到信息选项 -formats 用于显示ffmpeg支持的文件格式,如mp3、mp4等等。附加D的话(就是ffmpeg -formats D)输出支持的解码格式,E的话输出支持的编码格式。
ss格式。
ss格式。-t和-ss选项配合使用可以指定只转换原始文件的一部分。例如,我们想转换从1分30秒开始到2分10秒的如诶龙内容的话,可以使用"-ss 00:01:30 -t 00:00:40"或者"-ss 90 -t 40"。
需要说明的一点是,如果要使用-ss和-t选项的话,它们一定要放在其他选线的前面,而且-ss要在-t的前面,否则可能出现无法转换的错误。
这里要特别谈谈H264的编码器,如果使用libx264进行H264编码的话,直接指定“-vcodec libx264”貌似不够,因为ffmpeg内置的H264编码配置文件貌似有问题,需要手动指定编码的配置,一般再添加一个“-vpre medium”选项就OK了。
除此以外,ffmpeg还有很多其他的初级选项和高级选项,而且上面列出的选项也还有一些其他的使用方法。但由于本文只是入门教程,就不细写了。感兴趣的可以去我上面 列出的地址看ffmpeg的文档。 下面列出了一个我实际使用的例子,就当给大家一个直观的感觉吧:
ffmpeg -ss 01:27:48 -t 00:03:13 -i trinity.and.beyond.mkv -b 600k -r 24 -s 640x360 -vcodec libx264 -vpre slow -vpre main -threads 0 -ar 44100 -ab 96k -ac 2 -acodec libfaac -f flv -pass 1 china-gets-the-bomb.f4v