iOS开发笔记之简单使用IJKMediaFramework实现视频直播

// 导入头文件
#import <IJKMediaFramework/IJKMediaFramework.h>

// 首先定义两个property
@property (strong, nonatomic) IJKFFMoviePlayerController *playerVc;
@property (strong, nonatomic) IJKFFOptions *options;

// 设置一些参数
- (void)loadMediaOptions {
    self.options = [IJKFFOptions optionsByDefault];
    [self.options setFormatOptionIntValue:1000000 forKey:@"analyzeduration"];  // 设置分析时间
    [self.options setPlayerOptionIntValue:0 forKey:@"max_cached_duration"];  // 最大缓存大小
    [self.options setPlayerOptionIntValue:0 forKey:@"packet-buffering"];  // 关闭播放器缓冲
    // 跳帧
    // [self.options setPlayerOptionIntValue:1 forKey:@"framedrop"];
    // 播放前的探测Size
    [self.options setFormatOptionIntValue:1024 forKey:@"probesize"];
    // 软解
    //    [self.options setPlayerOptionIntValue:0 forKey:@"videotoolbox"];
    // 解码参数
    //    [self.options setCodecOptionIntValue:IJK_AVDISCARD_DEFAULT forKey:@"skip_loop_filter"];
    //    [self.options setCodecOptionIntValue:IJK_AVDISCARD_DEFAULT forKey:@"skip_frame"];
}

// 加载直播视频
- (void)loadMediaEngine {
    NSURL *mediaUrl = [NSURL URLWithString:@"rtmp://live.hkstv.hk.lxdns.com/live/hks"];
    
    // 创建IJKFFMoviePlayerController,传入拉流地址
    self.playerVc = [[IJKFFMoviePlayerController alloc] initWithContentURL:mediaUrl withOptions:self.options];
    //    self.playerVc.view.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
    self.playerVc.scalingMode = IJKMPMovieScalingModeFill;
    [self.playerVc prepareToPlay];
    self.playerVc.view.frame = self.view.bounds;
    [self.view addSubview:self.playerVc.view];
}
// 关闭视频
[self.playerVc shutdown];

这样就已经简单实现了视频流的直播。

猜你喜欢

转载自blog.csdn.net/zzyeeaa/article/details/79712814