在树莓派上搭建视频传输环境

最近参加实验室一个比较大的项目,需要用到实时传输。于是笔者开始学习这方面的知识。在走了很多冤枉路之后笔者终于找到了一套不错的方案,于是选择贴出来和大家一起学习。

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 视频去复用器”
在树莓派上搭建视频传输环境_第1张图片

3.2.Live555流传输

工具->首选项->输入 /编解码器->最下面,由HTTP改为RTP
在树莓派上搭建视频传输环境_第2张图片

3.3.打开视频流

媒体->打开网络串流,按照以下截图配置:
在树莓派上搭建视频传输环境_第3张图片
**说明:**8888端口是本机接收视频流的工作端口,使用UDP模式,并且缓冲设置50ms,经过测试可以保证实时传输,在不同网络环境中还需要反复测试选择合适的帧率、比特率以及缓冲大小。
设置好,点击播放(要保证发送端已经在发送视频流了)。

3.4.PC上的wireshark网络截图

在树莓派上搭建视频传输环境_第4张图片

4.参考资料

[1]https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspivid.md
[2]http://www.dest-unreach.org/socat/
[3]http://www.voidcn.com/blog/bona020/article/p-4986473.html
[4]http://dreamcolor.net/archives/raspicam-documentation.html
[5]http://www.shenyaocn.com/2015/12/%E4%BD%BF%E7%94%A8vlc%E6%92%AD%E6%94%BE%E5%99%A8%E6%9F%A5%E7%9C%8Bip%E6%91%84%E5%83%8F%E5%A4%B4%E7%9A%84h-264%E8%A7%86%E9%A2%91%E6%B5%81/

你可能感兴趣的:(配置环境)