一步步实现windows版ijkplayer系列文章之一——Windows10平台编译ffmpeg 4.0.2,生成ffplay
一步步实现windows版ijkplayer系列文章之二——Ijkplayer播放器源码分析之音视频输出——视频篇
一步步实现windows版ijkplayer系列文章之三——Ijkplayer播放器源码分析之音视频输出——音频篇
一步步实现windows版ijkplayer系列文章之四——windows下编译ijkplyer版ffmpeg
一步步实现windows版ijkplayer系列文章之五——使用automake一步步生成makefile
一步步实现windows版ijkplayer系列文章之六——SDL2源码分析之OpenGL ES在windows上的渲染过程
一步步实现windows版ijkplayer系列文章之七——终结篇(附源码)html
ijkplayer使用了ffmpeg 3.4 release(接下来将此版本ffmpeg叫作ijkplayer-ffmpeg),ijkplayer fork版本最后一个官方的commit详细信息以下:android
提交: 01e291a592452f27b3a4e811536aaaf94096e244 [01e291a] 父级: 03351cce88 做者: Mark Thompson <sw@jkqxz.net> 日期: 2017年10月15日 GMT+8 下午7:45:15
ijkplayer团队在此基础上作了很多的改动,同时官方的3.4 release也在作更新,最近的一个3.4小版本release是3.4.4,时间在2018年7月18号。把ijkplayer的FFmpeg fork版本拿到windows下面编译一直编译不过,拿官方的3.4最新代码却能编译成功,因此首先须要把两个branch进行一下merge。git
ijkplayer-ffmpeg fork自 官方的ffmpeg,ijkplayer-ffmpeg能够提交pull request到官方ffmpeg,这不是咱们本身能控制的。网上搜索了相关的资料,git如此强大,能够对两个fork的branch进行『移花接木』,现将过程记录以下:github
在本地将ijkplayer-ffmpeg仓库clone下来:windows
https://github.com/Bilibili/FFmpeg.git
跳转到ijkplayer-ffmpeg 根目录:源码分析
cd root_path_of_ijkplayer-ffmpeg
将ijkplayer指定的tag检出。post
git checkout ff3.4--ijk0.8.7--20180103--001 -B ijkplayer
删除本地仓库的origin部分:fetch
git remote rm origin
将官方ffmpeg origin添加到本地ijkplayer-ffmpeg:.net
git remote add origin https://github.com/harlanc/FFmpeg.git
重命名本地branch ijkplayercode
git branch -m ijkplayer-temp
将更新后的远端仓库拉取到本地:
git fetch
将官方ffmpeg的3.4.4版本检出:
git checkout n3.4.4 -B ijkplayer
最后将ijkplayer-temp merge到官方ffmpeg n3.4.4中:
git merge ijkplayer-temp
最终的结果没有冲突,直接将代码commit和push便可。
将merge后的branch拷贝到windows环境中,同前面介绍的编译ffmpeg4.0.2同样进行编译,发现ijkplayer更新的ffmpeg代码存在很多问题,有一些bug,也有的缺失了windows部分的代码,作了一些改动,也有可能有问题,但最后编译经过了(具体能够看个人github)。ijkplayer-ffmpeg的android平台下,最终ffmpeg部分是生成了一个so动态库,libijkffmpeg.so,并且这个库还很小。使用ffmpeg的configure编译出来后是不少的dll和lib,想像ijkplayer同样将须要的.o文件打包成一个动态库,最后没有成功,先继续往前走吧,最关键的部分还没到,朝目标又近了一步,加油。