专栏/[FFmpeg探秘]Ep.(1) 什么是FFmpeg?

[FFmpeg探秘]Ep.(1) 什么是FFmpeg?

2017年08月04日 09:38--浏览 · --喜欢 · --评论
粉丝:1127文章:11

FFmpeg是什么?

相信很多人都或多或少听说过它的大名,尤其是对于Up主们来说,总会或多或少地瞄到小丸工具箱tools目录下的ffmpeg.exe,或者在压制的日志中看到ffmpeg的影子。

大部分人相比都把它当做了一个视频处理软件,但其实,FFmpeg并不仅仅是mpeg那么简单。

举几个例子吧。首先,FFmpeg是支持流媒体传输的,而Node.js下有node-fluent-ffmpeg。也就是说,你可以通过Nodejs进行FFmpeg流媒体的传输,通俗点讲就是推流,即通过FFmpeg+Nodejs实现直播推流。

再者,FFmpeg计划下包括ffserver,这是一个HTTP多媒体即时广播流服务器,支持时光平移。也就是说,你可以通过它快速构建一个直播服务器。

然后就是我们熟知的ffplay,它是一个基于SDL与FFmpeg库的简单播放器。由于FFmpeg库的强大兼容性,它几乎可以播放所有的视频文件。

最后是ffprobe,通过它我们可以查看视频文件/视频流的具体信息,把视频首部的二进制信息转换成你能够看得懂的文字格式。


那我们又究竟要探秘什么呢?

简单来说,就是对官网上描述的功能进行探索。比如FFmpeg支持非常强大的滤镜(Filters)功能,使得很多视频效果能够在最后的压制阶段完成,而不是通过视频编辑软件(如Adobe Premiere Pro)完成,在某种程度上来说可以节省大量用于视频导出的时间。

再比如FFmpeg的推流功能。你完全可以通过FFmpeg实现到Bilibili直播的推流,而不需要打开OBS。当然,这样的推流只能推送一些比较简单的内容(比如视频、音乐等,复杂的内容需要更详细的配置)。

还有基于FFmpeg直播流转发的直播录制功能。FFmpeg支持对直播流进行转发,也就是说,你可以把一个直播平台的直播视频原封不动地转发到另一个平台,当然也包括你的电脑本身。这样得到的视频文件是直播Up本身向直播站上上传的视频流,大小适中且具有录制占用资源较少、不干扰正常电脑使用、方便服务器自动录制等优点。


怎么样?是不是有些心动了呢?FFmpeg是一个宝库,其维护至今耗费的是无数维护人员的汗水和脑力。小丸工具箱发掘的只不过是其中的百分之一,但已经足够我们日常很多方面的使用了。面对这样一个功能强大的视频音频项目,不准备试着学学看吗?


下一篇中,我会从node-ffmpeg-fluent入手,简单讲解通过Node.js实现的对FFmpeg的操作。


(吐槽:B站你什么时候上代码高亮啊……话说换成Markdown语法也好啊,这个编辑器太蛋疼了Orz

投诉或建议