1. 程式人生 > >在樹莓派上搭建視訊傳輸環境

在樹莓派上搭建視訊傳輸環境

最近參加實驗室一個比較大的專案,需要用到實時傳輸。於是筆者開始學習這方面的知識。在走了很多冤枉路之後筆者終於找到了一套不錯的方案,於是選擇貼出來和大家一起學習。

1.使用裝置以及網路連線方式

傳送端:樹莓派B+,192.168.191.3
接收端:W10聯想PC,192.168.191.1
攝像頭:樹莓派專用的PI camera
PC端利用獵豹軟體發射wifi,樹莓派連線WIFI

2.傳送端

傳送端我們利用樹莓派進行視訊的採集和視訊流的傳送工作。

2.1.採集視訊

[1]使用樹莓派自身的raspivid程式,該程式專門針對樹莓派攝像頭,進行視訊錄製以及傳出等操作。我們採集視訊之後,在樹莓派端以H264視訊流格式傳出。

2.2.視訊傳輸

[2, 3]我們使用socat進行流的傳輸。
安裝socat:

    sudo apt-get install socat

之後直接在命令列輸入以下語句即可採集視訊並傳輸:

    raspivid -t 0 -h 720 -w 1080 -fps 25 -hf -b 2000000 -o -| socat - udp-datagram:192.168.191.1:8888
變數 引數 含義
-t 0 raspivid,攝像頭錄製時間,0為一直錄製
-h 720 raspivid,視訊高度
-w 1080 raspivid,視訊寬度
-fps 25 raspivid,幀數,預設25,接收端可改
-hf null raspivid,影象水平翻轉
-b 2000000 raspivid,位元率,2M
-o -| socat - udp-datagram:192.168.191.1:8888 raspivid,輸出
socat
    udp-datagram
socat,利用udp發包
xxx.xxx.xxx.xxx 192.168.191.1 socat,接收端IP
:xxxx :8888 socat,接收端埠號,注意不要衝突

3.接收端

接收端是PC,使用VLC播放器,設定方法:

3.1.設定去複用器

工具->首選項->左下角顯示設定由“簡明”改為“全部”->左側“輸入 / 編解碼器”->去複用器->“去複用模組”改為“H264 視訊去複用器”
此圖片來源於網路

3.2.Live555流傳輸

工具->首選項->輸入 /編解碼器->最下面,由HTTP改為RTP
這裡寫圖片描述

3.3.開啟視訊流

媒體->開啟網路串流,按照以下截圖配置:
這裡寫圖片描述
**說明:**8888埠是本機接收視訊流的工作埠,使用UDP模式,並且緩衝設定50ms,經過測試可以保證實時傳輸,在不同網路環境中還需要反覆測試選擇合適的幀率、位元率以及緩衝大小。
設定好,點選播放(要保證傳送端已經在傳送視訊流了)。

3.4.PC上的wireshark網路截圖

這裡寫圖片描述

4.參考資料