绝对独创---关于直播(推流-拉流-服务器搭建)

1.公司有风声要做直播,赶好这段有时间,自己研究了一下.其实走过的弯路比较多,后来在拉流/推流/服务器搭建都完成之后,思路变得很清晰.

2.首先从服务器搭建说起,关于三种主流的HLS/RTMP/FLV,这里我使用的是RTMP,关于其中的切换,我们需要看一下ngnix的配置文件的相关参数文档.

   我使用的是ngnix+rtmp,也就是本地搭建ngnix服务器,另外在ngnix服务器上添加了rtmp的模块.闭门造车容易猝死,我参考的是简书上的,请移步:http://www.jianshu.com/p/5ee84e403ea8

   参照上边链接中几个注意点:

        1):当你对于linux的命令行熟练运用的时候,homebrew确实好用.

        2):

         

            这一步骤有可能会一直提示失败,但是多尝试几次,就会成功.

        3):

          

            注意自己安装的ngnix版本,进行查看

       4):当你完成了nginx配置rtmp之后,上边链接后续的部分可以忽略.

3.推流,推流我使用的是LFLiveKit开源框架,使用极其简单,并且功能比较完善

    截取最主要的代码:

   

    1):LFLiveSession是核心类,可以重点研究其属性与方法,使用方式简单.

    2):整个的推流过程为:(分析源代码获得)

      建立RTMPConnection(LFStreamRTMPSocket),

      将采集到的视频数据进行H.264编码,音频数据进行ACC编码,

      封包上推到服务器.

      其中编码可以通过ffmpeg或者videocore实现,上推的过程可以通过ffmpeg或者rtmplib实现.(LFLiveKit是通过videocore进行编码,rtmplib进行上推)

4.拉流,拉流我使用的是IJKMediaFramework,使用及其简单,并且功能完善

   截取最主要的代码:

   

   1):IJKFFMoviePlayerController是核心类,使用简单.

5.程序截图

  1.推流端:

  

  2.拉流端:

  

6.感谢

   感谢简书作者 满山李子 的mac上搭建直播服务器nginx这么好的文章

   感谢LFLivePlayer以及IJKMediaFramework的作者,以及对开源社区做出贡献的IT码农.

7.附言

   Demo请email     sunny_1v@163.com

posted @ 2016-08-05 16:34  Sunny孙宁  阅读(8330)  评论(1编辑  收藏  举报