RTMP作為目前主流的流媒體傳輸協(xié)議,廣泛應(yīng)用于音視頻領(lǐng)域。那么我們?nèi)绾慰焖僭?a href="http://wenjunhu.com/soft/data/21-22/" target="_blank">嵌入式板子上搭建起自己的rtmp流媒體服務(wù)器?本篇文章將帶大家實(shí)踐一下。
?概述
Nginx是一個(gè)以高效穩(wěn)定著稱的高性能的HTTP和反向代理web服務(wù)器,它同時(shí)也是基于事件驅(qū)動(dòng)開發(fā)的異步高性能跨平臺(tái)服務(wù)器。Nginx-RTMP是基于Nginx框架的模塊開發(fā),很好地繼承了Nginx的異步高性能以及擴(kuò)展性好的優(yōu)點(diǎn)。RTMP 是 Real Time Messaging Protocol (實(shí)時(shí)消息傳輸協(xié)議)的首字母縮寫。該協(xié)議基于TCP協(xié)議簇,是 Adobe 公司為 Flash/AIR 平臺(tái)和服務(wù)器之間音、視頻及數(shù)據(jù)傳輸開發(fā)的實(shí)時(shí)消息傳送協(xié)議。在 RTMP 協(xié)議中,視頻必須是 h264 編碼,音頻必須是 AAC 或 MP3編碼,且多以 flv 格式封包。目前 RTMP 是主流的流媒體傳輸協(xié)議。而Nginx-RTMP模塊主要是對(duì)rtmp協(xié)議的實(shí)現(xiàn),廣泛應(yīng)用于音視頻領(lǐng)域。那么以下將通過一個(gè)簡(jiǎn)單的視頻監(jiān)控方案帶大家了解下Nginx-RTMP流媒體服務(wù)器的搭建過程。
?方案實(shí)現(xiàn)
以M3568平臺(tái)為例,在嵌入式Linux系統(tǒng)上搭建Nginx-RTMP流媒體服務(wù)器以及通過ffmpeg/gstreamer實(shí)現(xiàn)簡(jiǎn)單的推拉流過程。實(shí)現(xiàn)框架如圖1所示。
圖1
采集M3568板子上的攝像頭視頻流,使用gstreamer/ffmpeg進(jìn)行RTMP推流到板子上的nginx服務(wù)器(nginx通過rtmp模塊提供rtmp服務(wù)),然后在同個(gè)局域網(wǎng)內(nèi)使用vlc播放器(或其他客戶端)從nginx服務(wù)器獲取該實(shí)時(shí)視頻流。
1.前期準(zhǔn)備
1.1 硬件
- M3568核心板;
- M3568-EV-Board底板;
- usb攝像頭(如果沒有攝像頭可以使用mp4視頻文件代替做測(cè)試)。
1.2 軟件
- PC上安裝vlc播放工具;
- 帶nginx-rtmp-module模塊編譯的nginx安裝包(nginx-install.tar)。
(備注:本篇文章沒有展開講述Nginx + nginx-rtmp-module的交叉編譯過程以及具體步驟,但此部分內(nèi)容已發(fā)布在ZLG開發(fā)者社區(qū)上,可通過鏈接 https://z.zlg.cn/articleinfo?id=853011 進(jìn)行訪問。)2.實(shí)現(xiàn)步驟
2.1 將移植好的nginx安裝包拷貝到板子上,然后解壓到板子的根目錄下。
2.2 修改/etc/nginx/nginx.conf配置文件,添加rtmp配置。如圖2所示。
圖2
2.3 執(zhí)行如下命令啟動(dòng)nginx服務(wù)器。
nginx -c /etc/nginx/nginx.conf
2.4 在板子上執(zhí)行如下推流命令,采集攝像頭的實(shí)時(shí)視頻流推送至板子上的nginx服務(wù)器上。
gst-launch-1.0 v4l2src device=/dev/video5 ! \
video/x-raw,format=YUY2,width=640,height=480,framerate=30/1 ! \
queue ! videoconvert ! mpph264enc ! \
video/x-h264,stream-format=byte-stream ! queue ! \
h264parse ! flvmux ! rtmpsink location=rtmp://192.168.1.136:1935/myapp/test
如果使用mp4視頻文件做推流測(cè)試,可直接執(zhí)行如下推流命令。
ffmpeg-re-i./test.mp4-ccopy-fflvrtmp://192.168.1.136:1935/myapp/test
2.5 此處板子上的IP地址配置為192.168.1.136,此時(shí)將PC電腦接在跟板子同一個(gè)局域網(wǎng)上,然后使用vlc播放器打開網(wǎng)絡(luò)串流rtmp://192.168.1.136:1935/myapp/test即可預(yù)覽視頻流畫面。
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19126瀏覽量
305296 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9165瀏覽量
85436
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論