爱板网论坛

查看: 82|回复: 0

[原创] 【BPI-M2 berry试用心得】直播平台最终版本

[复制链接]

6

主题

0

好友

194

积分

童生

Rank: 2

该用户从未签到

发表于 2017-11-13 21:16:43 |显示全部楼层
本帖最后由 手手挤挤 于 2017-11-13 22:20 编辑

目录
1、直播环境搭建
2、网站环境搭建
3、开机自启动设置

-----------------------------------------------------------------------------------------------------------
前面已经完成了基本直播平台的搭建,实现了obs以rtmp推流到nginx,再用vlc使用rtmp、hls拉流到本地的一个循环,可以看到这个过程是比较麻烦的,特别是笔者是做直播平台开发的,经常要利用直播平台来调试代码,这么复杂的操作,一个循环下来就基本不想写代码了,所以这个主题的目的是让笔者能够一步到位,直接打开整个推流、拉流的过程。
1、直播环境搭建
基本的搭建请参照前面帖子,主要是建立两个直播的发布点,一个用于rtmp拉流、一个用于hls拉流,主要的配置(/usr/local/nginx/conf/nginx.conf)如下
  1. rtmp {   
  2.      
  3.     server {   
  4.      
  5.         listen 1935;
  6.           publish_time_fix on;
  7.         chunk_size 4000;   
  8.            

  9.         application carlpc{
  10.                 live on;
  11.                 allow publish all; # control access privilege
  12.              allow play all; # control access privilege
  13.         }
  14.             
  15.         application carlpc_hls {  
  16.             live on;   
  17.             hls on;   
  18.             hls_path /home/pi/hls;   
  19.             hls_fragment 5s;
  20.             hls_base_url http://192.168.137.66/hls/;  
  21.                 allow publish all;
  22.                 allow play all;
  23.         }   
  24.     }   
  25. }
复制代码
其中,需要注意的是hls的配置上需要标明hls base url,这样生成的m3u8文件才能找到对应的切片文件。
接着,为了通过http协议能访问切片和索引文件,需要在http模块设置关于切片和索引的location
配置如下
  1. location /hls  {
  2.             types{
  3.                 application/vnd.apple.mpegurl m3u8;
  4.                 video/mp2t ts;
  5.             }
  6.             root  /home/pi/;
  7.                 add_header Cache-Control no-cache;
  8.    #         expires -1;
  9.         }
复制代码
其中,需要注意  root与alias两个配置方式的不同,本文采用root的方式进行配置。到这里,直播服务器的搭建结束。
然后,是推流模块的设置,前面帖子写到采用OBS进行推流,笔者尝试编译安装obs,最终记得是因为显卡不支持的原因放弃,最后采用ffmpeg的方式进行推流,ffmpeg的安装可以笔者介绍两种便捷的方式。
第一种,直接使用apt-get install ffmpeg是最方便的;
但是有的linux尚未有ffmpeg的安装包,并且有的平台采用此方式安装的ffmpeg版本老,一些指令支持(比如centos),因此介绍第二种。
第二种,下载别人编译好的文件
  1. https://www.johnvansickle.com/ffmpeg/
复制代码
有了ffmpeg了,接下来是利用ffmpeg进行文件的推流,有个参数是-stream_loop -1 循环推流,这样我就不用管推流了,让他一直推流。
  1. ffmpeg -re -stream_loop -1 -i /home/pi/ffmpeg/test.mp4 -c copy -f flv rtmp://localhost:1935/carlpc
复制代码
至此,服务器、推流模块全部搭建完成。
2、网站环境搭建
拉流最方便的就是打开网页,自动拉取视频流。因此,网站环境的目的在于利用网页访问之前设置的hls索引和切片所在的文件夹。
配置也很简单,主要在于声明网页的location即可,笔者直接将其声明在根目录下,配置如下
  1. location / {
  2. #           root   html;
  3.   #         index  index.html index.htm;
  4.                 root /home/pi/hhh;
  5.                 index index.html index.htm;
  6.         }
复制代码
接下来,编辑index.html网页。这里需要网页播放器的支持,首选当然是videojs啦,所以采用videojs播放器来播放hls流。index。html的配置如下

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset=utf-8 />
  5. <title>Carlpc的直播小站</title>



  6.   <link  rel="stylesheet">
  7.   <script src="https://unpkg.com/video.js/dist/video.js"></script>
  8.   <script src="https://unpkg.com/videojs-contrib-hls/dist/videojs-contrib-hls.js"></script>
  9.   
  10. </head>
  11. <body>
  12.   <h1>直播站--HLS</h1>

  13.   <video id="my_video_1" class="video-js vjs-default-skin" controls preload="auto" width="683" height="384"
  14.   data-setup='{"autoplay": true}'>
  15.     <source src="http://192.168.137.66:80/hls/test.m3u8" type="application/x-mpegURL">
  16.   </video>

  17.   <script>
  18.   </script>
  19.   
  20. </body>
  21. </html>
复制代码
写完后,还没完记得给这个文件夹、父文件夹、以及该文件添加权限,权限掩码777,最后的效果动图如下。
2017-11-13_22-05-04.gif

3、开机自启动设置
人总是越来越懒,做完这些,笔者觉得还不够,因为要用的时候还要开机,打命令好麻烦,所以,那个推流命令,你开机自己启动吧,所以就有了接下来的内容。
第一种,脚本启动,(编辑/etc/rc.local),把前面的推流命令写进脚本保存在1.sh中,并在rc.local文件倒数第行添加以下命令
  1. /usr/local/nginx/sbin/nginx
  2. /home/pi/ffmpeg/rtmp &
  3. /home/pi/ffmpeg/1.sh &
复制代码
我想看启动过程出错的信息咋办,文件头加入以下命令
  1. exec 2> /tmp/rc.local.log      # send stderr from rc.local to a log file
  2. exec 1>&2                      # send stdout to the same log file
  3. set -x                         # tell sh to display commands before execution
复制代码
到这里,笔者用来调试用的直播推流、拉流平台的搭建就完成了。
好吧,全程完全没有代码,全是配置,但也要装得像一点,所以我用了楷体来编辑整篇文章,可依@ky123 ,你说溜不溜

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /2 下一条

手机版|爱板网 |网站地图  

GMT+8, 2017-11-21 08:31 , Processed in 0.266198 second(s), 11 queries , Memcache On.

苏公网安备 32059002001056号

Powered by Discuz!

回顶部