书接上次,大佬们建议我用硬件加速,我现在换了 AMD 的显卡,并且成功在我的 Linux 安装了 ffmpeg 。 我运行:ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -i input.mp4 -vf format=yuv420p,hwupload -c:v h264_vaapi -b:v 1000k output.mp4
可硬件加速,CPU 占用率很低。 但是我在我的 c++代码里使用来创建:int ret = av_hwdevice_ctx_create = (&hw_device_ctx,AV_HWDEVICE_TYPE_VAAPI,"/dev/dri/renderD128");
我打印了 ret:-12 ,我查阅了资料是因为无法创建内存空间导致的。
忘了说,我用的是 qtcreator ,我在 qt 的 pro 文件了引入了-lavcodec -lavformat -lavutil -lswscale ,在不用硬件加速的时候可以看到视频,也可以播放,但是用了 vaapi 那个加速就会打印-12
我查阅资料可能是没有引入 libva 和 libva-drm 。
有没有大佬了解过这些! 跪谢!困扰我一周了!(我没法尝试是因为公司电脑关了,这周末难受的我啊,解决不了问题我都睡不好)
1
mumbler 2 天前
问过 AI 了吗
|
2
iamzuoxinyu 2 天前
|
4
jeddida OP @iamzuoxinyu 我在 stackoverflow 搜了半天都没搜出来!感谢大佬
|
5
valord577 1 天前
|
6
VchentozV 1 天前 via iPhone
读源代码
|
8
guhuisec 1 天前
ffmpeg 编译的 lib 要支持 vvapi 才行,你需要自己编译下 ffmpeg 的 lib 让他支持硬解,
|
9
guhuisec 1 天前
https://blog.csdn.net/snail_hunan/article/details/136157819?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-136157819-blog-83581296.235^v43^pc_blog_bottom_relevance_base6&spm=1001.2101.3001.4242.1&utm_relevant_index=3
|