第五章——播放

如果一个个网页打开麻烦,这里有全篇的PDF

讲了这么多,终于能放视频。相信你在下载完后就点开了过了视频,如果你下的HEVC的片子,用的是Windows自带的播放器,你会发现播放不了,甚至微软还要让你买个7块钱的扩展,怎么都没想到看个本地视频还要这么困难。

或许你已经在很多地方都看到了Potplayer+LAV+madVR的配置,甚至阿B一直在狂推Pot,一直在说Pot是宇宙第一最好播放器。但Potplayer本身并没有那么好,不去Potplyer那繁多的设置中好好设置一番,你播放出来的甚至还没有Windows Media Player效果好,自己精心下载好的片子,最后却败在了播放器上,那怎么行。其实Pot也不是不能用,只是默认的效果不好,但调教起来十分繁琐,一些东西设置起来对小白十分不友好。所以,我们该如何去选择播放器播放我们下载的视频呢。

视角放开点,其实还有很多好用的播放器。开源的就有VLC、MPV、MPC,像MPV有它的分支版本mpv.net,MPC也有分支版本MPC-HC和MPC-BE,这些都是不错的开源视频播放器。但这么多播放器我们选什么呢,对于小白我十分比较推荐mpv的分支版本mpv.net的中文分支模组mpv.net_CM的改版mpv.net-DW。看着很长是吧,开源是这样的,MPV还是开源项目 MPlayer的重要分支呢,那到底选什么呀,且听我慢慢道来。


MPV:

mpv是近几年很受欢迎的开源项目,在Windows,MacOS,Linux上都可以使用,但对于小白来说有个很头疼的问题,原始的mpv没有图形界面,任何配置和设置都需要自己去敲代码写配置,这一点就劝退了很多小白,好在开源,现在有很多大佬做了mpv的懒人包,完全不懂命令行的小白也可以即开即用。下面是我推荐的两个版本。

一般的来说下载标准版解压安装就行了,有需要更多的功能,比如AI补帧、AI超分辨率的需求,需要下载独立的包,并解压在同一目录,才能使用。

mpv.net比起mpv有了图形界面,界面看起来会更好看,设置也更简单,但一些配置还是需要打代码的。而DW版是diana7127大佬的个人定制版,基本满足了各种功能,像AI补帧、AI超分辨率都是有的,同时对于HDR和Dolby Vision 这两个mpv也是可以播放出来的,而Pot就不行。所以,从简单实用的角度出发,我更推荐这个版本

MPC-HC:

MPC系列由于是基于微软的DirectShow,所以只能在Windows上使用。MPC跟Potplayer一样,搭配LAV和madVR,但没有Potplayer配置那么繁琐,而K-Lite Codec Pack Full是直接包含了MPC-HC和LAV+madVR的,安装和配置更为简单和方便,也是比较推荐的,具体配置教程请参考VCB的这篇配置教程

Potplayer:

如果你看了上面的推荐还是想使用Potplayer,也是没问题的,配置繁琐一点而已。你可以参考Potplayer吧的这篇教程https://tieba.baidu.com/p/7171344019

吧主的教程文件链接,这里面也有完整的教程图和需要安装的软件,你完全可以跟着吧主的教程一步一步来配置,也可以在贴吧看到配置成功的OSD信息图(就那满屏幕花花哨哨的有各种视频、音频信息的图),查看自己是否配置成功。

如果你上面的链接都打不开或下载不下来,这里是我下载好并放在度盘上的文件,希望能帮到你。

这里我还是得提一句,播放器的配置参数确实会对视频播放出来的画面有影响,但播放视频并不是打开一个软件,背后的逻辑很复杂,非常容易出现问题,一些人为了追求“最完美”的播放器参数设置陷了进去,浪费时间浪费精力。我在写蓝光光盘和BDRip那两章中就在强调选择适合自己的,不要过分追求视频参数,播放也是一样,最重要的是你播放的视频的内容,你看的是视频,而不是各种参数。

除了上面这些,还有很多很多播放器,像有影视墙的Plex,Emby,Jellfin,Kodi这仨兄弟,苹果上还有infuse这样的收费软件,不过这些不在本教程的讨论之内。如果在Windows上你还想看弹幕,除了用ass加载外,你还可以下载弹弹play,播放效果先不说,但弹幕功能做得确实可以,也还是跟我一直谈到的,如果自己的眼睛看不出什么区别,其实用什么都是一样的,那最好用的便是适合自己的。弹弹play在手机上也有app,不过效果一般,如果你想在手机上看本地视频,可以试试MX Player,谷歌上就有,但要收费,但我也相信你可以在百度上找到好用的学习版,当然能支持正版最好。


接下来是播放的科普环节,如果你确实没什么兴趣也可以不看,但后面的后记我还是推荐你看一看的,如果遇到自己不懂的地方请善用搜索引擎搜索。

