Android流媒体播放器介绍

Android原生流媒体播放

Android原生SDK当中有提供流媒体播放API,ViewoView,播放流媒体也挺简单的,但是它支持的流媒体协议有限,例如先前博客里面提到的RTMP,就是不支持的,关于VideoView播放流媒体可以参考该博客Android使用VideoView播放网络视频

Vitamio播放器

Vitamio能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。它也是基于FFmepg的。它的代码是开放的,但是不开源,商用需要付费。不过研究流媒体播放还是有一定的帮助的。

VLC播放器

VLC是一款自由、开源的跨平台多媒体播放器及框架,很好的支持android,ios,windows,Mac OS X,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。它也是基于FFmepg的。

Android VLC可以自行下载源码编译,编译方法可以借鉴他人的博客,但是最好是参照VLC Android Compile编译,本人在ubuntu14上面编译VLC1.7.5一直报错,所以干脆参照VLC Android Compile,改用ubuntu15.10编译,出现了一个关于用户名的小错误(虚拟机编译造成,修改.sh脚本后通过),其他都很顺利,只是大天朝网络实在无法恭维,因为编译过程中需要下载其他以来库进行混合编译,所以编译前确保自己ubuntu可以翻墙,最简单的方法就是修改hosts,这样至少不会出现访问不了的情况,虽然可能慢一点。

如果嫌编译太麻烦,可以找到对应的apk版本下载下来,改成zip后缀,解压得到里面的lib库,然后下载相应的源码,导入工程,把lib库拷贝进去编译。但是美中不足的就是不能够修改底层C代码,来完成自己的VLC底层定制。

VLC也实现了它的VideoView,播放流媒体视频也和Android原生的SDK提供的VideoView一样方便简单,只是它支持强大的多。

ijkplayer播放器

ijkplayer 是一个开源工程,基于 ffplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供Android平台下应用弹幕集成的解决方案,此方案目前已用于美拍和斗鱼 APP。它也是基于FFmepg的。可见对ffmpeg了解,研究这些播放器起来,能事半功倍。

ijkplayer相对于VLC来说,代码量简单多了,就是基于ffplay的的Android播放器。ffplay研究可以下载该PDF

可以按如下方法编译:

# install homebrew, git, yasm
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git
brew install yasm

# add these lines to your ~/.bash_profile or ~/.profile
# export ANDROID_SDK=<your sdk path>
# export ANDROID_NDK=<your ndk path>

# on Cygwin (unmaintained)
# install git, make, yasm
================================================================
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.4.5.1

./init-android.sh

cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

cd ..
./compile-ijk.sh all

# Android Studio:
#     Open an existing Android Studio project
#     Select android/ijkplayer/ and import
#
#     define ext block in your root build.gradle
#     ext {
#       compileSdkVersion = 23       // depending on your sdk version
#       buildToolsVersion = "23.0.0" // depending on your build tools version
#
#       targetSdkVersion = 23        // depending on your sdk version
#     }
#
# Eclipse: (obselete)
#     File -> New -> Project -> Android Project from Existing Code
#     Select android/ and import all project
#     Import appcompat-v7
#     Import preference-v7
#
# Gradle
#     cd ijkplayer
#     gradle

总结

Vitamio,VLC,Ijkplayer都是很好的Android流媒体播放器,不过VLC和Ijkplayer是开源的,同时能够修改C底层代码,完成自己的播放器定制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值