Jetson Xavier NX使用ffmpeg调用硬解码

有伙伴问使用Jetson Xavier NX ffmpeg进行转码时卡死,转MP4格式可转6路,但转m3u8却不行,这是因为rtsp用nx自带的视频解码器做解码不消耗cpu和gpu资源,但是要调用硬解码接口。可以通过如下方式解决

这里所使用设备为:Jetson Xavier NX 8G,系统为Jetpack4.6.1

1. nvmpi构建并安装库
git clone https://github.com/jocover/jetson-ffmpeg.git
cd jetson-ffmpeg
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
2. 安装相关依赖文件
sudo apt update
sudo apt install libnuma-dev pkg-config
3. 编译ffmpeg,在这我使用的是ffmpeg6.0进行编译的,编译过程中需注意查看这个patch是否全覆盖或缺失。
clone one of supported ffmpeg versions
git clone git://source.ffmpeg.org/ffmpeg.git -b release/4.2 --depth=1
or
git clone git://source.ffmpeg.org/ffmpeg.git -b release/4.4 --depth=1
or
git clone git://source.ffmpeg.org/ffmpeg.git -b release/6.0 --depth=1
cd ffmpeg
get and apply patch for your ffmpeg version
wget -O ffmpeg_nvmpi.patch https://github.com/Keylost/jetson-ffmpeg/raw/master/ffmpeg_patches/ffmpeg4.2_nvmpi.patch
or
wget -O ffmpeg_nvmpi.patch https://github.com/Keylost/jetson-ffmpeg/raw/master/ffmpeg_patches/ffmpeg4.4_nvmpi.patch
or
wget -O ffmpeg_nvmpi.patch https://github.com/Keylost/jetson-ffmpeg/raw/master/ffmpeg_patches/ffmpeg6.0_nvmpi.patch
git apply ffmpeg_nvmpi.patch
./configure --enable-nvmpi
make
4.ffmpeg的使用

example

ffmpeg -c:v h264_nvmpi -i input_file -f null -

运行结果如下

Jetson Xavier NX使用ffmpeg调用硬解码_第1张图片

以上是一路转码效果,两路验证也是可行的。

你可能感兴趣的:(ffmpeg,ubuntu)