开篇碎碎念
大家好,相信不少朋友有玩NAS,有NAS自然会部署Jellyfin/plex/emby等影音服务器来管理你的影片资源。我是Jellyfin的重度使用者,下图就是我在NAS上部署的Jellyfin。
当你了解了Jellyfin/plex/emby后,肯定会知道硬件实时转码,当我们远程连接NAS中的Jellyfin影音服务器播放影片时,实时转码这个功能非常好用。
一些高端大佬可能会说,实时转码就是鸡肋,现在硬件那么强,哪个播放器不能流畅播放8K等电影呢?非也,非也,要先看看是用在什么场景上。
实时转码可以把高分辨率、高码率影片实时转成低码率影片进行实时远程串流播放,毕竟远程嘛,不像局域网内带宽那么大,所以这是实时转码的一个重要使用场景。
如下图,手机限速为3兆了,代表远程播放NAS中电影只有3Mbps速度,就可以把100兆码率的4K电影实时转成720P、码率为3兆的影片实时流畅播放,这样是不是很好理解?
就算转成720P 3兆码率,感觉清晰度也比爱、优、腾那些1080高清多了,哈哈。
关于硬件转码或硬件加速,以Jellyfin为例,官方页面也有说明的。开启硬件转码也就是调用集显来进行视频转码,可以降低处理器资源占用。
所以本篇来介绍一下常见NAS如何开启硬件转码、硬件转码的其它使用场景、以及各种硬件转码方式应该如何选择,话不多说,进入正文。
各品牌NAS如何开启硬解
以常见Docker安装Jellyfin、emby、plex为例,来说说如何开启硬件转码;我最常用的是Jellyfin,就以它来举例,其它emby、plex在安装时也是同理。
群晖NAS在Docker中部署Jellyfin时,勾选使用高权限执行容器即可,这样Jellyfin就有调用集显的权限了,也就能实时转码了。
群晖安装Jellfyin并开启集显转码,可以参考我这篇文章,完整的安装和设置教程。
群晖安装Jellyfin保姆级教程!
威联通的话,可以通过Compose命令形式安装并赋权集显,或者开启SSH,使用以下命令进行安装。
感兴趣的朋友可以看看我之前发的威联通安装Jellyfin的教程。
威联通安装Jellyfin教程!
绿联的话,在安装时勾选『硬件渲染』即可,这样容器就有调用集显的权限,也就能在Jellyfin中开启硬件转码了。
实时转码的应用场景
以剪辑软件来看,实时转码会用得上,把一些4K原始影片转成低占用的,方便剪辑过程中预览,像我平时使用Final cut pro来剪辑时就会生成代理媒体,猜测大概是这原理,不是专业影视行业从业者,如有不对请指正。
我主要说说实时转码在NAS上,或者说在影音服务器中的使用场景吧,也是我个人比较常用的场景。
一般玩NAS的朋友会经常听到实时转码,我们在NAS上部署Jellyfin/ebmy等影音服务器时就会用到这个功能。
应用场景1:让低端设备流畅播放高清影片
像我手上有一台安卓投影仪,因为处理器比较低端,只能播放最高分辨率为1080P且编码为H264的视频,遇上H265/HEVC编码的视频就没办法播放了,一卡一卡的。或者说普通H264 1080高码率的影片它也无法正常播放,720P对于它来说是最好的。
比如说下图这个编码的视频它就无法流畅播放了,HEVC编码,因为这个编码是近年来普及的,这台投影仪多年前就生产了,无法流畅播放也是正常的。
所以这个时候,实时转码就派上用场了,在安卓投影仪上装上Jellyfin,在播放时选择一个低分辨率,如720P,此时实时转码开始了,把1080P高码率的影片转成720P 4Mbps低码率的视频,实时传输到投影仪上播放,就能完美流畅播放了,对于一些低端播放器非常友好,此为应用场景之一。
希望这样举例大家可以理解。
应用场景2:高码率影片转成低码率进行远程串流播放
第2个应用场景是我最常用的,现在有这么一个用法,我在NAS中部署了Jellyfin影音服务器,我在外网情况下通过流量连接NAS进行观影,但是我的手机流量限速了,只有3.1Mbps速度。
但一部电影的码率如下,9492kbps即约9Mbps码率,相当于原画质播放的话,至少需要9Mbps的带宽才能流畅播放,我的NAS上行带宽有30兆,但我远程连接NAS的手机速率只有3.1兆,所以这部9兆码率的电影无法流畅进行播放,手机限速后它只能流畅实时播放3.1兆码率的影片。
那算怎么办呢?此时,实时转码的威力就体现了,那么我就在播放时选择一个480P-3Mbps的分辨率就行了,实时转码就会把1080 9兆码率的影片实时转成480P 3兆的影片,实时往手机串流播放,这样,3.1兆速度的带宽也能流畅进行观影了。
就算你是4K 100兆码率的影片,也能实时转成3兆码率进行远程串流播放,这就是实时转码的常用场景了。
如下图,原始影片为1080,码率为12Mbps,如果用我8Mbps的带宽速度来看,是没办法流畅观看的,但是我选择转码为低于8Mbps就可以流畅观看了,实时转为8兆码率影片,这样远程就可以流程通过8兆带宽播放。
希望以上两个使用场景可以让各位理解实时转码在NAS影音服务器上的作用。
哪种转码方式效率更高?
安装完Jellyfin后,在控制台-播放,转码选项处开启时会发现,有多种转码方式可选,比如常见的有AMD AMF、Nvidia NVENC、Intel QuickSync、VAAPI、Apple VideoToolBox、Video4Linux。
那么这几种转码方式应该如何选择呢?或者说,如果根据自己的处理器选择合适的转码方案呢?
我简单查了一下这几个转码方案的细节。非相关从业人士,多为百科查询而来,如有说错请指正。
AMD AMF:AMD处理器专有,AMF全称Advanced Media Framework,简译为高级媒体框架。此SDK可用于开发无线显示,远程桌面,视频编辑,转码和回放应用程序。使用AMD处理器或显卡的可选此项。
Nvidia NVENC:NVENC是英伟达的专有技术,NVENC 是 GeForce GPU 的一个独立部分,用于对视频进行编码,从而减轻了CPU 的负担。使用英伟达显卡的可选此选项。
Intel Quick Sync:Intel Quick Sync Video是由英特尔提供的快速视频转换技术,利用支持QSV的硬件可显著加速视频编解码能力,可被应用于播放器和视频编辑软件。使用英特尔处理器的可选此项。
VAAPI:是一套 Intel 提供的视频硬件编解码的开源库和标准。例如可使用这套API使用英特尔GPU的硬件加速能力,也就是通过此API可调用英特尔集显。
Apple VideoToolBox:有Apple字眼,顾名思义是苹果的相关标准,IOS8后开放了这套API,一个底层视频硬编解码框架,纯C语言API,可直接访问硬件的编解码器;一般影音服务器装在服务端,没在果子机器上装过,所以这个我没机会尝试。
Video4Linux:Video4Linux(简V4L)是Linux中关于视频设备的内核驱动,它为针对视频设备的应用程序编 程提供一系列接口函数,这些视频设备包括现今市场上流行的TV卡、视频捕捉卡和USB摄像头等。
我手上只有英特尔处理器,没有AMD的处理器测试,以英特尔来说,选择Intel Quick Sync转码效率比VAAPI更高,像群晖上,比较常用的转码方式就是Intel Quick Sync和VAAPI。
但一些比较老的处理器如J1900,选择Intel Quick Sync会提示报错,只有选择VAAPI才可正常转码,加上这些老赛扬处理器集显性能本就很差,所以开和不开集显转码也是没差别,J1900转个1080的视频就非常卡顿了。
但是一些较新的处理器,如3865U、N4505、N5105等,你直接选择Intel Quick Sync转码就行了,集显性能强不少,也能正常转码。
以这我台3865U机器为例,装了群晖,装了Jellyfin,在筢Intel Quick Sync时效率就比VAAPI更快,直观感受就是转码时加载速度快,而VAAPI则相比慢半拍。
另一个比较明显的是,选择VAAPI时,处理器占用会比Intel Quick Sync高非常多,感觉就是VAAPI迟滞导致要占用部分CPU资源。
Intel Quick Sync时,转码时,甚至处理器占用没有变化。前提是集显足够强,像N4505,在转4K影片时,处理器占用不过半,如N5105,处理器占用甚至不变化,因为它们的GPU集显够强。
如英特尔QSV,如果你使用的是英特尔处理器,以J1900为例,可以在英特尔官网查询处理器参数,在”英特尔Quick Sync Video”参数处查看是否为『是』,是代表支持,即可选择Intel QSV转码方式。
在硬件加速界面,如选择英特尔QSV,还会有硬件解码选项,这些是否打勾可以根据自己的处理器是否支持这些编码来决定。
如何查这些编码吗,可以在CPUMONKEY网站中查询是否支持,比如可以输入J1900和N4505的对比,往下拉,就可以看到你的处理器是否支持。
可以看到,新款N4505处理器支持的编解码更多,比如J1900不支持H265,4505就支持了。可以对应这里的编解码支持勾选即可,这算是一个比较方便查看处理器编解码的地方了,当然也可以去处理器官网查询。
说了这么多,如果你是较新款的英特尔处理器,无脑选择Intel QSV转码方式就行了。
限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信:11082411