陈工-创龙科技 发表于 2026-3-17 10:13:27

RK3562 单板机多媒体开发完全手册:视频输入输出与 GStreamer 案例详解(二)

2 gst_dec_display案例2.1案例说明本案例使用GStreamer API实现ARM端从本地导入H.264/H.265编码格式的800x480分辨率视频文件,然后进行H.264或H.265(NV12)解码,将解码后的图像以60fps的帧率实时显示至LVDS显示屏。备注:播放视频时,本案例的H.264解码功能仅支持H.264编码格式的视频,H.265解码功能仅支持H.265编码格式的视频。程序流程图如下图所示:

https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4sTOAPgVqAAuDqXvdMu0611.png
图 3案例目录说明如下表所示。
https://file1.elecfans.com/web3/M00/4F/38/wKgZPGm4sfiAToFrAAAenGyTsKM281.png
2.2案例测试请通过DVI线将LVDS显示屏(厂家:欣瑞达,型号:XT070YTA23R_A6)连接至单板机LVDS OUT接口。将案例video目录下的birds_800x480_60_H.264.mp4、birds_800x480_60_H.265.mp4视频文件和bin目录下的可执行程序gst_dec_display拷贝至单板机系统任意目录下,并进入可执行程序所在目录,执行如下命令查看程序参数信息。Target# ./gst_dec_display --help
https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4sf-ABedpAAA1wN33o4g008.png
图 4
参数解析:-l:选择要播放视频的路径。-x:选择H.264或H.265格式解码。-r:选择播放视频时的帧率。-v:版本信息。--help:帮助信息。2.2.1解码H.264格式视频(1)解码800x480@60fps视频执行如下命令,以H.264格式对视频进行解码,并将800x480@60fps的视频在LVDS显示屏上播放。Target# ./gst_dec_display -l birds_800x480_60_H-264.mp4 -x h264 -r 60/1
https://file1.elecfans.com/web3/M00/4F/38/wKgZPGm4sgWAcIsxAAAdAd3kTvA140.png
图 5
LVDS显示屏将会播放birds_800x480_60_H.264.mp4视频文件,如下图所示。
https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4sguAU9ldAAiMnDhNiIQ186.png
图 6
视频播放完后将自动退出。
https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4shKACc21AAUc1sfGG8Q033.png
图 7
2.2.2解码H.265格式视频(1)解码800x480@60fps视频执行如下命令,以H.265格式对视频进行解码,并将800x480@60fps的视频在LVDS显示屏上播放。Target# ./gst_dec_display -l birds_800x480_60_H-265.mp4 -x h265 -r 60/1
https://file1.elecfans.com/web3/M00/4F/38/wKgZPGm4shiAV2CWAAAdJIGqjt4527.png
图 8
LVDS显示屏将会播放birds_800x480_60_H.265.mp4视频文件,如下图所示。
https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4sh-AVa_PABcPwIlEFkU045.png
图 9
视频播放完后将自动退出。
https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4siWAf9t5AAAiSnKTbAE537.png
图 10
2.3案例编译将案例src源码目录拷贝至Ubuntu工作目录下,进入源码目录,查看makefile文件,确保"SDK_PATH"为sysroot解压路径,请根据实际情况修改。如下图所示。
https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4sn-AeWq1AAD-kL1-S_U815.png
图 11
执行如下命令,配置交叉编译工具链环境变量。Host# source /home/tronlong/RK3562/environment
https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4soaASIqCAABJDNqMHTY773.png
图 12
执行如下命令进行案例编译,编译完成将会在相同目录下生成可执行程序。Host# make
https://file1.elecfans.com/web3/M00/4F/38/wKgZPGm4so6ARQ1SAAIq14TcCNI442.png 图 132.4案例解析2.4.1GStreamer管道示意图
https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4spaAHLKxAAAOLTrpS0g295.png
图 14
管道命令示例如下。备注:"filesrc location=test.mp4"请根据实际情况修改视频路径。Appsink: gst-launch-1.0 filesrc location=test.mp4 ! qtdemux ! h264parse ! mppvideodec ! xvimagesink2.4.2关键代码说明(1)初始化Gstreamer,创建Pipeline。
https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4sp2AcuStAAw5LBa3MOI284.png
图 15
(2)初始化Gstreamer元件。
https://file1.elecfans.com/web3/M00/4F/39/wKgZPGm4sqOAVw7CAAZ95Gh94wg018.png
图 16
(3)检查元件初始化情况。
https://file1.elecfans.com/web3/M00/4F/39/wKgZPGm4sqqABKbGAAWMBrXAzcg169.png
图 17
(4)配置各元件参数。
https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4sreAbKF7AAPNk6xBHeQ488.png
图 18
(5)将元件加入并链接到Pipeline中。
https://file1.elecfans.com/web3/M00/4F/39/wKgZPGm4sr6Abz7JAA3sA91T_uw889.png
图 19
(6)更改Pipeline状态为playing,使其开始工作。
https://file1.elecfans.com/web3/M00/4F/39/wKgZPGm4ssWAVmTnAACJIKaZSnk608.png
图 20
(7)停止Pipeline,并释放资源。https://file1.elecfans.com/web3/M00/4F/36/wKgZO2m4ssyAaym_AAA36M-tpNI297.png
图 21
由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注Tronlong创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!

页: [1]
查看完整版本: RK3562 单板机多媒体开发完全手册:视频输入输出与 GStreamer 案例详解(二)

Baidu
map