validationVP8硬件编码/解码在Linux上是否真正起作用

我有“华擎”的“Beebox”。 本机的处理器是英特尔赛扬N3150,支持VP8videostream的硬件编码和解码。 我想在Google Chrome(在Debian Linux上)使用此function进行WebRTC调用。 但我不知道如何certificate,Chrome是真的使用硬件编码/解码。

我的发现迄今为止

不幸的是,Linux上的情况非常混乱。 除了不同的加速API(VAAPI,VDPAU等),其中我不知道Chrome究竟在使用哪一种API,因此Chrome增加了一些额外的混淆:

video解码:仅软件,硬件加速不可用

video编码:硬件加速

在“ chrome:// gpu ”页面上。

编码:即使ist说,编码加速,当我编码高清video作为VP8stream时,我有60-70%的CPU负载。 这看起来不像HW编码给我。

解码:就我在网上看到的,硬件解码似乎根本不支持Linux下的Chrome。 有一个称为–ignore-gpu-blacklist的Chrome开关,确实将“ Video Decode ”行从“ 仅软件… ”变为“ 硬件加速 ”,但这不会改变任何内容。 我还和科迪(Kodi),VLC等不同媒体做过一些研究。 这些玩家在玩VP8的时候显示的CPU负载大约为25-30%,这确实可能是硬件解码,但是当我closures这些玩家的硬件编码的时候,这一切都没有改变。 这反过来使我相信,即使这些不硬解码。

工具:我发现了一些工具,即使是来自英特尔,但其中大部分都是指GPU负载(意思是3D加速)。 我也试过从mesa-utils的 glxinfo ,它说:“ 直接渲染:是的 ”,并根据此线程确认支持硬件解码(?)。 但是这只是说明支持是可用的,而不是目前是否有任何应用程序正在使用它。

在Linux上对VP8videostream进行编码或解码时,有没有办法清楚地validation硬件编码器和/或解码器是否正常工作?

非常感谢您的帮助!

    1)这里有一个更具体的标志。 在Chrome://gpu ,您应该看到VPx Video Decode:

    它说硬件还是软件?

    2)相关的,有一些尝试:在Chrome浏览器中转到YouTube,播放任何视频。 在播放视频时右键单击视频,然后从上下文菜单中选择Stats for Nerds

    这会告诉你,YouTube是否给你VP8,VP9或H.264。 这可能是一个有用的线索,特别是如果你获得H.264。 (这对笔记本电脑来说会更有帮助,因为如果Chrome像MS Edge一样,当笔记本电脑使用电池供电时,它将停止对VPx的支持,迫使YouTube给它H.264,因为VPx消耗的电量比H即使是在硬件解码的情况下也是如此,H.264是一个税率较低的编解码器,其硬件解码比VPx硬件解码效率更高,而Kaby Lake最终可能会缩小差距。

    3)还有其他一些问题。 Chrome软件渲染列表中有一些有趣的条目,暗示Chrome甚至可能会忽略相当新的英特尔GPU,包括Braswell芯片。 看看这里 。 请注意,有一个条目说: “Intel Broadwell,Skylake和CherryView上的VPx解码太慢了

    我不完全理解列表的语法。 这个列表中提到的是否意味着像Broadwell和Skylake这样的整个系列处理器都禁用硬件加速? 我不确定。 在这个和其他条目下面有一堆十六进制的设备ID,所以你可以弄清楚你是否在那里。 还要注意其他条目,其中一些提到了特定的英特尔驱动程序版本以及特定的Linux内核版本。

    4)确保您的Chrome://flags页实际上表示软件渲染列表被覆盖(这是第一个标志)。 你提到了命令行的语法,用旧的“黑名单”这个术语,但是这个标志在最近几年有了一些bug,基本上没有为一些人和其他问题工作。 我只是仔细检查一下,不管你设置了这个标志,它实际上在标志页面显示正确的设置。 如果没有,显然在该页面中正确设置。 请注意,有一个错误可能与您的问题有关系,即覆盖软件渲染列表,即使在没有VPx硬件加速的PC上,也可以将chrome://gpu的VPx视频解码标志翻转为硬件加速,如常春藤Bridge笔记本电脑我现在用的是英特尔HD 4000.我不知道这是否只是一个表象性的错误,而Chrome实际上并没有试图使用硬件加速,或者如果Chrome真的这样做(似乎有崩溃或某事,但它不)。

    Chrome浏览器标志是一个混乱和冲突的词选择混乱。 该标志说覆盖软件渲染列表 。 此标志需要启用 ,而不是禁用。 但是,如果启用,您将看不到Enabled或任何形式的状态指示器。 您会看到“ 禁用 ”一词,作为更改设置的邀请。 就这样你知道…也许这是你的所有旧帽子。

    5)最后一个沟渠,但非常强大的资源,看你的系统上的VP8是怎么回事英特尔媒体SDK 。 如果默认情况下它不是免费的,则作为英特尔IDEs / C ++编译器的学生版和免费试用版的付费IDE版本的一部分是免费的。 有很多,你可以在那里看看有什么。 “开发人员指南”第24页中的这段话让我感到震惊:

    硬件加速可以通过一个简单的编译步骤添加到FFmpeg中。 对于使用FFmpeg命令行或libav * API编写的应用程序,可以通过更改编解码器名称(例如从libx264到h264_qsv)来启用硬件。

    我会在ffmpeg中使用VP8编解码器的方法来查看是否可以在Chrome之外触发系统上的硬件加速。

    6)另外请注意,视频编解码器中的“硬件加速”这个术语在整个行业中使用并不一致,我不确定Chrome究竟是什么意思(在标志中)。 GPU可以加速解码,也可以通过GPU上的固定功能单元(但不使用GPU着色器)在硬件上完全执行解码。 这两者都被称为硬件加速,但它们不是一回事。 有时,“完全在硬件中”或“固定功能”将被用来区分这种情况与一般的GPU加速(有时称为部分加速或混合加速)。 我很确定你的Braswell有一个固定功能,全面的解码VP8的硬件解决方案,但不是编码它,但这是记录不完善。 我认为对于编码,英特尔只提供某种GPU加速(着色器,也许使用OpenGL或OpenCL或者其他,但我不知道细节)。 这种区别对浏览器等应用程序来说可能很重要 全面的硬件解码比单纯的GPU加速效率更高,而这些以及其他英特尔实施细节可能会影响其Chrome浏览器的友好性,非繁琐性,从而影响Chrome开发团队如何使用Braswell模型的决策。 不幸的是,所有这些记录都很糟糕。

    这有帮助吗? https://01.org/linuxgraphics/downloads/intel-graphics-installer-linux-1.4.0

    我也有这个驱动程序的好处N3150板(Asrock N3150DC – ITX)。

    Linux是一个操作系统,所以有很多程序来编码/解码视频。 有些可以使用硬件,而另一些则不能写入。

    所以你的问题太宽了 我使用VLC ,它可以配置为使用vaapi解码h.264视频。 如果从命令行运行VLC并打开h264视频,可以看到它。

    VLC必须配置为在其偏好中使用硬件解码。 另外, vaapi必须工作。 Tha vainfo命令显示哪些编码器可用。 尽管如此,我不认为VLC支持VP8 HW解码。
    图片:

    1.VLC hw解码设置
    2.在VLC中显示h.264硬件解码的控制台消息