xHiveAI Jetson NX盒子:音视频流硬件解码

Nvidia提供gstreamer和ffmpeg两种方法来实现对于音视频流的解析和硬件解码操作。我们的盒子基于Nvidia标准release的ffmpeg4.2.2来实现该功能。

获取示例代码

git clone https://github.com/apoidea-xhiveai/jetson.git

音视频解码的代码路径为:jetson/hd_decoder/ffmpeg

编译示例代码

copy代码到盒子上

scp -r ffmpeg root@:/root

ssh登录盒子后,执行以下命令来编译代码:

cd /root/ffmpeg

make

编译成功后,生成可执行文件:ffmpeg_hd_decoder

执行示例代码

示例程序解析输入的视频流,把硬件解码后的YUV图片数据写入文件。该文件可以在PC上用查看原始YUV/RGB数据的图片工具来验证是否工作正常。

命令的格式如下:

./ffmpeg_hd_decoder

./ffmpeg_hd_decoder (compiled Jul 19 2022)

Usage ./ffmpeg_hd_decoder [OPTION]

 -i

 -o                             : output file path

 -c (default: 1)  : the number of video frames

 -h, --help                                                : print this help and exit

-i: 输入的视频流可以为: http, rtsp, file 等格式

-o: 输出YUV文件的路径

-c: 指定输出几帧图片。默认是1帧

例子:

./ffmpeg_hd_decoder -i rtsp://admin:[email protected] -o out.yuv

在操作实时rtsp流的时候,可能会遇到播放视频滞后的问题(譬如,你在camera前作出一个动作,但是解码后显示到LCD上有一定的延时)。这可以通过调整"nobuffer",“probesize” 等参数可以大幅减少这种delay。

你可能感兴趣的:(音视频)