使用 树莓派 和 Nginx 在RTMP上从网络摄像机直播实时视频

・4 分钟阅读

  • 源代码名称: raspberry_livestream
  • 源代码网址: https://www.github.com/Tomtomgo/raspberry_livestream
  • raspberry_livestream的文档
  • raspberry_livestream的源代码下载
  • Git URL:
    git://www.github.com/Tomtomgo/raspberry_livestream.git
  • Git Clone代码到本地:
    git clone https://www.github.com/Tomtomgo/raspberry_livestream
  • Subversion代码到本地:
    $ svn co --depth empty https://www.github.com/Tomtomgo/raspberry_livestream
                              Checked out revision 1.
                              $ cd repo
                              $ svn up trunk
              
  • 使用 树莓派 和 Nginx 从网络摄像机上实时视频直播视频

    Live stream for foosball in action, much inception!

    如果发现任何问题,请在这里创建问题 !

    硬件

    这是我们使用的硬件。

    • 安装了Raspbian的RaspberryPi B+
    • 8 GB SD卡
    • 罗技C310网络摄像头
    • 2A电源适配器
    • 所有这些东西都正确连接

    安装必要的软件

    这里的一切都应该在 树莓派 ( 与你的计算相反) 上完成,除非另外说明。

    基本

    一些基本的依赖关系:

    sudo apt-get install ffmpeg supervisor

    使用RTMP模块构建 Nginx

    我们将视频流到网络上,我们使用 Nginx 和一个 RTMP MODULE。 这个 MODULE 必须编译到 Nginx 中,所以按这样来做:

    cd/tmp
    wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
    wget http://nginx.org/download/nginx-1.7.9.tar.gz
    tar -zxvf nginx-1.7.9.tar.gz
    unzip master.zipcd nginx-1.7.9
    ./configure --add-module=/tmp/nginx-rtmp-module-master
    make # <- This takes a few minutes on a Raspberry Pisudo make install

    获取文件 !

    你可以 fork 整个 repo,或者克隆到你的计算机:

    git clone https://github.com/Tomtomgo/raspberry_livestream.git

    为你的环境编辑 stream.sh

    用合适的值替换 stream.sh 中的<STREAM_NAME> 和 <RASPBERRY_IP>。

    将文件复制到 树莓派

    从你计算机上的这个文件夹中:

    scp -r./pi@<RASPBERRY_IP>:/home/pi

    复制配置文件

    cd~sudo cp nginx.conf/usr/local/nginx/conf/nginx.conf
    cp stream.supervisor.conf/etc/supervisor/conf.d/stream.supervisor.conf 

    运行系统 !

    这将( re ) 启动 Nginx 和流本身。

    sudo service supervisor stop
    sudo service supervisor start

    验证流

    你可以通过在计算机上打开 VLC 来检查它是否是流:

    
    rtmp://<RASPBERRY_IP/live/<STREAM_NAME> 
    
    
    
    

    显示网页上的流

    我们使用了 HDW播放器来显示rtmp流

    下载它并将 player 文件夹放在某个项目文件夹中。

    然后,你可以执行类似这样的( 替换

    <html>
     <head>
     <scriptsrc="<PROJECT_FOLDER>/player/hdwplayer.js"></script>
     </head>
     <body>
     <divid="player"></div>
     <scripttype="text/javascript">hdwplayer({  id :'player', swf :'<PROJECT_FOLDER>/player/player.swf', width :'640', height :'334', type :'rtmp', streamer :'rtmp://<RASPBERRY_IP/live', video :'<STREAM_NAME>', autoStart :'true', controlBar:'false' });</script>
     </body>
    </html>

    Credits

    Built at Rockstart by Sjoerd Huisman from Congressus and Tom Aizenberg from Achieved.

    讨论
    Fansisi profile image