如何在 ubuntu 上使用 ffmpeg 获取 vdpau 硬件加速?

如何在 ubuntu 上使用 ffmpeg 获取 vdpau 硬件加速?

我正在使用 ffmpeg 开发多媒体播放器。我正在努力尝试使用 vdpau 硬件加速器通过 ffmpeg 获得硬件加速。到目前为止,我还没有取得任何成功。下面我提到了我的系统规格、软件和 ffmpeg 命令行工具错误的详细信息。如果您需要更多信息,请随时发表评论。任何快速建议都将大有帮助。

这是我的系统硬件规格:
处理器:Intel® Core™ i5-4570 CPU @ 3.20GHz × 4
图形:GeForce GTX 750 Ti/PCIe/SSE2
操作系统:Ubuntu-14.04 64位
内存:8GiB

软件: ffmpeg-2.8.1

其他有用的日志: 1.在ffmpeg中找到启用硬件加速器

./ffmpeg-hwaccels

ffmpeg 版本 2.8.1 版权所有 (c) 2000-2015 FFmpeg 开发人员
  使用 gcc 4.8 构建(Ubuntu 4.8.4-2ubuntu1~14.04.3)
  配置:--enable-shared
  libavutil 54. 31.100 / 54. 31.100
  libavcodec 56. 60.100 / 56. 60.100
  libavformat 56. 40.101 / 56. 40.101
  libavdevice 56. 4.100 / 56. 4.100
  libavfilter 5.40.101 / 5.40.101
  libswscale 3. 1.101 / 3. 1.101
  libswresample 1. 2.101 / 1. 2.101
硬件加速方法:
维普

2. 使用ffmpeg进行Hw accel解码

./ffmpeg -hwaccel vdpau -i /tmp/test.mp4 /tmp/test.ts

错误日志:

libva 信息​​:VA-API 版本 0.35.0
libva 信息​​:va_getDriverName() 返回 0
libva 信息​​:尝试打开 /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva 信息​​:va_openDriver() 返回 -1

3.命令:lspci -vnn | grep -i VGA -A 12

01:00.0 VGA 兼容控制器 [0300]: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] [10de:1380] (rev a2) (prog-if 00 [VGA 控制器])
    子系统:ZOTAC International (MCO) Ltd. 设备 [19da:288a]
    标志:总线主控、快速设备、延迟 0、IRQ 48
    位于 f6000000 的内存(32 位,不可预取)[大小=16M]
    内存位于 e0000000 (64 位,可预取) [size=256M]
    位于 f0000000 的内存(64 位,可预取)[大小=32M]
    e000 处的 I/O 端口 [size=128]
    [虚拟] 扩展 ROM 位于 f7000000 [已禁用] [大小=512K]
    功能:
    正在使用的内核驱动程序:nvidia

01:00.1 音频设备 [0403]: NVIDIA Corporation 设备 [10de:0fbc] (rev a1)
    子系统:ZOTAC International (MCO) Ltd. 设备 [19da:288a]

答案1

根据文档这里,

为了实现此功能,您通常需要发行版中的 libvdpau 开发包和兼容的图形卡。

请注意,VDPAU 不能用于解码内存中的帧,压缩帧由 libavcodec 发送到 VDPAU 支持的 GPU 设备,然后可以使用 VDPAU API 访问解码后的图像。FFmpeg 不会自动执行此操作,而必须在应用程序级别执行(例如,检查 ffmpeg.c 使用的 ffmpeg_vdpau.c 文件)。另请注意,使用此 API 无法将解码后的帧移回 RAM,例如在您需要再次编码解码后的帧(例如在服务器上进行转码时)。

目前,通过 libavcodec 中的 VDPAU API 支持多种解码器,特别是 H.264、MPEG-1/2/4 和 VC-1。

输出mediainfo videofile应该可以说明所使用的编解码器是否受支持,但是上述文档中的 FFMpeg IMplementations 表表明 VDPAU 由于技术原因已被弃用,不应使用。

我没有什么可补充的,但希望这些信息仍然有用。

相关内容