我们早已经进入了数字多媒体时代,相信每天都会有数不清的男男女女,在PC手机上播放一部部令人热血贲张的小电影。没错,视频播放早已是信息时代的日常,花样迭出的视频播放器成为了手机电脑中不可或缺的软件。不过,你可知道这些名目繁多的视频播放器要运作起来,往往都离不开神级播片软件FFmpeg?今天,就一起来谈谈视频播放和FFmpeg的那点事吧。 一部小电影到底是如何播放出来的? 尽管我们每天都在看小电影之类的视频,不过对视频播放背后的机理,恐怕并不是每个朋友都会去作了解。我们平时看到的小电影有着各种各样的格式,例如AVI、RMVB、MKV等等,但是这些格式并非是视频之间的本质分别——不一样的格式往往只代表着不一样的容器,容器内封装的具体视频流、音频流等内容,才是一个视频的本质所在。 例如,AVI中可以封装H.264编码的视频流,MKV也可以封装H.264,但同时MKV还能够封装HEVC、VP9等视频流。因此,MKV和MKV之间的分别,可能要比某个AVI和某个MKV之间的分别大得多。当然,不一样的容器也是有功能和性能上的分别的,例如MKV对各种编码的兼容性就非常好,而AVI则有所局限,且不支持流媒体播放等。 不一样的容器可以封装各种视频编码 神级播放软件FFmpeg:万能播放器的根基 FFmepg是一套视频音频的完整搞定方案,它提供了视频解码、编码、后期处理等一系列功能,对世界上千奇百怪的视频音频编码有着完善的支持。FFmpeg是在Linux平台下开发的,完全开源,也可以在其他平台编译运行。FFmpeg的名称显然是来自“MPEG”,而MPEG则是视频编码标准的制定者,从名字就可以看出,FFmpeg旨在研究和MPEG相关的一系列技术。 FFmpeg的功能非常强大,虽然前文和标题都说它是播片神器,但它的功能绝不仅仅限于播片。FFmpeg自然可以解码诸多的视频音频编码,而且它同时也提供了视频音频转换、编码、封装的功能,还可以进行视频裁剪、缩放、色域转换等一系列后期处理。不仅如此,FFmpeg还支持HTTP、FTP、SMB等协议。可以说,无论你想要本地播片,还是转换视频格式,亦或是利用网络看视频,FFmpeg都可以胜任。 FFmpeg项目起源于2000年,多年来,FFmpeg一直在进化。FFmpeg项目在2011年分裂出了Libav项目,该项目诞生出了现今最强力的视频解码器LAV。无论对于软硬件,LAV解码器都有着颇为完善的支持,大量播放软件都可以调用LAV解码,而LAV本身也可以利用各种显卡进行视频硬解。想要用PC播放难搞的4K HDR蓝光?LAV绝对是最好的搞定方案。 FFmpeg之所以是神,不仅仅是由于自身的强大,还在于对业界的影响力。很多播放器都宣称自己多么多么万能,支持先进的4K乃至8K视频播放,乍看这播放器搞定了世界上如此繁杂的视频容器、视频音频编码,太了不起了!然而实际上,真正的原因往往是因为这播放器自带了FFmpeg/LAV解码器,真正神的不是播放器,而是背后的FFmpeg/LAV,你能用播放器顺利放出小电影,可别忘记感谢FFmpeg。因此,把FFmpeg称作为神级软件,完全实至名归。 FFmpeg:可能是被抄袭得最严重的开源软件 FFmpeg是如此强大,但一般人是难以驾驭的。和很多开源软件一样,FFmpeg并没有图形界面,原始版本的Fmpeg只能怪通过命令行操纵,不是高玩的话一般是不会去碰原始版本的FFmpeg的。不过,由于FFmpeg是一个开源软件,因此诸多我们日常接触的软件,都会运用其技术来实现视频播放功能。这其中,既包括常见的播放软件,也包括浏览器之类的能播放视频的产品。 FFmpeg的原版是命令行,一般用户玩不转 不过,FFmpeg是按照GPL/LGPL协议开源的,这意味着如果某软件运用了FFmpeg的代码,那么这个软件涉及这些代码的部分,也必须开源。但是业界的风气嘛……你懂的。我用了就是用了,开源什么的谁管你,有本事你来打我呀?因此,FFmpeg也成为了代码被盗用得最严重的开源软件之一,不少著名的播放软件都是FFmpeg代码的偷窃者。 KMP等著名播放器都是FFmpeg的抄袭者 后话 尽管人们日常接触的多是金玉其外的商业软件,但是软件界今时今日的繁荣,离不开FFmpeg这样的开源软件们的默默奉献。在享受一部部小电影、大片的同时,请不要忘记是FFmpeg把拨人心弦的影音带到了你的面前。当然,如果你有心有财力,也可以通过捐赠的方式支持FFmpeg(点此进入捐赠页面),希望FFmpeg能继续发展得越来越好吧! |