问题标签 [vaapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4530 浏览

encoding - (FFmpeg) 给定官方 ffmpeg 示例的 .mp4 或 .webm 容器的 VP9 Vaapi 编码

我正在尝试实现 vp9 硬件加速编码过程。我遵循了 ffmpeg 官方 github 的示例(Here -> vaapi_encode.c)。

但是给出的示例仅将 .yuv 文件保存到 .h264 文件,我想将帧保存到 .mp4 或 .webm 容器。并具有控制质量等的能力。

我不是从文件中读取帧,而是从实时提要中收集帧。当从实时源获得完整的 5 秒帧时,使用 vp9_vaapi 将这些帧编码为 5 秒 .mp4 文件。

我可以将实时提要中的所有 5 秒帧保存到 .mp4 或 .webm 文件中,但它们无法正确播放(更准确地说:继续加载,然后我打开)。

官方网站示例的结果:

在此处输入图像描述

cpu 编码的 vp9 .mp4 文件结果:

在此处输入图像描述

编辑:结果 在此处输入图像描述

0 投票
0 回答
107 浏览

gstreamer - 使用 gstreamer vaapih264 解码在接收器端未重建图像

我正在使用 gstreamer 发送编码的 H264 流并在英特尔硬件上对其进行解码。我的发件人实际上是一个应用程序,它的管道元素看起来像这样:

所以基本上是一个 apprc 元素从实时摄像头获取数据,使用 h264 编码器编码并通过 udp sink 发送。

接收器管道如下所示:

输出如图所示:输出接收器管道在我的硬件上

我想知道我哪里出错了?是延迟还是颜色格式?

0 投票
1 回答
1145 浏览

gstreamer - gst-launch 命令使用 vaapi 硬件加速播放视频

我需要两个 gst-launch-1.0 命令行

1)第一个是简单的播放视频(.mp4),无需使用任何硬件加速。

2)第二种是使用硬件加速播放视频(.mp4),我使用带有i965驱动程序的Intel HD显卡。

我已经安装了 gstreamer 插件。

任何帮助,将不胜感激。

0 投票
0 回答
846 浏览

php - FFmpeg INTEL QuickSync VAAPI FAILURE [未知的 libva 错误]

我在使用 FFmpeg 和 Intel QuickSync 时遇到问题。如果我从 shell 启动我的 ffmpeg 命令,它可以正常工作。但是,如果我想从 cronjob 启动相同的 ffmpeg 命令,我会遇到 Quicksync 失败

我的命令是:

如果我在终端上运行它,一切正常。但是,如果我想shell_exec通过 cronjob 的命令从 php 启动它,我会遇到此失败:

我不知道为什么 FFmpeg 没有从 cronjob 创建 vaapi 设备,请帮助我解决这个问题。

谢谢

0 投票
0 回答
535 浏览

ffmpeg - FFMPEG 将 HEVC 转换为 VP9 大文件大小

我正在尝试将 HEVC 视频转换为 VP9,以便它们可以在网络浏览器中播放,同时保持文件大小大致相同。

我正在努力创建具有相似质量/文件大小的视频。

这是视频为 22:49 和 168.7mb 的 HEVC 视频之一的流信息:

比特率为 900K,所以我认为以下命令将使用相同的比特率并提供大致相似的图像质量:

使用它,质量明显要差得多,而且繁忙的场景看起来令人难以置信的块状,尽管文件大小大致相当于 HEVC 源。

如果我忽略比特率并让 VP9 解决

质量在视觉上无法区分,但 VP9 转换视频的文件大小达到 401mb,高于 HEVC 文件的 168mb,并且在编码期间,大多数视频的比特率超过 3m。

我尝试提高到 120 万(比源视频高 33%),VP9 仍然给出了一个非常块状的视频。

VP9 真的比 HEVC 差那么多,还是我缺少一个选项?还是因为我正在从 HEVC 转换?

0 投票
1 回答
855 浏览

c++ - 使用 OpenGL 渲染 VAAPI 表面?

我的项目是使用与FFmpeg链接的VAAPI硬件加速。

我设法使用 VAAPI 进行解码,但是我希望能够使用 OpenGL 显示来自 VAAPI 的视频。

是否有允许这样做的功能?

我知道为此你必须使用 VAAPI 的表面VASurfaceID,但我不明白如何......

0 投票
1 回答
553 浏览

gstreamer - 为什么带有 vaapih264enc 的 gstreamer 显示“上下文板对等查询失败”?

我想使用硬件编码使用 gstreamer 和 vaapi 压缩原始视频文件。我得到了Could not initialize supporting library,它不允许打开编码器。可能context pad peer query failed是造成这种情况的根本原因。但我不确定。我使用以下管道:

管道失败并显示消息:

我究竟做错了什么?

使用GST_DEBUG=3 gst-launch-1.0 --gst-debug-level=4启动管道给了我这个:

我的硬件应该支持这一点,并且驱动程序似乎安装正确:

vaapi 插件似乎也已正确安装:

感谢您的任何建议。

0 投票
1 回答
9133 浏览

linux - 错误:环境中未设置 XDG_RUNTIME_DIR

我运行 GStreamer 的管道从 rtsp 服务器获取数据。

然后我收到错误:错误:XDG_RUNTIME_DIR 未在环境中设置。

我在 visudo 中添加了一些配置:sudo visudo

它仍然不工作。但它在 Ubuntu 16.04 中运行良好

我的环境是“5.0.0-29-generic #31~18.04.1-Ubuntu SMP Thu Sep 12 18:29:21 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux”。

如果您有任何解决方案,请告诉我。非常感谢

0 投票
1 回答
4186 浏览

ffmpeg - 使用带有叠加网络摄像头的 ffmpeg 的 kmsgrab 设备记录 Linux Wayland/DRM 屏幕

安装程序是 Linux,使用 kabylake iGPU 的 ffmpeg。

我正在使用kmsgrab设备捕获正在运行的摇摆实例,这需要使用硬件后端来连贯地处理我的硬件上的图像。只有 VA API 符合此要求。我想在编码期间覆盖右下角的网络摄像头。然而,试图操纵过滤器图来实现这一点的尝试并不成功。这最终适用于 Twitch/Tube 流。

现在,我实际上正在将网络摄像头捕获到一个 sdl 窗口,并使用单独的ffmpeg. 这实际上并不能解决我的问题,因为该窗口很容易被工作区切换或其他窗口伪装。

这是解决方法:

0 投票
0 回答
1832 浏览

linux - Gstreamer:缺少 vaapih264enc,即使存在其他 vaapi 元素

我正在尝试在 Ubuntu 18.04 上将 VAAPI 与 Gstreamer 一起使用来编码 H.264。我很确定我已经安装了所有必要的软件包(gstreamer1.0-vaapi, vainfo, i965-va-driver以及所有依赖项)。

VAAPI 已启用并且可以工作:

所以VAAPI在那里并且支持H.264。Gstreamer 还具有 VAAPI 支持:

然而,明显缺席的是vaapih264enc。AFAICT 它甚至被编译到包中:

那么我需要做什么才能真正启用相应的 Gstreamer 元素呢?