ijkplayer如何使用FFmpeg 4.0内核?


这里写图片描述

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
IJK_FFMPEG_UPSTREAM=https://github.com/Bilibili/FFmpeg.git
IJK_FFMPEG_FORK=https://github.com/Bilibili/FFmpeg.git
IJK_FFMPEG_COMMIT=ff3.4--ijk0.8.7--20180103--001
IJK_FFMPEG_LOCAL_REPO=extra/ffmpeg

set -e
TOOLS=tools

git --version

echo "== pull ffmpeg base =="
sh $TOOLS/pull-repo-base.sh $IJK_FFMPEG_UPSTREAM $IJK_FFMPEG_LOCAL_REPO

function 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中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
IJK_FFMPEG_UPSTREAM=https://github.com/Bilibili/FFmpeg.git
IJK_FFMPEG_FORK=https://github.com/Bilibili/FFmpeg.git
IJK_FFMPEG_COMMIT=ff3.4--ijk0.8.7--20180103--001
IJK_FFMPEG_LOCAL_REPO=extra/ffmpeg

IJK_GASP_UPSTREAM=https://github.com/Bilibili/gas-preprocessor.git

# gas-preprocessor backup
# https://github.com/Bilibili/gas-preprocessor.git

if [ "$IJK_FFMPEG_REPO_URL" != "" ]; then
IJK_FFMPEG_UPSTREAM=$IJK_FFMPEG_REPO_URL
IJK_FFMPEG_FORK=$IJK_FFMPEG_REPO_URL
fi

if [ "$IJK_GASP_REPO_URL" != "" ]; then
IJK_GASP_UPSTREAM=$IJK_GASP_REPO_URL
fi

set -e
TOOLS=tools

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

本文标题:ijkplayer如何使用FFmpeg 4.0内核?

文章作者:

发布时间:2019年03月31日 - 21:03

最后更新:2019年03月31日 - 21:03

原始链接:https://www.stockclaw.asia/2019/03/31/ijkplayer%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8FFmpeg-4-0%E5%86%85%E6%A0%B8%EF%BC%9F/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

 wechat
欢迎您扫一扫上面的微信公众号,第一时间关注我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!