瑞芯微RK3576芯片平臺實現多路RTMP視頻推流,基于觸覺智能RK3576開發板Purple Pi OH2演示。
RTMP視頻推流
- RTMP視頻推流簡介
使用RTMP流媒體服務來實現視頻推流,核心優勢是低延遲+穩定推流。
推流端負責將視頻數據通過RTMP流媒體協議傳輸給RTMP流媒體服務器;
拉流端從流媒體服務器中通過RTMP協議獲取到視頻數據;
流媒體服務器負責接收推流端的視頻數據、當有客戶端(拉流端)想要獲取視頻數據時,再將其發給相對應的客戶端。

實現RTMP視頻推流,需要三部分:推流端、流媒體服務器以及拉流端。本次演示使用RK3576作為推流端,使用FFmpeg工具進行推流,流媒體服務器則使用Nginx來搭建,而拉流端使用PC端的VLC播放器來實現。
- 應用場景
觸覺智能RK3576開發板采用核心板+底板設計,支持二次開發底板。其高性能AIoT核心板,憑借其8核CPU+4K編解碼+16M ISP的強大性能,可輕松實現RTMP視頻推流,可應用于以下領域:工業監控&遠程運維、醫療實時會診、安防監控、車載實時監控直播。
- 演示環境
演示設備為觸覺智能RK3576開發板Purple Pi OH2,系統固件為Ubuntu22.04。其配套RK3576核心板,擁有40.5×40.5mm極致小尺寸,郵票孔封裝,支持LPDDR4或LPDDR5高速內存,率先適配開源鴻蒙OpenHarmony5.0國產操作系統,100%全國產,支持最高-40~85℃工業級環境。

Nginx流媒體配置
- 前期準備
需在RK3576開發板搭建Nginx流媒體服務器,同時推流端也是開發板上,需燒錄網盤提供Ubuntu固件,詳細數據可關注觸覺智能公眾號,聯系客服13423856106獲取。
- 安裝Nginx
安裝命令:
sudo apt update
sudo apt install nginx
執行命令驗證Nginx是否安裝成功:
nginx -V

執行以下命令安裝Nginx的rtmp模塊并重啟Nginx服務:
sudo apt-get install libnginx-mod-rtmp
sudo service nginx restart
實打開電腦Windows自帶的瀏覽器,輸入開發板的IP地址按下回車,顯示如下表示Nginx服務器已經正常工作

- 配置Nginx支持RTMP
打開/etc/nginx/nginx.conf配置文件添加以下內容:
rtmp {
server {
listen 1935; #監聽端口
chunk_size 4096; #上傳 flv 文件塊大小
application live {
live on; #開啟 live
hls on; #開啟 hls
hls_path /tmp/hls; #rtmp推流請求路徑,文件存放路徑
hls_fragment 5s; #每個 TS 文件包括 5s 的視頻內容
}
}
}

修改完配置文件后重啟Nginx服務:
sudo service nginx restart
sudo systemctl status nginx.service
#查看Nginx服務是否處于運行狀態
FFmpeg推流
- 推送本地視頻
觸覺智能RK3576配套Ubuntu系統,已安裝FFmpeg工具。
使用 FFmpeg進行推流,需要將視頻流數據通過RTMP推流給Nginx流媒體服務器,再執行命令將本地視頻流通過 RTMP 推給流媒體服務器。
ffmpeg -stream_loop -1 -re -i /home/industio/avatar_h264_5s.mp4 -c copy -f flv -flvflags no_duration_filesize rtmp://192.168.0.74:1935/live/test


FFmpeg成功推流后,可以使用Windows主機作為拉流端,使用 VLC 軟件進行拉流。輸入流媒體服務器的 IP(開發板的IP)以及路徑,點擊<播放>即可從RTMP流媒體服務器拉取視頻數據進行播放,如下所示:


- 推送攝像頭視頻
使用USB攝像頭輸入,視頻節點為/dev/video36,查看USB攝像頭分辨率信息:
v4l2-ctl -d /dev/video36 --list-formats-ext

視頻分辨率為:1024×576
ffmpeg -f v4l2 -video_size 1024x576 -framerate 30 -i /dev/video36 -q 10 -f flv rtmp://192.168.0.74:1935/live/test


說明:
(1) 由于FFmpeg內部對視頻進行了很多處理,譬如對視頻、算法的處理以及網絡傳輸等,導致會耗費相當大的時間, 且作為Demo還有優化的空間,實測畫面會有3秒左右的延時。
(2)由于FFmpeg的v4l2輸入模塊僅支持標準V4L2視頻捕獲設備不兼容MIPI攝像頭,因此無法使用MIPI攝像頭進行推流。
-
芯片
+關注
關注
463文章
54051瀏覽量
466779 -
nginx
+關注
關注
0文章
187瀏覽量
13127 -
ffmpeg
+關注
關注
0文章
51瀏覽量
7962 -
rtmp
+關注
關注
0文章
10瀏覽量
1790 -
rk3576
+關注
關注
1文章
274瀏覽量
1594
發布評論請先 登錄
RK3576 vs RK3588:為何越來越多的開發者轉向RK3576?
Mpp支持RK3576么
12路1080P高清視頻流,米爾RK3576 開發板賦能車載360環視
RK3576助力智慧安防:8路高清采集與AI識別
如何調用mpp硬解+ffmpeg本地播放視頻,RK3576
【作品合集】米爾RK3576開發板測評
【作品合集】靈眸科技EASY EAI Orin Nano(RK3576)開發板測評
12 路低延遲推流!米爾 RK3576 賦能智能安防 360° 環視
360環視硬件平臺為什么推薦使用米爾RK3576開發板?
車載360環視平臺:米爾RK3576開發板支持12路低延遲推流
【昉·星光 2 高性能RISC-V單板計算機體驗】使用nginx、ffmpeg和VLC搭建簡單視頻直播系統
【風火輪YY3568開發板免費體驗】FFMPEG的軟編碼、RTMP直播服務、以及板上直播服務器搭建
【悟空派H3開發板免費體驗】03.在悟空派上搭建RTMP服務器并實現RTSP轉RTMP流
RK3576有多強?實測三屏八攝像頭輕松搞定
瑞芯微RK3576平臺FFmpeg硬件編解碼移植及性能測試實戰攻略 觸覺智能RK3576開發板演示
RK3576輕松搭建RTMP視頻推流,基于FFmpeg+Nginx協同
評論