博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ijkplayer如何使用FFmpeg 4.0内核?
阅读量:6974 次
发布时间:2019-06-27

本文共 1814 字,大约阅读时间需要 6 分钟。

相信不少使用ijkplayer的朋友,都在埋怨,很多issue没有人去解,master上分支已经停留在201801月,这现在一年都快过去了,官方不维护了么?其实,人家一直在维护和更新。只不过ijkplayer是基于FFmpeg作为内核。上层ijkplayer封装的东西,改动性没有那么大,出问题,也都是在底层FFmpeg改。如Demux,Codec等,还有各种协议。

所以,我告诉大家如何用ijkplayer内核最新稳定版本。我们一定对它的工程结构了解,他们是怎么把FFmpeg,libyuv,soundtouch,等第三方库作为contrib的。

IJK_FFMPEG_UPSTREAM=https://github.com/Bilibili/FFmpeg.gitIJK_FFMPEG_FORK=https://github.com/Bilibili/FFmpeg.gitIJK_FFMPEG_COMMIT=ff3.4--ijk0.8.7--20180103--001IJK_FFMPEG_LOCAL_REPO=extra/ffmpegset -eTOOLS=toolsgit --versionecho "== pull ffmpeg base =="sh $TOOLS/pull-repo-base.sh $IJK_FFMPEG_UPSTREAM $IJK_FFMPEG_LOCAL_REPOfunction pull_fork(){    echo "== pull ffmpeg fork $1 =="    sh $TOOLS/pull-repo-ref.sh $IJK_FFMPEG_FORK android/contrib/ffmpeg-$1 ${IJK_FFMPEG_LOCAL_REPO}    cd android/contrib/ffmpeg-$1    git checkout ${IJK_FFMPEG_COMMIT} -B ijkplayer    cd -}复制代码

这里master上依赖的库是ff3.4--ijk0.8.7--20180103--001,是基于FFmpeg3.4的,新版本FFmpeg的都是4.1了,同时修复了很多问题和一些新的Feature。

ijkplayer的维护者,也是一直在勤快的更新。

所以要改动,只需要把IJK_FFMPEG_COMMIT=ff3.4--ijk0.8.7--20180103--001换成JK_FFMPEG_COMMIT=ff4.0--ijk0.8.25--20181123--001就可以,然后再做验证性测试。

对于iOS也是,在init-ios.sh中

IJK_FFMPEG_UPSTREAM=https://github.com/Bilibili/FFmpeg.gitIJK_FFMPEG_FORK=https://github.com/Bilibili/FFmpeg.gitIJK_FFMPEG_COMMIT=ff3.4--ijk0.8.7--20180103--001IJK_FFMPEG_LOCAL_REPO=extra/ffmpegIJK_GASP_UPSTREAM=https://github.com/Bilibili/gas-preprocessor.git# gas-preprocessor backup# https://github.com/Bilibili/gas-preprocessor.gitif [ "$IJK_FFMPEG_REPO_URL" != "" ]; then    IJK_FFMPEG_UPSTREAM=$IJK_FFMPEG_REPO_URL    IJK_FFMPEG_FORK=$IJK_FFMPEG_REPO_URLfiif [ "$IJK_GASP_REPO_URL" != "" ]; then    IJK_GASP_UPSTREAM=$IJK_GASP_REPO_URLfiset -eTOOLS=tools复制代码

也是改法和上面相同。其他第三方库libyuv,soundtouch,修改对应脚本就行。需要注意的是,编译时,如果有一些新旧接口变化,可以用对比工具对比下。升级的好处,可以规避很多问题。大家有兴趣可以试试。

欢迎关注我的微信公众号「何俊林」,接收第一手技术干货

转载地址:http://yfrsl.baihongyu.com/

你可能感兴趣的文章
学习 JavaScript (一)JavaScript 简介
查看>>
linux之路(七)shell命令
查看>>
每周一个 Python 模块 | string
查看>>
ES5数组拓展
查看>>
Android内存优化
查看>>
DECIAML字段字节计算
查看>>
电梯媒体吵架再升级,江南春张继学隔空喊话!
查看>>
项目空隙
查看>>
angular组件版本管理器
查看>>
问题MySQL server has gone away
查看>>
iOS的Cookie存取看我绝对够!!
查看>>
Java工程师如何在1个月内做好面试准备?
查看>>
React Transition Group -- TransitionGroup 组件
查看>>
排序算法 JavaScript
查看>>
PAT A1078
查看>>
少走弯路,给Java 1~5 年程序员的建议
查看>>
event_loop中不同异步操作的执行顺序
查看>>
纯链式golang http请求库, 支持HTTP代理
查看>>
类的扩充 js中面向对象的技术
查看>>
css 3D动画
查看>>