美文网首页
拉流部分

拉流部分

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

直播系列的最后一部分,在移动端进行播放。
有需要的请看之前的两部分:

在移动端进行播放,我选择用的是ijkplayer
IJKMediaFramework第三方库的合并集成及使用
这一篇简书写的很详细,可以按照步骤,一步步集成到你的项目中去。

接下来,在controller中

#import <IJKMediaFramework/IJKMediaFramework.h>

然后,

//这是拉流的地址,自己可以在服务端配置
#define INT_Strean @"rtmp://192.168.1.109:1935/live/asd"

再然后

@property (nonatomic, strong) IJKFFMoviePlayerController *player;
@property (nonatomic, strong) UIView *playView;
#pragma mark - 视图即将显示
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    
    //  当试图即将展示的时候开始播放
    [self.player prepareToPlay];

    //注册播放状态改变的通知    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playStatuDidchange:) name:IJKMPMoviePlayerPlaybackStateDidChangeNotification object:self.player];

}

#pragma mark - 视图已经消失
- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    //  关闭播放
    [self.player shutdown];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:IJKMPMoviePlayerPlaybackStateDidChangeNotification object:self.player];
}
- (void)viewDidLoad {
    [super viewDidLoad];
    
    [IJKFFMoviePlayerController setLogReport:YES];
    [IJKFFMoviePlayerController setLogLevel:k_IJK_LOG_DEBUG];
    [IJKFFMoviePlayerController checkIfFFmpegVersionMatch:YES];
    
    _pp = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width * 0.49, [UIScreen mainScreen].bounds.size.height * 0.49)];
    _pp.center = CGPointMake(self.view.center.x*0.5, self.view.center.y);
    [self.view addSubview:_pp];
    
    
    IJKFFOptions *options = [IJKFFOptions optionsByDefault];
    [options setPlayerOptionIntValue:1  forKey:@"videotoolbox"];
    
    // 帧速率(fps) (可以改,确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97)
    [options setPlayerOptionIntValue:29.97 forKey:@"r"];
    // -vol——设置音量大小,256为标准音量。(要设置成两倍音量时则输入512,依此类推
    [options setPlayerOptionIntValue:512 forKey:@"vol"];
    
    NSURL *url = [NSURL URLWithString:[[NSUserDefaults standardUserDefaults] objectForKey:@"intURL"]];
    _player = [[IJKFFMoviePlayerController alloc] initWithContentURL:url withOptions:options];
    UIView *playView = [self.player view];
    UIView *displayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width * 0.49, [UIScreen mainScreen].bounds.size.height * 0.49)];
    displayView.center = CGPointMake(self.view.center.x*1.5, self.view.center.y);
    
    self.playView = displayView;
    self.playView.backgroundColor = [UIColor blackColor];
    [self.view addSubview:self.playView];
    
    playView.frame = self.playView.bounds;
    playView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [self.playView insertSubview:playView atIndex:1];
    [_player setScalingMode:IJKMPMovieScalingModeAspectFit];
    [_player setShouldAutoplay:YES];        //自动播放
    self.view.autoresizesSubviews = YES;    //自动更新自视图大小
    
        [_player play];  //开始播放方法
        
        [_player pause]; //暂停播放方法

相关文章

  • 拉流部分

    直播系列的最后一部分,在移动端进行播放。有需要的请看之前的两部分: 搭建服务端 推流部分 在移动端进行播放,我选择...

  • 拉流

    网络摄像头拉流 1.接收视频数据 1.1结构体 1.1.1编码基本单位NALU AVRational这个结构标识一...

  • windows下ffmpeg结合Nginx搭建RTMP,直播中的

    windows下ffmpeg结合Nginx搭建RTMP,直播中的推流和拉流 推流和拉流的概念 以及RTMP协议 在...

  • 推流部分

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

  • 一步步认识视频直播

    什么是推流,拉流 推流:把视频,音频数据采集好传输到服务器的过程拉流:从服务器把视频,音频数据拉取下来进行播放的过...

  • libstreaming支持多端拉流调研

    libstreaming本身并不支持多端拉流需求场景:手机作为Server端推流,电脑端或其他设备作为拉流端网上看...

  • 基于ffmpeg的多路视屏图像合并

    1.推流、拉流解释 1.1推流: 将直播内容推送至服务器的过程,媒体上传至转发服务器中。 1.2 拉流: 为服务器...

  • 视频推流与拉流

    视频推流拉流概念,我认为这个哥们的图挺不错 概念 推流 推流,指的是把采集阶段封包好的内容传输到服务器的过程。 主...

  • 推流拉流相关知识

    拉流 根据协议类型,与服务器建立连接并接收数据 解协议,解析二进制数据,找到流信息将流媒体协议的数据,解析为标准的...

  • ffmpeg推流及拉流

    推流与拉流 ffmpeg的安装 1 推流 ffmpeg -re -i /Users/binny/ffmpeg/ki...

网友评论

      本文标题:拉流部分

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