相关疑难解决方法(0)

如何使用ffmpeg进行硬件加速

我需要使用硬件加速来ffmpeg解码我的视频(例如h264).我正在使用解码帧的常用方法:读取数据包 - >解码帧.而且我想让ffmpeg加速解码.所以,我有内置它--enable-vaapi--enable-hwaccel=h264.但我真的不知道接下来该怎么做.我试过使用avcodec_find_decoder_by_name("h264_vaapi")但它返回nullptr.无论如何,我可能想要使用其他API而不仅仅是VA API.如何加速ffmpeg解码?

PS我没有在互联网上找到任何使用ffmpeg和hwaccel的例子.

c c++ ffmpeg hardware-acceleration

43
推荐指数
1
解决办法
5万
查看次数

在libavcodec中初始化hwaccel_context

我正在尝试使用 libavcodec 让硬件加速视频工作。我使用hw_decode.c示例作为起点,但无法让它工作。两者都是AVCodecContext->hwaccel并且AVCodecContext->hwaccel_contextNULL

当我看到输出时,我相信 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)

c++ ffmpeg hardware-acceleration libavcodec

5
推荐指数
0
解决办法
2068
查看次数

标签 统计

c++ ×2

ffmpeg ×2

hardware-acceleration ×2

c ×1

libavcodec ×1