dlo*_*man 5 c++ ffmpeg hardware-acceleration libavcodec
我正在尝试使用 libavcodec 让硬件加速视频工作。我使用hw_decode.c示例作为起点,但无法让它工作。两者都是AVCodecContext->hwaccel并且AVCodecContext->hwaccel_context是NULL
当我看到输出时,我相信 hwaccel 的某些部分正在工作
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
Run Code Online (Sandbox Code Playgroud)
这和我跑步时是一样的
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i input.mpg -f null -
Run Code Online (Sandbox Code Playgroud)
但之后我立即收到以下错误消息
[h264 @ 0x1df2cc0] Hardware acceleration context (hwaccel_context) does not exist.
Failed to get HW surface format.
[h264 @ 0x1df2cc0] decode_slice_header error
[h264 @ 0x1df2cc0] no frame!
Run Code Online (Sandbox Code Playgroud)
我查看了类似的问题,其答案显示了如何获得AVCodecContext->hwaccel. 但即使是AVCodecContext->hwaccel一个有效的 VAApih264 解码器,我仍然收到相同的错误消息。
如何初始化 a AVCodecContext->hwaccel_context,之后我还需要做什么才能让硬件加速视频在 ffmpeg 中工作?
| 归档时间: |
|
| 查看次数: |
2068 次 |
| 最近记录: |