是否可以在Raspberry Pi上通过RTSP流式传输H.264?


9

我正在尝试通过使用两个Raspberry Pi板来设置视频会议系统。

如何通过以太网连接通过实时流协议流化H.264协议?

我应该在Raspberry Pi板上开发哪种操作系统?


带有rtmp-module的nginx确实不错,但是CRTMPServer也很不错且稳定。两种解决方案都能使我延迟不到1秒。在我的书中部分在博客中展示
Piotr Kula 2014年

linux-projects.org上检查UV4L。它还支持H264硬件编码的视频,实时,完整fps,最小的CPU使用率。
prinxis

Answers:


4

编辑:这不是与RTSP,但可能会帮助您

您可以尝试如何无延迟地从Raspberry Pi流式传输视频和音频

在Raspberry Pi视频服务器上安装gstreamer1.0:

  1. 在/etc/apt/sources.list中,添加“ deb http://vontaene.de/raspbian-updates/。main
  2. sudo apt-get update
  3. sudo apt-get install gstreamer1.0

开始流式传输视频

  1. 在带有命令的Raspberry Pi中:

    raspivid -t 0 -w 1080 -h 720 -fps 25 -hf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=VIDSERVERIP port=5000
    

开始接收视频

  1. 在您的PC上,键入以下命令:

    gst-launch-1.0 -v tcpclientsrc host=VIDSERVERIP port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
    

您还需要在客户端上安装软件才能正常运行。在OS X上:brew install gstreamer gst-libav gst-plugins-ugly gst-plugins-base gst-plugins-bad gst-plugins-good
ThomasW

1
这不使用RTSP。
阿利斯泰尔·布克斯顿

这在技术上有什么用?
卢卡斯Zaroda


1

有一个名为nginx-rtmp的自定义源-确实很好用,但是在起作用之前您需要做很多事情。它很棒,因为它具有内置功能并支持其他流协议,例如HLS或将MPEG-DASH嵌入网站,而不仅仅是RTMP。将视频流重新打包为flv或mp4时非常有效。

这是有关如何使其工作的博客文章

唯一严重的前提条件是ffmpeg需要在最新的fork上的Rasbpian上编译(不要使用存储库,因为它很慢)。我认为在Arch上,它具有正确的ffmpeg。在Pi上需要5个小时。尝试查找已编译的版本,或使用qemo进行交叉编译。

简而言之,使用nginx 1.4.1(如果需要,您可以尝试更新的版本)

 cd /usr/scr  
 #clone the latest version of rtmp module for nginx  
 git clone git://github.com/arut/nginx-rtmp-module.git  
 #download nginx source tested with- 1.4.1  but 1.5.0 is also supported
 wget http://nginx.org/download/nginx-1.4.1.tar.gz  
 tar xzf nginx-1.4.1.tar.gz  
 cd nginx-1.4.1  

您需要获取用于构建和nginx的依赖项(请查看指向博客的链接)。然后在链接到rtmp模块的nginx源内部配置构建。在Pi上构建需要10分钟。

 ./configure --prefix=/var/www \  
             --sbin-path=/usr/sbin/nginx \  
             --conf-path=/etc/nginx/nginx.conf \  
             --pid-path=/var/run/nginx.pid \  
             --error-log-path=/var/log/nginx/error.log \  
             --http-log-path=/var/log/nginx/access.log \  
             --with-http_ssl_module \  
             --without-http_proxy_module \  
             --add-module=/usr/src/nginx-rtmp-module \  

Raspbian的最新版本包括UV4L驱动程序,该驱动程序修复了PSIPS(h264嵌入的时间框架在原始raspivid驱动程序中被破坏了。)因此,这应该可以解决当前分配的流问题。


-1

1
该文章的前两行是如何在命令行中流式传输视频,这是可以的,但并不是很健壮,也不能解释所有管道的运行情况!但是本文的其余部分实际上与OP的问题无关。简短的,基于链接的答案也被拒绝。考虑稍微提高您的答案。编辑答案后,可以将拒绝投票转换为投票。
Piotr Kula 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.