陈工-创龙科技 发表于 2026-4-27 10:05:34

RK3576 单板机高清视频图像处理开发实战手册(一)

1 gst_dec_display案例1.1案例说明
本案例使用GStreamer API实现ARM端从本地导入H.264/H.265编码格式的4K分辨率视频文件,然后进行H.264或H.265(NV12)解码,将解码后的图像以60fps的帧率实时显示至HDMI显示屏。备注:播放视频时,本案例的H.264解码功能仅支持H.264编码格式的视频,H.265解码功能仅支持H.265编码格式的视频。程序流程图如下图所示:https://file1.elecfans.com/web3/M00/59/27/wKgZO2nuu4CARM6SAABbjRFL58M189.png
案例目录说明如下表所示。https://file1.elecfans.com/web3/M00/59/28/wKgZPGnuu4mAJtZDAAAiHnvdpK4658.png
1.2案例测试请通过HDMI线将4K HDMI显示屏连接至单板机HDMI OUT接口。将案例video目录下的birds_4K_60_H.264.mp4、birds_4K_60_H.265.mp4视频文件和bin目录下的可执行程序gst_dec_display拷贝至单板机系统任意目录下,并进入可执行程序所在目录,执行如下命令查看程序参数信息。Target# ./gst_dec_display --helphttps://file1.elecfans.com/web3/M00/59/28/wKgZPGnuu56AJkxzAAAnfjU06_U288.png
参数解析:-l:选择要播放视频的路径。-x:选择H.264或H.265格式解码。-r:选择播放视频时的帧率。-v:版本信息。--help:帮助信息。1.2.1解码H.264格式视频执行如下命令,以H.264格式对视频进行解码,并将4K@60fps的视频在HDMI显示屏上播放。Target# ./gst_dec_display -l birds_4K_60_H.264.mp4 -x h264 -r 60/1https://file1.elecfans.com/web3/M00/59/28/wKgZPGnuu6SAcAtPAAAZJ1HNkxU623.png
HDMI显示屏将会播放birds_4K_60_H.264.mp4视频文件,如下图所示。https://file1.elecfans.com/web3/M00/59/28/wKgZPGnuu7iAYo3JAPoXHaQ_3ow005.png视频播放完后将自动退出。1.2.2解码H.265格式视频执行如下命令,以H.265格式对视频进行解码,并将4K@60fps的视频在HDMI显示屏上播放。Target# ./gst_dec_display -l birds_4K_60_H.265.mp4 -x h265 -r 60/1https://file1.elecfans.com/web3/M00/59/28/wKgZO2nuu7-ASmmeAAAZNUPOtYg129.png
HDMI显示屏将会播放birds_4K_60_H.265.mp4视频文件,如下图所示。https://file1.elecfans.com/web3/M00/59/28/wKgZPGnuu7iAYo3JAPoXHaQ_3ow005.png
视频播放完后将自动退出。1.3案例编译将案例src目录拷贝至Ubuntu工作目录下,进入src目录,执行如下命令配置交叉编译工具链,并执行make命令进行案例编译。编译完成后,将在当前目录下生成可执行文件。Host# source /home/tronlong/RK3576/environmentHost# makehttps://file1.elecfans.com/web3/M00/59/28/wKgZO2nuu9aACbQYAAJ9PAZ9x3c827.png
1.4案例解析1.4.1GStreamer管道示意图https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4spaAHLKxAAAOLTrpS0g295.png
管道命令示例如下。备注:"filesrc location=test.mp4"请根据实际情况修改视频路径。Appsink: gst-launch-1.0 filesrc location=test.mp4 ! qtdemux ! h264parse ! mppvideodec ! xvimagesink1.4.2关键代码说明(1)初始化GStreamer,创建Pipeline。https://file1.elecfans.com/web3/M00/59/29/wKgZPGnuu-qAWQiMAABHRUqu_MU314.png
(2)初始化GStreamer元件。https://file1.elecfans.com/web3/M00/59/29/wKgZPGnuu_GAFpiHAABVPRdOcGc521.png
(3)检查元件初始化情况。https://file1.elecfans.com/web3/M00/59/29/wKgZO2nuvEeAJ34hAAAoum0L-D8390.png
(4)配置各元件参数。https://file1.elecfans.com/web3/M00/59/29/wKgZO2nuvFeAEuzkAAAkO3r0jYo499.png
(5)将元件加入并链接到Pipeline中。https://file1.elecfans.com/web3/M00/59/2A/wKgZPGnuvGCAMrJRAACB06o3FPg772.png
(6)更改Pipeline状态为playing,使其开始工作。https://file1.elecfans.com/web3/M00/59/2A/wKgZPGnuvGmARZy_AAB2xidITbc317.png
(7)停止Pipeline,并释放资源。https://file1.elecfans.com/web3/M00/59/2A/wKgZO2nuvG-ANFbqAAAycE66Fvg296.png

页: [1]
查看完整版本: RK3576 单板机高清视频图像处理开发实战手册(一)

Baidu
map