➢ ffmpeg是什么,懂的大侠跳过。。。
一款开源的跨平台的命令行软件,同时也是一套程序库,处理视频、音频的神器。。。
命令行?听起来好像很难用,咱看电影不就娱个乐嘛,折腾啥呢?
其实按我说的来用,真心很简单,咱也不说那些高端的,就说点简单实用的。
另外,怎么说,折腾其实是生活态度的问题,娱乐也不仅仅是打发时间,也是生命的一部分,不多说了。。。
➢ 我用ffmpeg干什么?
★ 转换格式
为什么要转格式呢?因为希望用系统播放器。
这里有软解码和硬解码的问题、Airplay的问题、AC3支持的问题、iTunes家庭共享的问题、收藏的问题,等等吧,就不展开说了。
★ 嵌字幕
iTunes不支持外挂字幕,这个确实很蛋疼。
➢ 下面开始演示,重点啊!
★ 我这有部《肖生克的救赎》,视频和字幕已经通过合法途径获取:
The.Shawshank.Redemption.1994.Bluray.x264.anoXmous.mkv
The.Shawshank.Redemption.1994.Bluray.x264.anoXmous_eng.srt
★ 那我就这样
$ ffmpeg -i The.Shawshank.Redemption.1994.Bluray.x264.anoXmous.mkv \
-i The.Shawshank.Redemption.1994.Bluray.x264.anoXmous_eng.srt \
-map 0:0 -map 0:1 -map 1:0 \
-vcodec copy -acodec copy -scodec mov_text \
-y The.Shawshank.Redemption.1994.Bluray.x264.anoXmous.mp4
★ 下面解释一下参数
-i 原视频文件.mkv #这个好理解吧
-i 原字幕文件.srt #这个也好理解了吧
-map n:m #这个是说,我要其中第n个输入文件的第m个流,这里mkv就是n=0,srt就是n=1,等下再说m
-vcodec copy #这是说视频编码格式不变
-acodec copy #同上,音频
-scodec mov_text #指定字幕的编码格式
-y 目标文件.mp4 #直接覆盖,不询问
★ 没看明白的,往下读。。。
流(或者叫“轨”吧)是怎么回事?
你输入这个命令
$ ffmpeg -i 视频文件.mkv
注意找下输出里类似这样的内容:
Stream #0:0(und): Video: h264 ......
Stream #0:1(eng): Audio: aac ......
Stream #0:2: Subtitle: mov_text ......
他们分别是视频的、音频的和字幕的,三种类型的流。有的时候可能没有字幕流,有的时候可能不止一个音频流,因为有不同语言,这都很正常。
重要的是你要先通过这个命令来看看有哪些流,然后挑选你要的,所以这个m,你知道该怎么填了吧。
★ 再说codec
因为这里原始文件就是h264和aac,系统默认支持,所以就不需要转成别的编码,这样就避免了重编码(一些转码软件脑残至极啊!h264转h264啊!慢到死的节奏啊!)。
所以你直接写copy,就是直接硬盘复制的节奏啦!当然你需要的话,可以转成其他的编码,比如音频转成mp3编码,就是“-acodec mp3”,不过那样就不是复制的节奏了,会慢好些哦。。。
字幕,因为是外挂的,所以就需要指定编码格式了,我只用过mov_text,其他不了解了。
★ 既然视频和音频编码都没有改变,那转个什么劲?
其实重要的是转封装,简单说就是视频文件的格式吧,.mkv文件,iTunes就不认得,.mp4谁都认得。
➢ 最后外挂一下,ffmpeg软件如何获取,Mac下推荐用Homebrew,相当方便!
Windows好像可以直接下载编译好的.exe,Linux下用apt-get什么的更爽了。
安装Homebrew:
$ ruby -e "$(curl -fsSL
https://raw.github.com/Homebrew/homebrew/go/install)"
安装ffmpeg:
$ brew install ffmpeg
就说这些,希望电影带给你的愉快,可以弥补学习这些枯燥的命令行吧~
如果你有其他场景和需求的,我们再一起探讨之。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/93405
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.