流媒體服務器搭建


環境:樹莓派做流媒體服務器,攝像頭是RTSP協議的,ffmpeg做推流工具

nginx-rtmp-module
官方github地址:https://github.com/arut/nginx-rtmp-module
可以直接下載zip包,下載地址:https://codeload.github.com/arut/nginx-rtmp-module/zip/master

安裝nginx
官方網站: http://nginx.org/en/download.html
下載地址http://nginx.org/download/nginx-1.12.2.tar.gz ;

將nginx-rtmp-module解壓,將nginx解壓。都在同一個目錄下。
為了方面,可以將解壓后的文件名改名。分別改名為nginx-rtmp-modul和nginx

cd nginx

./configure --prefix=/usr/local/nginx  --add-module=../nginx-rtmp-module  --with-http_ssl_module    
make && make install

 注意:
樹莓派安裝的是Raspbian系統,需要用root賬號進行安裝

./configure --prefix=/你的安裝目錄  --add-module=/第三方模塊目錄,目前我安裝到了/usr/local/nginx目錄
如果編譯安裝失敗,還可能需要安裝以下模塊
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev pcre-devel openssl openssl-devel   

修改nginx配置文件
vi /usr/local/nginx/conf/nginx.conf  
在文件的最后追加如下內容
rtmp {    

    
    server {        
        listen 1935;  #監聽的端口      
        chunk_size 4000;    
             
        application hls {  #rtmp推流請求路徑  
            live on;#開啟實時  
            hls on;#開啟hls    
            hls_path /usr/local/nginx/html/hls;#rtmp推流請求路徑,文件存放路徑 
            hls_fragment 5s;#每個TS文件包含5秒的視頻內容    
        }    
    }    


注意:
還有就是這個路徑,看你自己的實際情況的訪問根目錄來,我的是/usr/local/nginx/html/這個路徑,
然而/usr/local/nginx/html/hls肯定沒有這個目錄,所以需要建一個放流文件的目錄hls,並且需要改權限可讀可寫的權限

啟動nginx
 /usr/local/nginx/sbin/nginx

推流設置
由於攝像頭是rtsp協議的,需要轉換並推送到rtmp的地址
轉換並推送的格式如下
ffmpeg -i rtsp://<你的rtsp流的地址> -vcodec copy -acodec copy -f flv rtmp://<你的服務器接收地址這里我們用localhost/live/livestream>
以下是我實際測試的示例
ffmpeg -i rtsp://rtsp://192.168.1.10:554/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp?real_stream -vcodec copy -acodec copy -f flv rtmp://192.168.0.15:1935/hls/demo

注意
攝像頭是雄邁的,支持onvif協議的,rtsp的地址,可以通過onvif工具ONVIF Device Test Tool查看獲得。
默認的webservice地址是192.168.1.10

拉流
可以通過RTMP或者HTTP進行視頻播放。

RTMP拉流
拉流地址:rtmp://192.168.0.15:1935/hls/demo
我使用VLC進行拉流測試的,這個貌似大約應該是可以在PC端的瀏覽器上播放(沒以測試)

HLS拉流
拉流地址: http://192.168.0.15/hls/demo.m3u8
我使用VLC進行拉流測試的,這個貌似大約應該是可以在移動端的瀏覽器上播放(沒以測試)

注意
移動端通過html5的video標簽可以查看直播(沒有測試)
video(controls)

最后放上測試截圖
圖片

 
問題
不知道是我網絡不好還是咋回事,ffmpeg拉流並推流的過程中,會有丟包現象,只不過有時候丟的多,有時候丟的少。 
后續遇到其他問題,再次補充

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM