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

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

 

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

 

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

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: android ijkplayer是一款开源的Android视频播放器库。它是基于FFmpeg库的封装,提供了一套简单易用的API,使开发者可以方便地在Android平台上实现音视频播放的功能。 在Android平台上,原生的MediaPlayer虽然功能较为基础,但如果要实现一些高级的音视频播放功能,需要编写复杂的代码。而ijkplayer通过封装了FFmpeg库,可以直接支持各种视频格式,同时提供了丰富的播放控制接口和音视频处理功能,轻松满足开发者的需求。 使用ijkplayer,开发者可以实现视频播放器的功能,包括播放、暂停、停止、快进、快退等控制操作,同时还可以实现视频缓冲、音频解码、视频解码等功能。此外,ijkplayer还支持网络流媒体的播放,可以通过URL进行视频播放,并支持自定义视频渲染器,实现自定义的播放界面。 ijkplayer在开源社区中也非常活跃,拥有庞大的开发者群体和丰富的文档资源。开发者可以通过阅读官方文档、查看源码和参与社区讨论,解决使用过程中遇到的问题。 总之,android ijkplayer是一款功能丰富、易用性高的Android视频播放器库,开发者可以借助它实现各种音视频播放功能,提升用户体验,满足不同场景的需求。 ### 回答2: Android IJKPlayer是一个基于FFmpeg开源项目的跨平台音视频播放器。它是由Bilibili开发的,旨在提供更稳定、高效的音视频播放体验。 IJKPlayer具有以下几个特点: 1. 多格式支持:IJKPlayer可以播放多种音视频格式,包括但不限于mkv、flv、mp4、avi等常见格式,且兼容性较好。 2. 跨平台支持:IJKPlayer不仅可以在安卓平台上使用,还支持在其他主流平台上运行,如iOS、Windows等,给开发者提供了更多的使用选择。 3. 硬解支持:IJKPlayer支持硬解码,可以利用设备的硬件能力来加速音视频的解码和播放,提升播放效率和性能。 4. 自定义能力:IJKPlayer可以根据用户需求进行自定义设置,比如调整播放器的画面尺寸、显示字幕、切换音轨等等,给用户更好的播放体验。 5. 延迟控制:IJKPlayer提供了低延迟播放功能,特别适用于直播等实时性要求较高的场景。 6. 网络支持:IJKPlayer能够通过网络进行音视频的传输和播放,支持直播流媒体协议,如RTSP、RTMP等,方便开发者进行网络音视频应用开发。 总之,Android IJKPlayer是一个强大而且易于使用的音视频播放器,具备良好的兼容性、高效的解码能力和丰富的自定义能力,可以满足开发者对于音视频播放的各种需求,为用户提供更好的播放体验。 ### 回答3: Android IjkPlayer是一款开源的、跨平台的视频播放器框架。它基于FFmpeg和OpenSL ES技术,能够解码和播放各种音视频格式。IjkPlayer具有以下几个优点: 首先,IjkPlayer具有较好的兼容性。它支持常见的视频格式,如MP4、AVI、FLV等,同时也支持常见的音频格式,如MP3、AAC等。这使得开发者可以在Android平台上播放各种类型的音视频,无需关心格式的兼容性问题。 其次,IjkPlayer具有较好的性能。它采用了硬解码和软解码相结合的方式,可以根据设备的硬件能力灵活选择解码方式,以提供更好的播放性能。同时,IjkPlayer还支持视频缓存和断点续播功能,可以在网络环境不稳定的情况下提供更好的用户体验。 另外,IjkPlayer还具有丰富的功能扩展性。它提供了丰富的API接口,开发者可以根据自己的需求进行二次开发。例如,可以通过扩展支持更多的视频格式,或者添加自定义的播放控制功能。 总的来说,Android IjkPlayer是一款功能强大、性能出色的视频播放器框架。它为开发者提供了丰富的功能和灵活的扩展性,能够满足各种类型的音视频播放需求。无论是开发在线直播应用、本地视频播放功能还是自定义的音视频播放需求,都可以通过Android IjkPlayer来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值