知识性的内容
比较详细的说了说推流的过程 : https://www.jianshu.com/p/447df915984e
推流拉流的:https://www.jianshu.com/p/e516a5b31480
对比 hls 和 rtmp的:http://www.samirchen.com/ios-rtmp-vs-hls/
直播原理:https://www.jianshu.com/p/bd42bacbe4cc
直播中关键词讲解 : https://www.cnblogs.com/junhuawang/p/7457786.html
相信大家在调试播放器的时候,都有这样的困惑,很难找到合适的公有测试源。
其中,rtmp和rtsp的url,用https://github.com/daniulive/SmarterStreaming 提供的播放器验证通过。
hls的地址,用vlc验证通过。
1. RTMP协议直播源
香港卫视:rtmp://live.hkstv.hk.lxdns.com/live/hks // 亲测有效
2. RTSP协议直播源
大熊兔(VOD):rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov // 好像不行
国外电视台:rtsp://rtsp-v3-spbtv.msk.spbtv.com/spbtv_v3_1/214_110.sdp // 好像不行
3. HTTP协议直播源
香港卫视:http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8 // 亲测有效
Mac搭建服务器,看前一篇文章《Mac 搭建nginx+rtmp服务器》
1.推流
(1)LiveVideoCoreSDK
https://github.com/runner365/LiveVideoCoreSDK
http://www.cocoachina.com/ios/20170828/20393.html 这个使用了LFLiveKit,亲测简单有效.
2.拉流
PLPlayerKit , 导入时如果要支持模拟器,最好分次导入,包特别大,先导入只支持真机,在导入支持模拟器+真机的版本. 亲测播放有效.
https://github.com/pili-engineering/PLPlayerKit
该库使用pods导入,如果不用pods导入,下面地址说明:
http://blog.csdn.net/kivenhehaoyu/article/details/51181629
原文: https://blog.csdn.net/qq_30513483/article/details/53462180
二、拉流第二个框架
上面只是实现了推流,拉流的话相当于是用了现成的播放器来实现的,现在记录一下用框架来实现。
直播的框架有很多,这里用的是B站开源的ijkplayer
,下载地址https://github.com/Bilibili/ijkplayer (前面都很顺利,到下面编译工程的时候,报缺少头文件,暂未找到原因,推荐直接下载后面的demo)
关于如何集成看此文iOS中集成ijkplayer视频直播框架,按照流程来基本上是可以成功的.
这里如此麻烦的集成是为了制作IJKMediaFramework.framework
,我的demo里已经做好了,实在不想动手的可以直接去我项目里把这个拖到你自己的工程里使用。
这里我是自己推流,然后同时用VLC和我自己demo运行的结果。
VLC&demo
这里因为文件过大传不到Github上面( 限制100M),想看demo的可以去这里看,地址换一下就能用了Demo地址
如果想自己推流就用下面这个地址,如果只想看拉流效果用上面这个地址.
-
//直播视频
-
//self.url = [NSURL URLWithString:@"http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8"];
-
self.url = [NSURL URLWithString:@"rtmp://localhost:1935/rtmplive/room"];
结语
感谢前辈们无私的分享,参考文献
- 快速集成iOS基于RTMP的视频推流
- Mac搭建nginx+rtmp服务器
- iOS中集成ijkplayer视频直播框架