对于树莓派专用摄像头,由于可以直接使用工具raspivid方便地对视频流进行获取,并支持多种输入输出格式,所以可以方便地实现摄像头实时rtsp流。

    参考文章: 树莓派摄像头视频直播技术汇总

    对于有效实现的方法总结如下

    环境:树莓派3B+RaspiCam(排线连接)

    1.raspivid获取+vlc实现rtsp服务器

    实现rtsp流:

    树莓派端:

    1. raspivid -o - -t 0 |cvlc -v stream:

    解释如下: raspivid 采集视频流后 -o 写入到输出,当为 - 时表示输出到标准输出(stdout).再通过管道命令,cvlc从标准输入得到数据,并启动rtsp服务。

    播放端:

    使用vlc ,quickplay 等打开rtsp流:rtsp://IP_of_Raspi:8554/

    此工具亦可实现http流传输:

    客户端

    1. raspivid -o - -t 0 |cvlc -v stream:

    播放端: http://IP_of_Raspi:8554/

    测试效果: 差 实现难度:低

    2.rapivid获取+gstream转发+gst-rtsp实现rtsp服务

    树莓派端:

    step1. 安装 gstream 1.0

    1. sudo apt-get update
    2. sudo apt-get install gstreamer1.0

    step2.安装gst-rtsp需要的库文件

    1. sudo apt-get install libgstreamer*
    2. sudo apt-get install gstreamer-tools gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly

    step3.编译安装gst-rtsp

    1. wget http://gstreamer.freedesktop.org/src/gst-rtsp/gst-rtsp-0.10.8.tar.bz2bzip2 -d gst-rtsp-0.10.8.tar.bz2tar -xvf gst-rtsp-0.10.8.tar

    step4.获取视频流并输出到gstreamer

    1. raspivid -t 0 -w 800 -h 600 -fps 25 -g 5 -b 4000000 -vf -n -o - | gst-launch -v fdsrc ! h264parse ! gdppay ! tcpserversink host=127.0.0.1 port=5000

    在另一终端打开gst-rtsp服务,先进入:gst-rtsp-0.10.8/exemples/

    1. ./test-launch "( tcpclientsrc host=127.0.0.1 port=5000 ! gdpdepay ! rtph264pay name=pay0 pt=96 )"

    客户端播放:

    vlc或其他播放器打开 rtsp流: rtsp://IP_of_Raspi:8554/test

    测试效果: 差,会出现图像模糊 实现难度:中 gstreamer安装与gst-rtsp安装可能出现库缺失问题

    3.调用v4l2接口捕获视频+live555实现rtsp服务

    树莓派端:

    step1. 安装live555

    1. 获取live555最新源码
    2. wget http:
    3. 解压编译安装
    4. tar -zxvf live555-latest.tar.gz
    5. cd live
    6. sudo ./genMakefiles linux
    7. sudo make
    8. sudo make install

    step2. 安装库文件

    1. sudo apt-get update
    2. sudo apt-get install libavcodec54
    3. sudo apt-get install libswscale2
    4. sudo apt-get install libx264-142

    step3. 编译执行工具

    下载源码 copy到/opt/vc/src/hello_pi/

    根据/hello_pi/下的README编译安装iclient库

    1. cd live_camera_linux
    2. sudo make
    3. sudo make install
    4. sudo ./zk_v4l2_x264_source

    若出现

    1. [2464] WebcamOndemandMediaSubsession .... calling
    2. using url "rtsp://192.168.1.102:9554/webcam"

    则成功实现

    播放端:
    使用vlc等工具播放rtsp流: rtsp://IP_of_Raspi:9554/webcam

    测试效果:好,延迟与画面都尚可 实现难度: 可能遇到各种包缺失,且难以检查出错位置