首先目前ffmpeg不支持在nvidia jetson 平台上进行使用硬件编解码加速,但是由于nvidia 提供了相对的硬件编解码加速的api,故可以将api集成到ffmpeg实现。
好在国外大神多,在github上已经有人实现了。
GitHub - jocover/jetson-ffmpeg: ffmpeg support on jetson nano
这个是实现的jetson api 的c++ 工程,需要编译出so库,用来给与ffmpeg编译用。
GitHub - LinusCDE/mad-jetson-ffmpeg: FFmpeg fork that aims to include all the HW Accel for Nvidia Jetson
这个工程则是集成了补丁的ffmpeg, 安装上面的so库,之后可以直接编译此ffmpeg用于jetson平台。
编译命令,编译过程中可能需要安装一些第三方库,使用sudo apt-get install 即可
./configure --prefix=/usr/local/ffmpeg_4.4 --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib" --disable-debug --disable-stripping --enable-lto --enable-fontconfig --enable-gpl --enable-libdrm --enable-libfreetype --enable-libx264 --enable-nvmpi --enable-shared --extra-libs="-L/usr/lib/aarch64-linux-gnu/tegra -lnvbuf_utils" --extra-cflags="-I /usr/src/jetson_multimedia_api/include/"
之后即可使用"h264_nvmpi" 编解码器,进行硬件加速。文章来源:https://www.toymoban.com/news/detail-562963.html
另外需要搞清楚,jetson平台编解码出来的数据还是在cpu内存里, 它只是集成了硬件模块实现了编解码,并不是GPU在实现,此处是重点。文章来源地址https://www.toymoban.com/news/detail-562963.html
到了这里,关于nvidia jetson 平台使用 ffmpeg nvmpi 硬件编解码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!