Android边缓冲边播放视频(ijkplayer的编译和使用)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011133213/article/details/47421413

当你看到这篇博文的时候希望你先对这个开源项目有所了解。


github上的地址: https://github.com/Bilibili/ijkplayer


感谢哔哩哔哩团队不吝开放出来。此文主要用于帮助之后需要编译ijkplayer的同学,少走一点弯路。


转载请注明出处:CSDN 胖虎 http://blog.csdn.net/ljphhj


首先交代一下我这边编译的环境:

Ubuntu 14.04 64位

ANDROID_SDK 和 ANDROID_NDK (特指NDK r10e),这个很重要千万不要弄到ndk_r9d


编译ijkplayer其实并没有网上那么多的问题,之所以有问题 基本都是环境导致的。

接着我们按照github上的来操作。

0. 准备工作

(1)没装 git 的同学,装 git 咯(apt-get install git)

(2)装make 和 yasm (这里我要强调的是yasm 记得它的版本一定要是1.2.0,否则不行)

准备工作做好了,就可以开始了


1. 你需要将github上的代码clone下来, 放在文件夹ijkplayer中

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer_android


2. 做一些初始化动作

cd config
rm module.sh //这个文件删除掉
ln -s module-default.sh module.sh
cd android/contrib
sh compile-ffmpeg.sh clean


sudo dpkg-reconfigure dash , 选择" No "


3.接着运行android编译ijkplayer所需要的初始化脚本(其实就是为了把ffmpeg相关的下载下来【跟视频流相关的】)

到项目主目录ijkplayer_android下,执行 sh ./init-android.sh ,然后只要放着下载了,这边理论上你要所有的都下载好而且没错误,才可以进行下一步,如果中间有错误千万别进行下一步,没有用的。


4.完了之后, cd android/contrib 目录下

执行 sh ./compile-ffmpeg clean

然后再执行 sh ./compile-ffmpeg all  // all表示所有cpu类型的平台都进行编译。也可以写指定的。


【这边期间可能会遇到很多比如什么x86里面有个错误,如下---这个我的分析就是你的yasm的版本不是1.2.0】(yasm --version)

In file included from libavcodec/x86/mpegvideoenc.c:83:0:
libavcodec/x86/mpegvideoenc_template.c: In function 'dct_quantize_ssse3':
libavcodec/x86/mpegvideoenc_template.c:151:9: error: 'asm' operand has impossible constraints
asm volatile(
^
libavcodec/x86/mpegvideoenc_template.c:186:9: error: 'asm' operand has impossible constraints
asm volatile(
^
make: *** [libavcodec/x86/mpegvideoenc.o] Error 1


5.如果第四步你也已经顺利通过,那么剩下的就是执行./compile-ijk.sh这个脚本了,执行完后,在android/ijkplayer目录下就是所有的可以用的demo了,生成的libs会放到demo的libs目录下。


6.ijkplayer全部编译完成之后,你会在android/ijkplayer目录下得到你要的demo,然后根据提供的demo就行你自己的需求修改就行了。


转载请注明出处:CSDN 胖虎 http://blog.csdn.net/ljphhj


简而言之,这些是我编译过程中的一些坑吧,如果有网友还是编译不过,欢迎留言,可以探讨交流一下。也许其他网友看到也可以帮助你。


猜你喜欢

转载自blog.csdn.net/u011133213/article/details/47421413