我们早已经进入了数字多媒体时代,相信每天都会有数不清的男男女女,在PC手机上播放一部部令人热血贲张的小电影。没错,视频播放早已是信息时代的日常,花样迭出的视频播放器成为了手机电脑中不成或缺的软件。不过,你可知道这些名目繁多的视频播放器要运作起来,往往都离不开神级播片软件FFmpeg?今天,就一起来谈谈视频播放和FFmpeg的那点事吧。
很多伴侣都喜欢看电影,但可知到底是什么技术帮你把片子播出来呢?
一部小电影到底是如何播放出来的?
尽管我们每天都在看小电影之类的视频,不过对视频播放背后的机理,恐怕并不是每个伴侣都会去作了解。我们平时看到的小电影有着各种各样的格式,例如AVI、RMVB、MKV等等,但是这些格式并非是视频之间的素质区别——差别的格式往往只代表着差别的容器,容器内封装的具体视频流、音频流等内容,才是一个视频的素质所在。
例如,AVI中可以封装H. 264 编码的视频流,MKV也可以封装H.264,但同时MKV还能够封装HEVC、VP9 等视频流。因此,MKV和MKV之间的区别,可能要比某个AVI和某个MKV之间的区别大得多。当然,差别的容器也是有功能和性能上的区另外,例如MKV对各种编码的兼容性就非常好,而AVI则有所局限,且不支持流媒体播放等。
差别的容器可以封装各种视频编码
要播放某段视频,播放软件所需要做的,首先要支持某种容器,然后把视频流、音频流等内容从容器中分离出来,接而解码,,然后渲染,用户就可以播放出视频、音频乃至字幕等内容了。这个过程是比较繁琐并且颇有技术含量的,世界上有着茫茫多规格的编码格式,做一个播放器就意味着需要对这些东西吃得比较透,这无疑是相当费时费力的。因此,为数庞大的视频播放器实际上都使用了统一的解决方案——FFmpeg。
神级播放软件FFmpeg:万能播放器的根基
FFmepg是一套视频音频的完整解决方案,它提供了视频解码、编码、后期处理等一系列功能,对世界上千奇百怪的视频音频编码有着完善的支持。FFmpeg是在Linux平台下开发的,完全开源,也可以在其他平台编译运行。FFmpeg的名称显然是来自“MPEG”,而MPEG则是视频编码尺度的制定者,从名字就可以看出,FFmpeg旨在研究和MPEG相关的一系列技术。
FFmpeg提供了一整套视频音频解决方案,其中也包孕了视频解码
FFmpeg的功能非常强大,虽然前文和标题都说它是播片神器,但它的功能绝不但仅限于播片。FFmpeg自然可以解码诸多的视频音频编码,并且它同时也提供了视频音频转换、编码、封装的功能,还可以进行视频裁剪、缩放、色域转换等一系列后期处理。不但如此,FFmpeg还支持HTTP、FTP、SMB等协议。可以说,无论你想要当地播片,还是转换视频格式,亦或是利用网络看视频,FFmpeg都可以胜任。
使用FFmpeg作为解码器是万能播放器们的主流之选
FFmpeg项目起源于 2000 年,多年来,FFmpeg一直在进化。FFmpeg项目在 2011 年分裂出了Libav项目,该项目诞生出了现今最强力的视频解码器LAV。无论对于软硬件,LAV解码器都有着颇为完善的支持,大量播放软件都可以调用LAV解码,而LAV自己也可以利用各种显卡进行视频硬解。想要用PC播放难搞的4K HDR蓝光?LAV绝对是最好的解决方案。
基于FFmpeg的LAV是目前最强的视频解码器
FFmpeg之所以是神,不但仅是由于自身的强大,还在于对业界的影响力。很多播放器都宣称本身多么多么万能,支持先进的4K乃至8K视频播放,乍看这播放器搞定了世界上如此繁杂的视频容器、视频音频编码,太了不起了!然而实际上,真正的原因往往是因为这播放器自带了FFmpeg/LAV解码器,真正神的不是播放器,而是背后的FFmpeg/LAV,你能用播放器顺利放出小电影,可别忘记感谢FFmpeg。因此,把FFmpeg称作为神级软件,完全实至名归。
FFmpeg:可能是被抄袭得最严重的开源软件