一步步实现 Windows 版 ijkplayer 系列文章之一 --Windows10 平台编译 FFMPEG 4.0.2, 生成 ffplay
一步步实现 Windows 版 ijkplayer 系列文章之二 --Ijkplayer 播放器源码分析之音视频输出 -- 视频篇
一步步实现 Windows 版 ijkplayer 系列文章之三 --Ijkplayer 播放器源码分析之音视频输出 -- 音频篇
Windows 下编译 ijkplyer 版 FFMPEG
ijkplayer 版本 FFMPEG 源码说明
ijkplayer 使用了 FFMPEG 3.4 release(接下来将此版本 FFMPEG 叫做 ijkplayer-FFMPEG),ijkplayer fork 版本最后一个官方的 commit 详细信息如下:
提交:
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.
merge Ijkplayer-FFMPEG 到 ffmpeg3.4.4
ijkplayer-FFMPEG fork 自 官方的 FFMPEG https://github.com/FFmpeg/FFmpeg ,ijkplayer-FFMPEG 可以提交 pull request 到官方 FFMPEG, 这不是我们自己能控制的. 网上搜索了相关的资料, Git 如此强大, 可以对两个 fork 的 branch 进行『移花接木』, 现将过程记录如下:
GitHub 上将官方 FFMPEG fork 一份到自己的账户.
在本地将 ijkplayer-FFMPEG 仓库 clone 下来:
https://github.com/Bilibili/FFmpeg.git
跳转到 ijkplayer-FFMPEG 根目录:
cd root_path_of_ijkplayer-FFMPEG
将 ijkplayer 指定的 tag 检出.
Git checkout ff3.4--ijk0.8.7--20180103--001 -B ijkplayer
删除本地仓库的 origin 部分:
Git remote rm origin
将官方 FFMPEG origin 添加到本地 ijkplayer-FFMPEG:
Git remote add origin https://github.com/harlanc/FFmpeg.git
重命名本地 branch ijkplayer
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 即可.
在 WinGW 中编译 ijkplayer-FFMPEG
将 merge 后的 branch 拷贝到 Windows 环境中, 同前面介绍的编译 ffmpeg4.0.2 一样进行编译, 发现 ijkplayer 更新的 FFMPEG 代码存在不少问题, 有一些 bug, 也有的缺失了 Windows 部分的代码, 做了一些改动, 也有可能有问题, 但最后编译通过了 (具体可以看我的 https://github.com/harlanc/FFmpeg/tree/ijkplayer ).ijkplayer-FFMPEG 的 Android 平台下, 最终 FFMPEG 部分是生成了一个 so 动态库, libijkffmpeg.so, 而且这个库还很小. 使用 FFMPEG 的 configure 编译出来后是很多的 dll 和 lib, 想像 ijkplayer 一样将需要的. o 文件打包成一个动态库, 最后没有成功, 先继续往前走吧, 最关键的部分还没到, 朝目标又近了一步, 加油.
参考
Combining two Git repositories
来源: https://www.cnblogs.com/harlanc/p/9794811.html