Skip to content

HectorLiuk/LKLiveTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

运行此程序报错(报缺少IJKMediaFramework.framework的错误),请下载IJKMediaFramework.framework解压IJKMediaFramework.framework.zip后直接拖进工程运行即可。

LKLiveTool

(瞅瞅就行swift版本太老了已经懒得跟新了 2017.10.12 。。。。。。)

此APP使用OCSwift混编,结构使用SB搭建更能直观展现项目结构。其中IJKMediaFrameworkpili-librtmp使用OC桥接swift。通过抓取映客的接口实现直播,推流使用的搭建本地服务器实现推流。没有完全照搬映客APP,主要是为了熟悉Swift下常用三方库的使用。所以此App不是高仿只是Demo但是基本直播功能均已实现。

最近公司活较少经常跟新后期也会不定时添加新功能。

在写之前参考了很多前辈的代码以及对调研直播技术,对想写直播同学们提个建议一定要对整体有一个大概流程了解。本人在不断挖坑填坑中(下方有关直播资料链接地址)。

技术点介绍:

直播可以分为:采集,处理(美颜...),编码,传输, 服务器处理,解码渲染

  • 采集: iOS系统因为软硬件适配性比较好, 只要能熟练运用三方库就好。
  • 处理: 美颜,模糊效果, 水印...,直接运用GPUImage
  • 编码: 重难点在于要在分辨率,帧率,码率,GOP等参数设计上找到最佳平衡点I,P,B帧和PTS,DTS的关系,GOP相关
  • 传输: 各大厂商都会提供SDK,网易直播云、七牛、腾讯、百度、新浪。使用直播云的就是能快速上线App,功能十分齐全,可以播放器和推流端,集成速度快就是流量费太贵了。
  • 服务器处理: 让推送上来的流适配各个平台各种不同的协议, 比如:RTMP,HLS,FLV...
  • 解码渲染: 从服务器获取数据播放,这里就会遇到软硬解码问题区别,还有音画同步。

两大模块

1. 播放端

  • 播放器采用ijkplayer,是基于FFmpeg的跨平台播放器针对RTMP优化,开源项目已经被多个App使用,其中映客、美拍和斗鱼使用了。这是已经打包好的直接导入就好IJKMediaFramework.framework

  • 接口采用映客的只支持刷新(最置顶5条),没有抓到加载接口。。。。。。

  • 礼物已经有许多造好的轮子直接拿过来用就好,还有一些模仿着写。 弹幕

  • 关于ijkplayer方法使用在Demo中已经有详细注释。


2. 采集端

请下载Demo自己去尝试

链接