如何使用 FFmpeg 进行视频转码:写在前面

来自FiveYellowMice's Wiki
跳到导航 跳到搜索
返回首页 | 目录


丑话说在前头[编辑 | 编辑源代码]

我知道这样可能使你的心情不好,但是为了防止我受到不明不白的诋毁,我还是得写下这一节。

如果你心中怀着以下想法之一,并且觉得这样是十分正确的,请点击右上角的 X :

  • 我 XXXX 用的挺好的,管它做了什么事,能用就行。
  • 这么多人用的东西竟然没有中文,看来它根本不重视中国市场。
  • 好麻烦啊,我只想要现成的。
  • 上个世纪八国联军……
  • 你是中国人不?是就支持国产,抵制外国货!
  • 怎么这么多链接打不开?
  • 啊, f 墙?麻不麻烦啊,你直接把内容复制过来呗,我懒。

没符合上面中的任何一条?太好了!你应该是个拥有逻辑思维的人,我相信大部分人都是。

符合吗?那抱歉了,我建议你现在就点右上角的 X 。当然你要是愿意看下去我也管不着,只是最好别发一些激动的评论,否则我会尽量让你圆润离开

说完了上面不适合的,我再来说说适合的人群:

  • 想学会怎么转视频格式、编码的人。
  • 想在视频网站上做出优秀视频的人。
  • 视频资源收集控。
  • 想了解关于数字媒体的知识,但以前从未接触过的人。
  • 知道国产毒瘤们的恶劣事迹,但苦于找不到替代品的人。
  • 不希望自己的东西被别人——或者别人编写的程序——掌控的人。

其实不符合也没关系,只要你有兴趣,我当然欢迎你继续阅读下去!

FFmpeg 是什么,我为什么要用它?[编辑 | 编辑源代码]

FFmpeg 是一个多媒体编解码器库,并提供了命令行前端。许多软件都使用了 FFmpeg 来进行音频和视频的编解码,特别是像 MPlayer 这样的多媒体播放器。

FFmpeg 还是一个自由软件,因为自由,所以其他人可以非常方便的在他们的软件中使用 FFmpeg 的东西。如果没有 FFmpeg ,许多播放器都要自己重新写解码器。有了 FFmpeg ,那些游戏开发者只要在他们的程序中包含 FFmpeg 的视频解码模块就可以播放视频了,而将更多的精力放在游戏本身内容上面。

这份自由是来之不易的,然而它也是脆弱的。 FFmpeg 作为一个遵循 GNU 宽通用公共许可证(简称 LGPL)的软件,任何人都可以获取它的代码并放入自己的程序中,但是有一个限制,那就是这样的程序必须也采用 LGPL ,也意味着必须开放源代码。但是一些软件并没有这么做,这当然是无法肯定的,拿了人家的代码,自然就得听人家的规矩。于是就有一个耻辱柱,记下志愿者们发现的不遵守协议的软件。

让我们来看一下这个耻辱柱吧。里面出现了 Baofeng Storm ,也就是大家所熟知的暴风影音。还有 QQPlayer ,也就是 QQ 影音。当然也少不了广为人知的 Format Factory ,也就是格式工厂。  

byvoid 写过一篇文章,他分析的比我透彻的多。  

看到这些,你还能淡定地用着它们吗?    

播放器的话,有 SMPlayerVLC 这两款开源且免费的播放器。哦对了,播放音乐的话,也少不了 Audacious 。但是转码软件就没这么简单了,它的选择似乎要少得多。

事实上,不论是像格式工厂这样违反 LGPL 的转码软件,还是像 MeGUI 这样遵守 LGPL 的软件,市面上能见到的大多数转码软件都是拿着 FFmpeg 的核心,套了一层自己的皮而已。  

那为何不用最纯正的 FFmpeg 呢!不但有着最大的定制性,还有着最轻量的前端。命令行的操作界面,也能够写入脚本中,高效的完成批量任务。

我想你已经迫不及待了,那么就开始阅读第 2 章吧!