當(dāng)前位置: 首頁(yè) > 工業(yè)控制產(chǎn)品 > 樓宇自動(dòng)化 > CCTV監(jiān)控系統(tǒng) > CCTV監(jiān)控主機(jī)
發(fā)布日期:2022-04-26 點(diǎn)擊率:83
1). 簡(jiǎn)介
高清多媒體,甚至是 4K 視頻不僅在消費(fèi)領(lǐng)域有著旺盛的需求,在行業(yè)領(lǐng)域同樣也獲得廣泛的關(guān)注。NXP 最新的IMX8 處理器不僅配有強(qiáng)勁的 CPU和GPU,還對(duì)多媒體應(yīng)用提供了完善的解決方案,如硬件解碼支持H.265 HEVC Main Profile 2160p60 Level 5.1。下面我們將介紹如何從Yocto開(kāi)始構(gòu)建包含Gstreamer 的BSP、使用Toradex Easy Installer 安裝系統(tǒng)、配置LVDS顯示和播放多媒體文件。
本文演示所使用的ARM平臺(tái)來(lái)自Toradex基于NXP iMX8QM SoC平臺(tái)的Apalis iMX8QM ARM核心板。
2). Yocto/OpenEmbedded編譯
Toradex Linux BSP 從 V3.0 開(kāi)始發(fā)生了很多的變化,其中最主要的就是采用基于 Poky 構(gòu)建,默認(rèn)的 BSP 只提供最小化的軟件支持, 為此我們撰寫(xiě)了一篇博文做了詳細(xì)的說(shuō)明。用戶(hù)需要自行構(gòu)建合適其項(xiàng)目需求的 BSP,同時(shí)也保持BSP精簡(jiǎn)。首先,可以參考該網(wǎng)頁(yè)搭建基礎(chǔ)的 Yocto/OpenEmbedded 環(huán)境。然后修改 build/conf/local.conf文件,在結(jié)尾添加以下內(nèi)容:
----------------------------------
ACCEPT_FSL_EULA = "1"
IMAGE_INSTALL_append = " packagegroup-fsl-gstreamer1.0 packagegroup-fsl-gstreamer1.0-full imx-gst1.0-plugin"
----------------------------------
保存后使用 MACHINE=apalis-imx8 bitbake console-tdx-image 命令來(lái)生成我們需要的 BSP。根據(jù)網(wǎng)絡(luò)和電腦配置情況,首次編譯需要數(shù)個(gè)小時(shí)之久。編譯完成后在build/deploy/images/apalis-imx8 目錄下會(huì)生成 Apalis-iMX8_Console-Image-Tezi_3.0bX-XXXXXXXX.ta r文件。
3). 更新BSP
Toradex Easy Installer 為用戶(hù)提供在圖形化界面中更新 BSP 的方法。根據(jù)該文檔配置好 PC 和開(kāi)發(fā)板之間的正確連線(xiàn)。然后從這里下載適用于 Apalis iMX8QM 的Toradex Easy Installer 文件。解壓后,待 Apalis iMX8QM 進(jìn)入恢復(fù)模式后執(zhí)行恢復(fù)腳本。
----------------------------------
sudo recovery-linux.sh
----------------------------------
將 Apalis-iMX8_Console-Image-Tezi_3.0bX-XXXXXXXX.tar 解壓后復(fù)制到 U 盤(pán)或者 SD 卡,并插入到底板。在 Toradex Easy Installer 界面中點(diǎn)擊該 BSP 即可完成安裝。最后選擇重啟模塊。
4). LVDS顯示器配置
Apalis iMX8QM上連接 1080p HDMI 顯示器可以直接看到 Linux 系統(tǒng)。在這里我們還將介紹如何配置 LVDS 接口顯示器。目前還不能直接在 U-Boot 中通過(guò) cmdline 的方式進(jìn)行顯示配置,用戶(hù)需要修改 device tree 文件 fsl-imx8qm-apalis.dts,將 lvds1_panel 的 compatible 設(shè)置適合屏幕的配置。LVDS顯示配置是直接編譯在內(nèi)核中,用戶(hù)可以從 drivers/gpu/drm/panel 中選擇現(xiàn)成的配置,否則需要自行添加適合屏幕參數(shù)的配置文件。kyo_tcg121xglp_timing 在引腳和色彩配置都符合我們現(xiàn)有的三菱AA104XD02 顯示器,因此將 lvds1_panel 配置為 kyo,tcg121xglp。然后重新編譯 device tree。
----------------------------------
make dtbs
----------------------------------
用生成的 fsl-imx8qm-apalis.dtb 替換核心板上 /media/mmcblk0p1/ 目錄下的同名文件,重啟生效。
----------------------------------
root@apalis-imx8:~# sync
root@apalis-imx8:~# reoobt
----------------------------------
5). 媒體播放
BSP 中已經(jīng)集成了 Gstreamer 工具和 IMX 插件,用戶(hù)可以直接調(diào)用。顯示分別是播放 H.265/H.264 編碼分辨率為 1080p/2K/4K 的本地文件。
./ 1080p h.264
----------------------------------
gst-launch-1.0 filesrc location=jellyfish-20-mbps-hd-h264.mkv ! video/x-matroska ! aiurdemux !
queue ! h264parse ! v4l2h264dec ! imxvideoconvert_g2d ! queue ! waylandsink
----------------------------------
./ 1080p h.265
----------------------------------
gst-launch-1.0 filesrc location=Elecard_about_Tomsk_part3_HEVC_1080p.mp4 ! video/quicktime !
aiurdemux ! queue ! h265parse ! v4l2h265dec ! imxvideoconvert_g2d ! queue ! waylandsink
----------------------------------
./ 2k h.264
----------------------------------
gst-launch-1.0 filesrc location=Gravity-2K.mp4 ! video/quicktime ! aiurdemux ! queue ! h264parse !
v4l2h264dec ! imxvideoconvert_g2d ! queue ! waylandsink
----------------------------------
./ 4k h.265
----------------------------------
gst-launch-1.0 filesrc location=Elecard_about_Tomsk_part3_HEVC_UHD.mp4 ! video/quicktime ! aiurdemux !
queue ! h265parse ! v4l2h265dec ! imxvideoconvert_g2d ! queue ! waylandsink
----------------------------------
除了本地播放外,RTSP網(wǎng)絡(luò)播放也是常用的功能。RTSP服務(wù)器可以有多種實(shí)現(xiàn)方式,如 VLC 就可以支持流推送。Gst 也提供現(xiàn)成的工具實(shí)現(xiàn) RTSP 服務(wù),如gst-rtsp-server。在下載的時(shí)候最好選用和 iMX8 BSP 中 Gstreamer 一致的版本。下載后執(zhí)行 autogen.sh,然后直接 make編譯即可。在 example 目錄中會(huì)生成一個(gè)名為 test-uri 的可執(zhí)行文件。用下面命令推送視頻流。
----------------------------------
./test-uri file:///opt/jellyfish-20-mbps-hd-h264.mkv
在 PC 的 8554 端口會(huì)開(kāi)啟RTSP服務(wù)。
----------------------------------
rtsp://127.0.0.1:8554/test
----------------------------------
IMX8上運(yùn)行下面命令
----------------------------------
gst-launch-1.0 rtspsrc location=rtsp://ip_of_pc:8554/test name=source1 ! queue ! rtph264depay !
queue ! h264parse ! v4l2h264dec ! imxvideoconvert_g2d ! queue ! waylandsink
----------------------------------
6). 總結(jié)
IMX8QM 可以輕松的實(shí)現(xiàn)對(duì)視頻文件的硬件編解碼,而不占用過(guò)多的 CPU 資源,從而保證用戶(hù)應(yīng)用順暢運(yùn)行。除了視頻播放,我們接下來(lái)還會(huì)介紹 IMX8 更多的應(yīng)用。
下一篇: PLC、DCS、FCS三大控
上一篇: MATLAB和Simulink在航