zoukankan      html  css  js  c++  java
  • 【项目一 · 直播】 ☞ 3. 推流直播

    一、推流

    1. 概念

      推流,就是将采集到的音频,视频数据通过流媒体协议发送到流媒体服务器。

    2. 推流过程

    • 推流前的工作:采集,处理,编码压缩

        

    • 推流中做的工作: 封装,上传

        

    3. 推流框架介绍

    • LFLiveKit (推荐):由Adobe公司开发。框架已经实现了 后台录制、美颜功能,支持H264(视频编码)、AAC(音频编码)编码,支持RTMP传输协议,动态改变速率,弱网丢帧(网络慢的情况下,为了保证视频通畅,通常采用丢帧处理)等。
    • LFLiveKit库里已经集成GPUImage框架用于美颜功能,GPUImage基于OpenGl开发,纯OC语言框架,封装好了各种滤镜同时也可以编写自定义的滤镜,其本身内置了多达125种常见的滤镜效果。
    • LiveVideoCoreSDK : 实现了美颜直播和滤镜功能,我们只要填写RTMP服务地址,直接就可以进行推流啦。
    • PLCameraStreamingKit: 也是一个不错的 RTMP 直播推流 SDK。

      

    PS: 另外其实好多第三方的集成也很好用,可参考

    二、LFLiveKit框架的使用

     1 // 直播会话
     2 - (LFLiveSession*)session {
     3     if (!_session) {
     4         _session = [[LFLiveSession alloc] initWithAudioConfiguration:[LFLiveAudioConfiguration defaultConfiguration] videoConfiguration:[LFLiveVideoConfiguration defaultConfiguration]];
     5         _session.preView = self;
     6         _session.delegate = self;
     7     }
     8     return _session;
     9 }
    10 // 开始直播
    11 - (void)startLive {    
    12     LFLiveStreamInfo *streamInfo = [LFLiveStreamInfo new];
    13     streamInfo.url = @"your server rtmp url";
    14     [self.session startLive:streamInfo];
    15 }
    16 // 结束直播
    17 - (void)stopLive {
    18     [self.session stopLive];
    19 }
    20 
    21 //MARK: - CallBack:
    22 - (void)liveSession:(nullable LFLiveSession *)session liveStateDidChange: (LFLiveState)state;
    23 - (void)liveSession:(nullable LFLiveSession *)session debugInfo:(nullable LFLiveDebug*)debugInfo;
    24 - (void)liveSession:(nullable LFLiveSession*)session errorCode:(LFLiveSocketErrorCode)errorCode;

      

  • 相关阅读:
    P5737 【深基7.例3】闰年展示
    P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here
    P1597 语句解析
    P5735 【深基7.例1】距离函数
    P1553 数字反转(升级版)
    P1598 垂直柱状图
    P1603 斯诺登的密码
    P5738 【深基7.例4】歌唱比赛
    Ext.GridPanel 用法总结(一)—— Grid基本用法
    使用CodeSmith快速规范开发.Net软件
  • 原文地址:https://www.cnblogs.com/bossren/p/6658807.html
Copyright © 2011-2022 走看看