FFmpeg硬件解码

FFmpeg介绍

工业场景下,图像模型部署往往需要配合多路视频流硬件解码。而FFmpeg 是最流行的多媒体转码软件,集成了市面上大部分编解码器:

https://trac.ffmpeg.org/wiki/HWAccelIntro

其中英伟达的NVENC/NVDEC支持最广


英伟达NVDEC和NVENC

https://docs.nvidia.com/video-technologies/video-codec-sdk/12.2/ffmpeg-with-nvidia-gpu/index.html

FFmpeg定制管道在GPU上进行解码与AI推理,市面上开源的案例很少:

https://cloud.tencent.com/developer/article/2257849(开源,ffmpeg命令行启动)

https://cloud.tencent.com/developer/article/2013062(腾讯,暂未开源)

下面是一个博主,写了一些硬件解码的博客:

OpenCV+NVDEC

https://blog.csdn.net/jiexijihe945/article/details/125084488

OpenCV+GStreamer

https://blog.csdn.net/jiexijihe945/article/details/125928135

英特尔的dxva2解码+d3d9渲染方式作者不推荐使用,但是调用的坑比较少,易上手。

https://blog.csdn.net/COCO56/article/details/89517157

ffmpeg+NVDEC python示例

https://blog.csdn.net/qq_43513908/article/details/138194947

ffmpeg命令 通过命令 ffmpeg -hwaccels 可以查询系统支持的硬件加速器。

https://juejin.cn/post/7034411980316213256

FFmpeg编译

ffmepg编译静态库相对于动态库更简单,但是需要注意,如果使用Pytorch调用ffmpeg,必须使用动态库。以下是一些安装方式:

1. media-autobuild_suite工具

对网络要求很高,即使使用VPN也很难编译完成

https://trac.ffmpeg.org/wiki/CompilationGuide

github.com/m-ab-s/media-autobuild_suite

https://www.youtube.com/watch?v=Z8UOtaxHGIU

2. MSYS2编译(编译动态库推荐)

https://blog.csdn.net/dbyoung/article/details/100030912

参考https://blog.csdn.net/m0_63230155/article/details/132216971先安装MSYS2

3. 直接下载编译好的(编译静态库推荐)

windows下载编译好的ffmpeg,自带nvdec nvenc等外部库。将源码目录下的bin文件夹增加至环境变量。

https://trac.ffmpeg.org/wiki/CompilationGuide

https://www.cnblogs.com/kongbursi-2292702937/p/17564385.html

https://github.com/BtbN/FFmpeg-Builds/releases(直接下载就能用)

命令行测试可以调用GPU100%

ffmpeg-python

https://github.com/kkroening/ffmpeg-python/issues/284

4. 用Chocolatey安装ffmpeg

5. 使用Conda可以直接安装,但是版本较低

发表评论

邮箱地址不会被公开。 必填项已用*标注