播放器解码能力对视频解析的影响

上周测试视频解析的时候发现一个有意思的现象:同一个视频链接,在不同的播放器里表现差异巨大。有的秒开,有的要缓冲好久,还有个直接显示"不支持的格式"。这让我开始认真研究播放器解码能力这件事,结果发现里面的门道比想象中多得多,而且对解析工具的使用体验影响很大。

硬解和软解——到底差在哪

简单说,硬解就是让显卡或手机的专用解码芯片来解码视频,软解就是靠CPU来算。硬解省电、流畅、发热低,但格式兼容性差;软解什么都能播,但功耗高、发热大、电池哗哗掉。我自己的手机,看H.265的视频如果用硬解,电量能撑六七个小时,软解的话三个小时就红了。

不过硬解有个大坑:不是所有格式都支持。比如AV1这种新编码,绝大部分老设备硬解不了,只能走软解。这时候如果你的CPU不够强,画面就会掉帧、音画不同步。我之前在一个老笔记本上试过,i5-7200U的CPU,软解4K视频直接卡成PPT,CPU占用率100%,风扇狂转。后来换了台支持硬解的新电脑,同样视频流畅得一匹。之前InfoQ上有篇文章详细对比了各种编码格式在不同设备上的解码表现,测试数据很全,推荐看看。

不同播放器的解码能力天差地别

说实话,系统自带的播放器解码能力普遍偏弱。Windows自带的那个播放器,连MKV都打不开,简直是摆设。Android原生的播放器也好不到哪去,稍微冷门一点的编码就歇菜了。所以基本上,装一个第三方播放器是刚需。

我目前在用的是VLC和PotPlayer两个组合。VLC最大的好处是跨平台,Windows、Mac、Linux、Android都有,而且解码库非常全,内置了几乎所有主流编码格式的支持,几乎什么都能播,不需要额外安装解码器。PotPlayer在Windows上体验最好,界面简洁,快捷键灵活,而且支持各种外挂滤镜和渲染器。不过说真的,PotPlayer的设置项太多了,对于普通用户来说可能有点劝退,但如果你愿意花点时间配置,效果确实一流。

解码能力对解析体验的影响

这里重点说一下:当你用视频解析工具的时候,解析出来的视频流最终还是要靠播放器来解码的。如果你的播放器解码能力跟不上,就算解析过程再快,播放体验也会很差。我遇到过不止一次这种情况:解析成功了,但播放的时候画面花屏或者声音断断续续,排查了半天才发现是播放器的问题,换了一个支持的播放器立马就好了。

所以建议大家,如果解析之后发现播放异常,先别急着怀疑解析工具,换个播放器试试。很多时候问题不在解析,而在播放。另外,思否上有些开发者分享过自己编译的播放器版本,集成了最新的解码库,对新型编码格式支持更好,有折腾精神的朋友可以试试。

怎么选适合自己的播放器

如果你只是普通看剧,手机用MX Player,电脑用PotPlayer,基本就够用了。如果你对画质要求比较高,比如看4K HDR内容,那可能需要更专业的播放器,比如MPC-HC配合madVR渲染器,效果确实好,但配置起来确实麻烦。播放器这东西,没有绝对的最好,只有最适合你的。根据自己的设备性能和观看需求来选,比盲目追求功能全要实用得多。

另外提醒一下,如果你用的是解析工具看视频,尽量选择支持多种解码方式的播放器,这样不管解析出来的视频流是什么格式,都能正常播放。