![如何在 ubuntu 上使用 ffmpeg 获取 vdpau 硬件加速?](https://linux22.com/image/990783/%E5%A6%82%E4%BD%95%E5%9C%A8%20ubuntu%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20ffmpeg%20%E8%8E%B7%E5%8F%96%20vdpau%20%E7%A1%AC%E4%BB%B6%E5%8A%A0%E9%80%9F%EF%BC%9F.png)
我正在使用 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 由于技术原因已被弃用,不应使用。
我没有什么可补充的,但希望这些信息仍然有用。