你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
首页
热门
推荐
精选
登录
|
注册
ijkPlayer 集成
立即下载
用AI写一个
金额:
2
元
支付方式:
友情提醒:源码购买后不支持退换货
立即支付
我要免费下载
发布时间:2017-11-16
13人
|
浏览:7052次
|
收藏
|
分享
技术:FFmpeg,iOS
运行环境:xcode,macos
概述
ijkplayer 是一款做视频直播的框架,基于FFmpeg,支持Android和iOS。这里介绍一下iOS中集成ijkplayer
详细
>概述 ijkplayer 是一款做视频直播的框架,基于FFmpeg,支持Android和iOS。这里介绍一下iOS中集成ijkplayer ## 一、FFmpeg FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了领先的音/视频编码库libavcodec等。 **libavformat**:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构 和读取音视频帧等功能; **libavcodec**:用于各种类型声音/图像编解码; **libavutil**:包含一些公共的工具函数; **libswscale**:用于视频场景比例缩放、色彩映射转换; **libpostproc**:用于后期效果处理; **ffmpeg**:该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等; **ffsever**:一个 HTTP 多媒体即时广播串流服务器; **ffplay**:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示; ### 支持的编码 源自FFmpeg项目组的两个视频编码: Snow FFV1 ### 支持的格式 ASF、AVI、BFI[7]、IFF[8]、RL2[9]、FLV、MXF Material eXchange Format, SMPTE 377M Matroska、Maxis XA[10]、MSN Webcam stream[11] MPEG transport stream、TXD[6]、OMA[12] GXF,General eXchange Format, SMPTE 360M mov,mp4,m4a,3gp, ### 支持的协议 HTTP RTP RTSP RealMedia RTSP/RDT TCP UDP Gopher RTMP RTMPT, RTMPE, RTMPTE, RTMPS (via librtmp) SDP MMS over TCP ## 二、下载ijkplayer 下载完成后解压, 解压后文件夹内部目录如下图: ![ijkplayer.png](https://storage2.cuntuku.com/2017/08/31/ijkplayer.png) ## 三、编译 其实这里主要是编译FFmpeg,因为他是一个C语言的跨平台库,需要sh脚本来进行编译 1. 打开终端, cd 到jkplayer-master文件夹中, 也就是下载完解压后的文件夹, 如下图:![1.png](https://storage1.cuntuku.com/2017/08/31/1.png) 2. 执行命令行**./init-ios.sh**, 这一步是去下载 ffmpeg 的, 时间会久一点, 耐心等一下.如下图:![2.png](https://storage2.cuntuku.com/2017/08/31/2.png) 3. cd 到ios目录中 4. 执行**./compile-ffmpeg.sh clean**![3.png](https://storage1.cuntuku.com/2017/08/31/3.png) 4. 执行**./compile-ffmpeg.sh all**进行FFmpeg的编译,时间较久![4.png](https://storage2.cuntuku.com/2017/08/31/4.png) ## 四、打包IJKMediaFramework.framework框架 其实集成ijkplayer有两种方法,一种是按照Demo中的导入IJKMediaPlayer.xcodeproj,此方法不是很推荐 下面主要说另一种把 ijkplayer 打包成framework导入工程中使用. 首先打开工程IJKMediaPlayer.xcodeproj,![IJKMediaPlayer.xcodeproj](/contentImages/image/jianshu/1803339-607cc84c212faf90.png) 选择IJKMediaFramework点击EditScheme![](/contentImages/image/jianshu/1803339-bbc0adc479cebb69.png) 选择release![](/contentImages/image/jianshu/1803339-daa4498f7e0746d0.png) 设置好 scheme 后, 分别选择真机和模拟器进行编译, 编译完成后, 进入 Finder,![](/contentImages/image/jianshu/1803339-344cda905745ff39.png) 下面开始合并真机和模拟器版本的 framework, 注意不要合并错了, 合并的是这个文件, 如下图:![](/contentImages/image/jianshu/1803339-ec00ef4cb15c66d1.png) 打开终端, 进行合并, 命令行具体格式为: lipo -create 真机版本路径 模拟器版本路径 -output 合并后的文件路径 合并后如下图![](/contentImages/image/jianshu/1803339-d025e12bf804ee05.png) 用合并后的IJKMediaFramework把原来的IJKMediaFramework替换掉![](/contentImages/image/jianshu/1803339-8d228ab56eb77f43.png) ## 五、在iOS项目中集成ijkplayer 新建工程, 导入合并后的IJKMediaFramework.framework以及相关依赖框架以及相关依赖框架,如下图: ![5.png](https://storage1.cuntuku.com/2017/08/31/5.png) 导入框架后在ViewController.m中进行buid,如果成功,说明集成成功。然后可以在控制器中写一个Demo测试![Snip20170831_10.png](https://storage1.cuntuku.com/2017/08/31/Snip20170831_10.png) 可以是mp4格式,也可以是m3u8,rtmp,hls等流媒体 ## 六、效果图 ![QQ20171116-1510342x.png](https://storage1.cuntuku.com/2017/11/16/QQ20171116-1510342x.png)
本实例支付的费用只是购买源码的费用,如有疑问欢迎在文末留言交流,如需作者在线代码指导、定制等,在作者开启付费服务后,可以点击“购买服务”进行实时联系,请知悉,谢谢
感谢
0
手机上随时阅读、收藏该文章 ?请扫下方二维码
相似例子推荐
评论
作者
oragekk
9
例子数量
56
帮助
9
感谢
评分详细
可运行:
4.1
分
代码质量:
4.1
分
文章描述详细:
4.1
分
代码注释:
4.1
分
综合:
4.1
分
作者例子
ijkPlayer 集成
iOS 物流信息时间轴
ios图片轮播效果
自定义全屏返回手势
了解机器学习框架CoreML
微信开源组件WCDB漫谈及Demo
类支付宝微信密码输入框
iOS 神经网络模型训练
给flutter初学者的demo全集