Jetson NX FFmpeg硬件编解码实现

最近在用Jetson Xavier NX板子做视频处理,但是CPU进行视频编解码,效率比较地下。

于是便考虑用硬解码来对视频进行处理。

通过jtop查看,发现板子是支持 NVENC硬件编解码的。

1、下载源码

因为需要对ffmpeg进行打补丁修改,因此需要编译两份源码

1.1、编译jetson-ffmpeg

1)、下载jetson-ffmpeg (GitHub - jocover/jetson-ffmpeg: ffmpeg support on jetson nanohttps://github.com/Keylost/jetson-ffmpegGitHub - jocover/jetson-ffmpeg: ffmpeg support on jetson nano) 源码

2)、 编译jetson-ffmpeg

下载后,依次执行如下命令进行编译

cd jetson-ffmpeg
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

1.2、编译ffmpeg

1)、下载ffmpeg源码

本博文 以 4.2版本为例

git clone git://source.ffmpeg.org/ffmpeg.git -b release/4.2 --depth=1

2)、下载patch补丁

网络上不少提示补丁地址

https://github.com/Keylost/jetson-ffmpeg/raw/master/ffmpeg_patches/ffmpeg4.2_nvmpi.patch

但是我执行,报错。

最后发现,在jetson-ffmpeg下面就有相应的patch版本

ll ffmpeg_patches/
total 116
drwxr-xr-x 2 root root  4096 10月 30 19:11 ./
drwxr-xr-x 8 root root  4096 10月 30 19:11 ../
-rw-r--r-- 1 root root 34433 10月 30 19:11 ffmpeg4.2_nvmpi.patch
-rw-r--r-- 1 root root 34216 10月 30 19:11 ffmpeg4.4_nvmpi.patch
-rw-r--r-- 1 root root 34497 10月 30 19:11 ffmpeg6.0_nvmpi.patch

将 对应的 ffmpeg4.2_nvmpi.patch 拷贝到ffmpeg目录下

3)、升级补丁

执行如下命令进行补丁升级4

git apply ffmpeg4.2_nvmpi.patch
ffmpeg4.2_nvmpi.patch:249: trailing whitespace.

ffmpeg4.2_nvmpi.patch:271: trailing whitespace.

ffmpeg4.2_nvmpi.patch:351: trailing whitespace.

ffmpeg4.2_nvmpi.patch:353: trailing whitespace.

ffmpeg4.2_nvmpi.patch:359: trailing whitespace.

warning: squelched 21 whitespace errors
warning: 26 lines add whitespace errors.

4)、编译ffmpeg

配置

mkdir build
cd build/
../configure --prefix=../ffmpeg_install

编译

make
make install

编译完成。

2、测试

执行如下命令,即可以使用硬编码

ffmpeg -c:v h264_nvmpi  -rtsp_transport tcp -i rtsp -hls_time 10 -hls_list_size 1 -hls_flags delete_segments -f hls index.m3u8

运行jtop 查看

已经调动了硬编码与硬解码

相关推荐
EasyCVR5 小时前
EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?
人工智能·算法·ffmpeg·音视频·webrtc·监控视频接入
简鹿办公6 小时前
使用 FFmpeg 进行音视频转换的相关命令行参数解释
ffmpeg·简鹿视频格式转换器·ffmpeg视频转换
EasyCVR9 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
runing_an_min9 小时前
ffmpeg 视频滤镜:屏蔽边框杂色- fillborders
ffmpeg·音视频·fillborders
岁月小龙20 小时前
如何让ffmpeg运行时从当前目录加载库,而不是从/lib64
ffmpeg·origin·ffprobe·rpath
行者记2 天前
ffmpeg命令——从wireshark包中的rtp包中分离h264
测试工具·ffmpeg·wireshark
EasyCVR2 天前
国标GB28181视频平台EasyCVR私有化视频平台工地防盗视频监控系统方案
运维·科技·ffmpeg·音视频·1024程序员节·监控视频接入
hypoqqq2 天前
使用ffmpeg播放rtsp视频流
ffmpeg
cuijiecheng20182 天前
音视频入门基础:FLV专题(24)——FFmpeg源码中,获取FLV文件视频信息的实现
ffmpeg·音视频
QMCY_jason2 天前
黑豹X2 armbian 编译rkmpp ffmpeg 实现CPU视频转码
ffmpeg