问题标签 [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 投票
0 回答
791 浏览

gstreamer - 使用 libgstvaapi.so 的 gstreamer-vaapi 插件缺少 vaapih265enc

在我的 Ubuntu 20.04 机器中,我按照https://gstreamer.freedesktop.org/documentation/installing/on-linux.html?gi-language=c上的官方文档安装了 gstreamer

然后我安装了以下内容:

但是当我尝试使用 vaapih265enc 时,管道失败了:

如果我检查插件,输出显示为:

当我 grep 库中的 h265 行时,我找到了编码器:

我该怎么做才能使其可用于 gstreamer?

0 投票
1 回答
167 浏览

ffmpeg - 使用 QSV、CUDA 和 VAAPI 的自定义 FFMpeg 构建,也可以在其他服务器和目录上运行

因为我是从第一次使用 FFMpeg 构建经验开始的。我想构建一个具有 IntelHD GPU (QSV) 和 Nvidia GPU (NVENC) 和 VAAPI 支持的自定义版本的 FFMpeg,它也应该稍后在具有相应 GPU (IntelHD + GPU) 的其他 Linux (Ubuntu 18.04 和 20.04) 计算机上运行。所以我想问以下问题:

  • 相应的显卡(IntelHD 和 Nvidia)是否必须在我要编译 FFMpeg 的服务器上可用,并且是否必须安装它们的驱动程序?还是没有必要?
  • 如果必须安装显卡驱动程序,卡驱动程序是否还必须安装在另一台服务器上,或者驱动程序是否已相应编译?
  • 必须进行哪些配置设置才能在第三(外部)服务器上的不同目录上运行 FFmpeg 二进制文件,例如 /home/anotherfolder/underfolder/ffmpeg ?
0 投票
1 回答
509 浏览

c - FFmpeg av_hwdevice_ctx_create 返回 ENOMEM

我正在尝试使用 ffmpeg 的 vaapi 库在 GPU 上执行 h264 视频编码。

我一直在关注 ffmpeg Github repo 中的这个例子

它在这里对我来说失败了:

这将返回 -12,它映射到ENOMEM(内存不足)错误,但这对我来说没有意义,因为我有足够的内存。

作为参考,这是我运行“vainfo”后的输出:

谢谢!

0 投票
1 回答
154 浏览

h.264 - H264 解码总是延迟一帧

编码器编码视频(IDR PPP ...)并发送到解码器并实时显示,我注意到编码器发送第 i 帧但解码器显示第 i-1 帧。

我知道 p 帧需要从 ref 列表中删除,以便可以从解码图片缓冲区中删除,但这会导致下一个 p 帧解码失败。

有没有办法解决一帧延迟?

因为一帧延迟大约是 33 毫秒延迟为 30fps,这是不可接受的。

0 投票
0 回答
254 浏览

ffmpeg - ffmpeg vaapi - 缩放视频,保持纵横比并用黑线填充

我正在尝试使用我的 Vega 11 GPU 将某些视频文件的硬件加速转码到 1280x720 的分辨率。我想保持原始纵横比,并根据需要在边框上添加黑条。我可以通过以下方式进行缩放:

但是某些图像会因此而被拉伸,并且不会保留原始纵横比。

在 Raspberry Pi 上,我可以通过以下方式获得我想要的效果:

但是当我尝试将 force_original_aspect_ratio 和 pad 选项与 vaapi 编解码器一起使用时,我收到以下错误:

我应该使用其他选项来获取填充并保持原始纵横比吗?

0 投票
1 回答
509 浏览

ubuntu - 英特尔 vaapi 错误:无法连接到 X 服务器

我正在使用带有 Ubuntu 18.04、CPU Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 和 Nvidia Tesla T4 的 EC2。似乎vainfo报告了一个有问题的设置:

我的目标是在 Python 中使用 vaapi 加速硬件解码和 gstreamer。

lspci | grep VGA返回:

笔记:

我怎样才能解决这个问题?

0 投票
0 回答
81 浏览

ffmpeg - av_hwdevice_ctx_create() 返回“外部库中的一般错误”(-542398533)

我们在 Ubuntu 20.04 系统上使用 ffmpeg 4.3。在我们的多线程应用程序中,我们在多布局视图中流式传输来自不同摄像机的视频。通过软件解码,它可以正常工作。当我们使用硬件解码(通过参考 vaapi_transcode.c 示例程序)时,它最初可以工作。如果我们继续更改关闭和打开解码器的布局,av_hwdevice_ctx_create() 返回错误 -542398533。我们发现它映射到“外部库中的一般错误”。如果我们频繁打开和关闭解码器,ffmpeg 4.3 是否存在问题?我们在调用 ffmpeg API 时确保了线程安全。

我们遵循 vaapi_transcode.c 中的步骤,即使用 avcodec_alloc_context3 创建 AVCodecContext,并在关闭时使用 avcodec_free_context() 和 av_buffer_unref()。

相同的应用程序在 16.04 和 ffmpeg 3.2.4 上运行良好。但是,使用的硬件解码 API 是不同的。那里我们提到了ffmpeg_vaapi.c。当我们迁移到 20.04 时,我们无法使用相同的版本,因为我们必须升级到 ffmpeg 4.3。

我们在 20.04 中遗漏了什么吗?在这方面的帮助将不胜感激。

0 投票
0 回答
144 浏览

ffmpeg - 使用带硬件加速的 ffmpeg

很长一段时间以来,我一直在使用 ffmpeg 将 iPhone 上拍摄的 mov 文件转换为 mp4,使用以下命令:

结果是文件质量好且体积(大小)相对较小。

最近发现ffmpeg已经支持硬件加速了。我决定尝试,但在文档中感到困惑。有许多复杂且难以理解的参数。谷歌帮我写了这行:

它有效。通过硬件加速,文件的转换速度要快得多,但 out.mp4 文件的大小比原始文件的大小要大得多。

请告诉我如何获得与第一个命令(质量/大小)后相同的结果,但使用硬件加速。

设备/操作系统:

0 投票
0 回答
42 浏览

linux - ffmpeg vaapi fade+concat filter 无法在过滤器'Parsed_concat_4'和过滤器'auto_scaler_0'支持的格式之间转换

我正在尝试使用 vaapi 对我应用过滤器的视频进行编码。过滤器应该淡入和淡出第一个视频,然后连接第二个视频。

当我使用“-vcodec libx264 -preset ultrafast”而不是 h264_vaapi 时,它工作正常。

但是当我将它切换到以下

它变得疯狂并引发错误

我做错了什么?

0 投票
0 回答
37 浏览

ffmpeg - 将ffmpeg与vaapi硬件编码器一起使用时如何指定配置文件

当我使用 ffmpeg 和 vaapi 编码器时,我知道我可以在命令行中指定“配置文件”:

由于我使用的是 vaapi,我知道我需要通过键入来查看我的英特尔 CPU 实际支持的配置文件类型

从这个输出中,我知道我的英特尔支持MainHighConstrainedBaseLine配置文件

(顺便说一句,我不知道“VAEntrypointEncSlice”和“VAEntrypointEncSliceLP”是什么意思)

通过交叉引用维基页面 https://en.wikipedia.org/wiki/Advanced_Video_Coding#Profiles

相应的“配置文件编号”是 77 100 和 66

问题是指定特定的配置文件没有任何影响。换句话说

产生完全相同大小的输出文件。

我的问题是:出了什么问题?很明显,我调用了正确的配置文件,否则 ffmpeg 会抱怨该配置文件不受支持。但是如果正确调用了编码配置文件,为什么它对输出文件没有影响?

提前致谢