在播放视频的时候,我们用到了三个软件,也有很多人不理解看个视频而已,开那么多软件干什么,其实这三个软件在播放视频时各有分工。播放器的工作流程简单来说有三个:分离→解码→渲染。

  • 分离。我们知道视频文件有很多轨道,视频轨啊、音频轨啊、字幕之类的,分离的过程就是将视频中封装的媒体文件识别出来并且将它们拆分成独立的“信息流”。LAV中的LAV Splitter做的就是分离,而像LAV Splitter这样处理分离工作的模块就叫做分离器(Splitter)。
  • 解码。视频文件中的视频和音频是以编码后的压缩数据流存在的,想要实现播放,就需要解码。将分类器分离出来的各种“压缩”信息,分析并处理出它们的“原始”信息,再交给之后的“渲染器”处理。这个过程就是“解码”,当然做这份工作的就是解码器(decoder),LAV的LAV Video和LAV Audio就是LAV视频和音频解码器。
  • 渲染。也就是将解码器解码出来的数据,在硬件上展现出画面和声音,同时渲染也会对解码出来的数据做出更改与调整,像madVR就可以调整各种参数来调整视频最后播放出来的效果,所以madVR也就是一种渲染器。

这里不得不提YUV了,几乎所有的视频编码格式都是基于YUV模型的,一般解码后的视频数据是YUV,而大部分显示器都是RGB显示,渲染器也就需要把YUV转换成RGB。

YUV和RGB一样是一种颜色编码格式或者说色彩模型,简单来说YUV用色度值与明度值来表示颜色,跟RGB用红绿蓝来表示不一样。对于YUV来说,将色度值去掉你会得到一幅黑白的图像,将明度值去掉,你之后得到的是“一片黑暗”。Y代表图像的明度,UV是两个色度通道,两者组合便产生了各种YUV格式,像YV12啦,NV12啦……当然这很复杂,一般能分清YUV444,YUV422,YUV420就很不错啦。

素材来源:影视飓风 https://www.bilibili.com/video/BV1ds411T7F4

YUV444、YUV422、YUV420之间的区别,解释起来比较复杂,简单来说444比422和420的每个像素记录的色度信息更多,422损失50%,420损失75%

用1080分辨率来解释:444与422、220的Y平面的分辨率一样大,都是1920x1080;但444的色度平面是1920x1080,但422的色度平面是444的1/2也就是960×540;420就是444的1/2×1/2也就是480×270。

所以422和420相比444显得更加“灰一些”,但实际看上去,差别都不大,而且444每个平面都是满分辨率所占用的数据量也更大,一般视频都是用的YUV420。

关于YUV和RGB,以及位深,为了方便新人,我这篇教程说的很简单,所以在专业上还不够,但一般来说知道YUV和RGB的区别和YUV444、422、420的区别就行了,如果你真的很有兴趣可以查询相关资料。

在上面的教程中,出现了软解和硬解,最开始接触一般都会理解错误,软解并不是用软件解码。其实软解、硬解都是使用的电脑硬件,区别是软解用的CPU来运算,硬解是用GPU上的一块专职电路来运算,并不是调用的整个GPU。两者解码得出的结果都是一样的,只是解码的方式不同,当然一些老型号的GPU的没有对应解码专职电路,最终结果就会有偏差,体现到显示器上就是播放的颜色有偏差、播放卡顿等问题,手机也是一样的情况。

其它的好像没什么补充了,因为都比较复杂,比较枯燥,最开始我写这一篇也摆烂了,到现在几经修改也没有自己去做播放器的教程,而是一直应用他人的教程。所以,除非你自己对音视频处理这方面真的很有兴趣都不太建议去了解,因为……真是太混乱了≧ ﹏ ≦


内容参考:
视频:
https://www.bilibili.com/video/BV1u7411D78A
https://www.bilibili.com/video/BV1ds411T7F4
Wiki:
https://baike.baidu.com/item/YUV/3430784
https://baike.baidu.com/item/%E8%89%B2%E5%BD%A9%E6%A8%A1%E5%BC%8F/10209468
https://baike.baidu.com/item/%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4/4615427
文章&教程:
https://tieba.baidu.com/p/7171344019
https://tieba.baidu.com/p/6191622922
https://vcb-s.com/archives/7228
[VCB-Studio]教程-02播放器教程背后的知识:https://vcb-s.nmm-hd.org/Twilight%20Council/%5BVCB-Studio%5D%5B%E6%95%99%E7%A8%8B02%5D%E6%92%AD%E6%94%BE%E5%99%A8%E6%95%99%E7%A8%8B%E8%83%8C%E5%90%8E%E7%9A%84%E7%9F%A5%E8%AF%86/