美文网首页
推流部分

推流部分

作者: SuperMan_Wang | 来源:发表于2017-12-19 20:20 被阅读20次

这部分呢主要总结下,如何把移动端的摄像头和麦克风采集到的内容,利用rtmp协议发送到我们之前搭好的服务端。
没有搭建服务端的请看我之前的简书搭建服务端
好的,下面进入正题。

iOS端进行推流的话我用的是 LFLiveKit

很好用,可以直接用CocoaPods 加上

pod 'LFLiveKit'

就可以用了。

在controller里边

#import "LFLiveKit/LFLiveKit.h"

然后,

#define PUT_Strean @"rtmp://192.168.1.109:1935/zbcs/room"//推流URL

接着,

@property (nonatomic, strong) LFLiveSession *session;

@property (nonatomic, strong) UIView *pp;

- (LFLiveSession*)session {
    if (!_session) {
        _session = [[LFLiveSession alloc] initWithAudioConfiguration:[LFLiveAudioConfiguration defaultConfiguration] videoConfiguration:[LFLiveVideoConfiguration defaultConfiguration]];
        _session.preView = self.pp;
        _session.running = YES;
        _session.showDebugInfo = YES;
        _session.captureDevicePosition = AVCaptureDevicePositionBack;
        _session.delegate = self;
    }
    return _session;
}

- (void)startLive {
    LFLiveStreamInfo *streamInfo = [LFLiveStreamInfo new];
    streamInfo.url = [[NSUserDefaults standardUserDefaults] objectForKey:@"putURL"];
    [self.session startLive:streamInfo];
}

- (void)stopLive {
    [self.session stopLive];
}
//LFLiveSessionDelegate部分
//MARK: - CallBack:
- (void)liveSession:(nullable LFLiveSession *)session liveStateDidChange: (LFLiveState)state {
    
    switch (state) {
        case LFLiveReady:   NSLog(@"准备"); break;
        case LFLivePending: NSLog(@"连接中"); break;
        case LFLiveStart:   NSLog(@"已连接"); break;
        case LFLiveStop:
            self.button.selected = NO;
            self.button.backgroundColor = [UIColor blueColor];
            NSLog(@"已断开"); break;
        case LFLiveError:
            self.button.selected = NO;
            self.button.backgroundColor = [UIColor blueColor];
            NSLog(@"出错"); break;
        case LFLiveRefresh: NSLog(@"正在刷新"); break;
            
        default: NSLog(@"连接状态改变。"); break;
    }
}

- (void)liveSession:(nullable LFLiveSession *)session debugInfo:(nullable  LFLiveDebug*)debugInfo {
    
    NSLog(@"debug -- %@", debugInfo);
}

- (void)liveSession:(nullable LFLiveSession*)session errorCode:(LFLiveSocketErrorCode)errorCode {
    
    NSLog(@"连接失败 -- %lu", (unsigned long)errorCode);
    self.button.selected = NO;
    self.button.backgroundColor = [UIColor blueColor];
}

最后,在你需要开始直播的地方调用开始直播的方法。需要停止直播的地方调用停止直播的方法就可以了。

相关文章

  • 推流部分

    这部分呢主要总结下,如何把移动端的摄像头和麦克风采集到的内容,利用rtmp协议发送到我们之前搭好的服务端。没有搭建...

  • Mac搭建nginx+rtmp服务器

    Mac搭建nginx+rtmp服务器 最近在学习直播,找了大部分资料学习,学到推流就尝试搭建一个自己的rtmp推流...

  • 《Android音视频系列-7》直播推流

    这篇文章将介绍在Android平台使用RTMPDump来进行直播推流。 一、推流核心思想 推流,可以推H264裸流...

  • 七牛云3

    直播推流地址: rtmp://推流地址/直播空间名/推流请求返回的 title?key=publishKey 直播...

  • JavaCV 本地视频推流

      导入 JavaCV 依赖,编写推流代码如下:   使用播放器验证推流效果   推流时,主要解决两个问题:直播流...

  • 音视频开发视频和视频帧:ffmpeg的RTMP推流

    推荐视频:RTSP/RTMP推流分析 推流架构分析/推流缓存队列的设计 /FFmpeg函数阻塞问题分析https:...

  • ZLMediaKit独家特性介绍

    1、先播放后推流 痛点:推流成功前不能提前播放 场景介绍:有些及时推流的场景,存在推流和播放同时发生的场景,这种场...

  • 视频流推流

    视频流监控 媒体流服务器 需要CentOS环境 安装SRS SRS(Simple RTMP Server) 是国...

  • iOS直播推流实现-推流

    将最近学习的直播推流技术做个笔记。iOS推流的主要流程如下: 视频音频采集[https://www.jianshu...

  • 视频直播方案分析

    1.RtmpPush开源推流项目 1.1简介:开源免费推流项目;RTMP推流 1.2优缺点 1.2.1优点:开源免...

网友评论

      本文标题:推流部分

      本文链接:https://www.haomeiwen.com/subject/wqbiwxtx.html