开源播放器项目 kxmovie(https://github.com/kolyvan/kxmovie),现在仍然是很多刚开始接触播放器开发的程序员的参照范本。以下是我操作kxmovie项目的过程:

(1)在桌面上建立一个目录,名称可以随便取,我的该目录名为 examples

(2)打开Mac终端,执行命令 git clone git://github.com/kolyvan/kxmovie /Users/dev.temobi/Desktop/examples/kxmovie

    git://github.com/kolyvan/kxmovie 是kxmovie项目存放的网络路径

    /Users/dev.temobi/Desktop/examples/kxmovie 是我存放从网络下载得到的kxmovie的本地路径

devtemobideMac-mini:~ dev.temobi$ git clone git://github.com/kolyvan/kxmovie /Users/dev.temobi/Desktop/examples/kxmovie
正克隆到 '/Users/dev.temobi/Desktop/examples/kxmovie'...
remote: Counting objects: , done.
remote: Total (delta ), reused (delta ), pack-reused
接收对象中: % (/), 1.46 MiB | 466.00 KiB/s, done.
处理 delta 中: % (/), done.
检查连接... 完成。

  执行完上面的命令之后,本地examples目录下的kxmovie文件夹中的文件如下:

(3)进入本地examples目录下的kxmovie文件夹路径,执行命令 cd  /Users/dev.temobi/Desktop/examples/kxmovie

(4)执行命令 git submodule update --init

devtemobideMac-mini:~ dev.temobi$ cd  /Users/dev.temobi/Desktop/examples/kxmovie
devtemobideMac-mini:kxmovie dev.temobi$ git submodule update --init
正克隆到 'FFmpeg'...
remote: Counting objects: 421790, done.
remote: Compressing objects: 100% (517/517), done.
remote: Total 421790 (delta 117), reused 0 (delta 0), pack-reused 421273
接收对象中: 100% (421790/421790), 160.59 MiB | 1.65 MiB/s, done.
处理 delta 中: 100% (327924/327924), done.
检查连接... 完成。
子模组路径 'FFmpeg':检出 '1e25afc1811a279094ebc2bc6407715a439e09ee'
正克隆到 'gas-preprocessor'...
remote: Counting objects: 410, done.
remote: Total 410 (delta 0), reused 0 (delta 0), pack-reused 410
接收对象中: 100% (410/410), 155.15 KiB | 0 bytes/s, done.
处理 delta 中: 100% (169/169), done.
检查连接... 完成。
子模组路径 'gas-preprocessor':检出 'cafe6e55a5606c5423c0a0e4045a97f2c3a86338'
devtemobideMac-mini:kxmovie dev.temobi$

执行步骤(3)、(4)之后,FFmpeg源代码被下载到本地,gas-preprocessor.pl脚本也被下载到本地了,在执行(3)、(4)之前,kxmovie文件夹下的FFmpeg、gas-preprocessor文件夹都是空的。

(5)执行命令 rake

devtemobideMac-mini:kxmovie dev.temobi$ rake
Installing the gas-preprocessor to /usr/local/bin
rake aborted!
Permission denied - (gas-preprocessor/gas-preprocessor.pl, /usr/local/bin/gas-preprocessor.pl)
/Users/dev.temobi/Desktop/examples/kxmovie/Rakefile::in `block in <top (required)>'
Tasks: TOP => default => build_ffmpeg => check_gas_preprocessor
(See full trace by running task with --trace)
devtemobideMac-mini:kxmovie dev.temobi$

Mac终端中提示:rake命令被终止执行,Permission denied表示没有权限将gas-preprocessor/gas-preprocessor.pl 复制到  /usr/local/bin/gas-preprocessor.pl

  那只能修改 /usr/local/bin 目录的操作权限,前往/usr/local/bin ,选中bin目录显示简介,修改其访问权限,改为 读与写

(6)继续执行命令 rake

  从上面的运行结果来看,权限问题已经解决,可前往目的文件夹/usr/local/bin/中检查gas-preprocessor.pl是否复制成功

但是出现了新的问题,仔细看了上面的提示信息,发现出现了“-cc=/Applications/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang  --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk
” ,说明Rakefile中使用的是Xcode 的iOS SDK 7.1 的版本,此时要注意“要打开Xcode 检查Xcode中有几个版本的iOS SDK库,一般情况只有一个,除非自己下载了一个低版本的iOS SDK”,我使用的是Xcode 6.3,我仔细检查了只有最新的iOS SDK 8.3,并没有iOS SDK 7.1,那问题可能出在这里了,现在要做的是修改kxmovie目录下的脚本Rakefile,将SDK_VERSION='7.1' 修改为 SDK_VERSION=‘8.3’,注意不要直接打开或用文本编辑器打开,进而来修改脚本Rakefile,否则在执行rake时会报错。应该在Mac终端中用命令来操作,修改脚本Rakefile。

如果是直接打开或用文本编辑器打开,进而来修改脚本Rakefile,在终端执行命令 rake,出现报错如下:

正确的操作是,在终端使用命令 vim ,来编辑脚本Rakefile,将SDK_VERSION='7.1' 修改为 SDK_VERSION=‘8.3’,正确步骤如下:

(1) vim Rakefile,打开文件

(2) 按一下键盘上的字母 i ,进入可修改文件的状态

(3) 按一下Esc 键,然后敲入 :wq  命令,保存退出

(7)继续执行命令 rake

...........................

.......................

................

(8)OK,成功了。FFmpeg文件下出现了新的文件夹 arm64、arm7、arm7s、i386、universal

但是universal文件夹中却是个空文件夹。不要以为又出现问题了,以为需要手动合并 arm64、arm7、arm7s、i386文件夹中的FFmpeg库了,其实要注意观察,kxmovie文件夹中多出来了一个文件夹libs,可以看到文件夹libs下有个FFmpeg文件夹,原来是universal文件夹中被合并的FFmpeg库被移动到了libs文件夹中,至于是怎么移过来的,那肯定是在Rakefile脚本中实现的咯。

(9)打开工程会发现,关于cocoapods的东西都是红色的,这是要做什么呢,因为从kxmovie工程的目录中可以看到其使用cocoapods管理第三方库,所以要知道如何使用cocoapods,这里可参考我写的文章 笔谈 cocoapods的安装与使用

(10)关闭Xcode,进入kxmovie目录,执行 pod install (或者 pod update),获取第三方库资源

(11)双击 kxmovie.xcworkspace ,打开工程,就可以发现第三方库被下载下来了,而且这个第三方库所需要的依赖库也自动添加了,这也是大部分人喜欢用cocoapods管理第三方库的原因所在。

(12)运行KxMovieExample,会提示签名错误,修改签名,换成自己的苹果开发者证书,然后再运行,OK,运行成功

细心的人会在Xcode中仔细看工程结构,会发现好多库显示为红色,其实啊不用管,直接运行KxMovieExample就OK啦。

(13)运行效果图

  点击第一个 BigBuckBunny_175k.mov ,程序可能崩溃,不管啦,那就试试第二个mp4:BigBuckBunny_115k.mov看奔不奔溃,呵呵,程序没有崩溃,mp4:BigBuckBunny_115k.mov的播放效果如下:(注意:(a)双击播放画面,有放大/缩小画面的效果;(b)支持横竖屏,就是可以旋转屏幕;(c)点击右上角的“i”按钮,可以查看流媒体信息)

     

(14)以上就是开源项目kxmovie 的整个使用流程,自己做个笔记,或许也会帮助到其他人吧,呵呵。完整的可直接下载运行的项目kxmovie的下载地址为:http://pan.baidu.com/s/1sj9eSLf

笔谈kxmovie开源播放器库的使用的更多相关文章

  1. 开源播放器 ijkplayer (一) :使用Ijkplayer播放直播视频

    1.ijkplayer 编码 IjkPlayer支持硬解码和软解码. 软解码时不会旋转视频角度这时需要你通过onInfo的what == IMediaPlayer.MEDIA_INFO_VIDEO_R ...

  2. 谈一谈做iOS播放器库开发所涉及的知识点

    在自己研究生毕业的时候,想着能找上一份做视频编解码的工作,可惜没有如愿,最后到了一家iOS游戏渠道公司去做游戏支付业务的SDK开发,我的iOS正式开发生涯就这么开始了. 在那家iOS游戏渠道没做上一年 ...

  3. 搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

    前面几章讲解了使用 nginx-rtmp搭建直播流媒体服务器; ffmpeg推流到nginx-rtmp服务器; java通过命令行调用ffmpeg实现推流服务; 从数据源获取,到使用ffmpeg推流, ...

  4. Linux 下编译Android-VLC开源播放器详解(附源码下载)

    这两天需要做音视频播放相关的东西,所以重新找了目前android下的解码库.Android自带的解码库支持不全,因此很多第三方播放器都是自带解码器,绝大部分都是使用FFMpeg作为解码库.我11年的时 ...

  5. 开源播放器 ijkplayer (二) :ijkplayer倍速变调问题解决方案

    转载注明出处:http://www.cnblogs.com/renhui/p/6510872.html 之前使用IjkPlayer做播放器的使用的时候,在做倍速播放的时候,发现播放的声音音调明显变高了 ...

  6. 开源播放器ijkplayer源码结构

    ijkplayer核心源码主要在ijkmedia文件夹下ijkplayer.ijksdl及ijkutils. 注:tag k0.3.1 player: remove ijkutil android相关 ...

  7. 开源播放器 ijkplayer (四) :Ijkplayer切换网络时停止播放的问题处理

    问题起因: 在进行ijkplayer播放器的测试时,发现ijkplayer播放器在切换网络时出现直播画面停止的问题. 问题分析: 抓取日志发现:tv.danmaku.ijk.media.player. ...

  8. 开源播放器 ijkplayer (六) :Android 下使用 ijkplayer 异常处理思路

    一. java.lang.IllegalStateException: mpjni: setOptionLong: null mp 根据已查到的资料看,目前是ijk内部的问题,只能通过try& ...

  9. 开源播放器 ijkplayer (五) :Linux/Ubuntu 下编译ijkplayer

    一.安装Git与yasm sudo apt-get install git sudo apt-get install yasm 二.下载和配置 SDK.NDK SDK一般开发时肯定都有的,NDK一般是 ...

随机推荐

  1. SpringBoot Error creating bean with name 'dataSource' defined in class path resource。。。

    启动spring boot项目出错 解决方法在Application类上增加:@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration ...

  2. npm和yarn常用调试命令

    yarn查看全局安装路径 yarn global dir npm查看所有全局安装的包<全局路径也会显示> npm list --depth=0 -global

  3. layui 复选框checkbox 实现全选全选

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. pycharm安装、首次使用及汉化

    摘自:https://blog.csdn.net/qq_30463497/article/details/84992480 一.下载pycharm安装包打开PyCharm的官方下载地址:http:// ...

  5. EasyNVR摄像机网页无插件直播方案H5前端构建之:bootstrap弹窗功能的实现方案与代码

    前言介绍 在web前端的网页设计中,为了展示出简洁的网页风格和美观的效果,往往会使用弹窗效果在EasyNVR前端页面录像检索功能时,必然会播放录像,如果单独为播放录像文件排一个界面,用户在使用上会更加 ...

  6. html的rowspan和colspan

    https://www.jb51.net/article/165695.htm rowspan工具 https://blog.csdn.net/oxiaobaio/article/details/80 ...

  7. 【NPDP笔记】第三章 新产品流程

      3.1 产品开发,风险与汇报的过程,开发实践和流程提升成功率 管控新产品失败的风险,随着成本增加,风险降低 知识能改改进决策,降低风险,决策框架 识别问题与机会 收集信息 组织记录,组织员工 外部 ...

  8. leetcode刷题系列(一) 26题 删除排序数组中的重复项

    题干 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示 ...

  9. 解决SQL语句在Dapper执行超时比Query慢的问题

    在语句结尾加上 Add OPTION (RECOMPILE) to the end https://stackoverflow.com/questions/10933366/sp-executesql ...

  10. nginx的rtmp搭建流媒体服务器实现直播流

    最近自己搞了一个用nginx的rtmp来搭建流媒体服务器,从而实现直播的过程,参考了网上很多资料,有些资料对于初学者来说比较难以理解,在此将我搭建的过程记录下来,分享给大家. 1.下载nginx-rt ...