一步步实现windows版ijkplayer系列文章之四——windows下编译ijkplyer版ffmpeg

简介:

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,ijkplayer-ffmpeg可以提交pull request到官方ffmpeg,这不是我们自己能控制的。网上搜索了相关的资料,git如此强大,可以对两个fork的branch进行『移花接木』,现将过程记录如下:

  1. github上将官方ffmpeg fork一份到自己的账户。
  2. 在本地将ijkplayer-ffmpeg仓库clone下来:

    https://github.com/Bilibili/FFmpeg.git

  3. 跳转到ijkplayer-ffmpeg 根目录:

    cd root_path_of_ijkplayer-ffmpeg

  4. 将ijkplayer指定的tag检出。

    git checkout ff3.4--ijk0.8.7--20180103--001 -B ijkplayer

  5. 删除本地仓库的origin部分:

    git remote rm origin

  6. 将官方ffmpeg origin添加到本地ijkplayer-ffmpeg:

    git remote add origin https://github.com/harlanc/FFmpeg.git

  7. 重命名本地branch ijkplayer

    git branch -m ijkplayer-temp

  8. 将更新后的远端仓库拉取到本地:

    git fetch

  9. 将官方ffmpeg的3.4.4版本检出:

    git checkout n3.4.4 -B ijkplayer

  10. 最后将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部分的代码,做了一些改动,也有可能有问题,但最后编译通过了(具体可以看我的github)。ijkplayer-ffmpeg的android平台下,最终ffmpeg部分是生成了一个so动态库,libijkffmpeg.so,而且这个库还很小。使用ffmpeg的configure编译出来后是很多的dll和lib,想像ijkplayer一样将需要的.o文件打包成一个动态库,最后没有成功,先继续往前走吧,最关键的部分还没到,朝目标又近了一步,加油。

参考

Combining two git repositories

目录
相关文章
|
3月前
|
关系型数据库 MySQL 开发工具
windows编译poco c++库
windows编译poco c++库
|
1月前
|
Unix 编译器 开发者
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
|
3月前
|
Linux 编译器 数据安全/隐私保护
Windows10 使用MSYS2和VS2019编译FFmpeg源代码-测试通过
FFmpeg作为一个流媒体的整体解决方案,在很多项目中都使用了它,如果我们也需要使用FFmpeg进行开发,很多时候我们需要将源码编译成动态库或者静态库,然后将库放入到我们的项目中,这样我们就能在我们的项目中使用FFmpeg提供的接口进行开发。关于FFmpeg的介绍这里就不过多说明。
72 0
|
15天前
|
开发工具
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(二)
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(二)
12 0
|
1月前
|
前端开发 Unix 开发工具
windows使用cygwin编译Xyce
windows使用cygwin编译Xyce
19 0
|
3月前
|
开发工具 git C++
libevent-windows VS2019-cmake 编译笔记
本文主要本文主要记录个人在使用window10使用cmake编译libevent遇到了一点小问题,这里就简单的记录一下,给cmake编译项目不熟悉的朋友一点帮助记录个人在使用window10使用cmake编译libevent遇到了一点小问题,这里就简单的记录一下,给cmake编译项目不熟悉的朋友一点帮助
35 0
|
3月前
|
Linux TensorFlow 算法框架/工具
windows编译TensorFlowServing
windows编译TensorFlowServing
|
3月前
|
编解码 Ubuntu C++
WebAssembly01--web 编译FFmpeg(WebAssembly版)库
WebAssembly01--web 编译FFmpeg(WebAssembly版)库
20 0
|
3月前
|
Windows
windows 下编译openssl libssh2
windows 下编译openssl libssh2
37 0
|
3月前
|
Linux Windows Perl
windows下编译openssl
windows下编译openssl
39 0