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.shcd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh allcd ..
./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底层代码,完成自己的播放器定制。

Android流媒体播放器介绍相关推荐

  1. VLC Android播放器介绍

    VLC目录结构 在ubuntu下编译vlc完成后,就可以将vlc-android部分导入android studio或者eclipse当中,完成java端的代码定制修改和编译,也可以自己将需要的部分添 ...

  2. 基于Android平台的流媒体播放器的设计

    from: 基于Android平台的流媒体播放器的设计 1引 言 随着移动通信技术和多媒体技术的迅速发展,融合手机.网络.多媒体技术为一体的视频监控技术也有了长足的进步,通过移动通信网络提供流媒体服务 ...

  3. android H264(3): 流媒体播放器设计方案

    如果说一个人的力量有限,那么网络的力量就是无穷的.研究H264的目的就是自己定制一个流媒体播放器,实时播放视频. 好在网上牛人颇多,站在巨人的肩上,压力会小很多. 播放器整体设计方案 一般播放器整体设 ...

  4. android 流播放器开发,GitHub - youcoding98/FastVideo: 基于Android平台的移动流媒体播放器的开发...

    基于Android平台的移动流媒体播放器的开发 主页界面如下 第一部分 课题相关介绍 与普通播放器相比,流媒体播放器最主要的不同点在于其能够实现实时的视频播放,用户可以实现边加载边播放,不需要一次全下 ...

  5. android ffmpeg p2p,Android平台下流媒体播放器的设计与应用

    摘要: 随着流媒体技术.移动通信技术和嵌入式技术的迅速发展,已经客观上改变了人们的生活和工作方式.传统的基于PC的流媒体交互方式已不能满足人们多元化的需求方式;基于IP流媒体技术的嵌入式流媒体智能终端 ...

  6. android 内存播放视频播放器,视频流媒体播放器EasyPlayer-RTSP安卓版在RK3399上运行APP崩溃问题...

    原标题:视频流媒体播放器EasyPlayer-RTSP安卓版在RK3399上运行APP崩溃问题 我们的流媒体服务器现在都已经支持H.265编码视频的播放,流媒体播放器EasyPlayer就是目前比较稳 ...

  7. Android 视频播放器 (二):使用MediaPlayer播放视频

    在 Android 视频播放器 (一):使用VideoView播放视频 我们讲了一下如何使用VideoView播放视频,了解了基本的播放器的一些知识和内容.也知道VideoView内部封装的就是Med ...

  8. ijk基于exo_github上十二款最著名的Android播放器开源项目

    1.ijkplayer 介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Android/iOS 视频播放器.实现了跨平台功能,API 易于集成:编译配置可裁剪,方便控制 ...

  9. github上十二款最著名的Android播放器开源项目

    1.ijkplayer 项目地址: https://github.com/Bilibili/ijkplayer 介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Andr ...

  10. android 音乐视频播放器(github上十二款最著名的Android播放器开源项目)

    1.ijkplayer 项目地址: https://github.com/Bilibili/ijkplayer 介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Andr ...

最新文章

  1. 让炼丹师不再为数据集发愁,这家公司建了一个AI公开数据集平台
  2. python二分法查找
  3. SQLSever 存储过程创建
  4. Boost:python与宏BOOST_TEST_EQ相关的实例
  5. java 批量为图片添加图标水印和文字水印
  6. 【LeetCode刷题记录】LeetCode经典题目数组求和及哈希表的使用!
  7. 【Python】理解Python(1) - Python数据模型,is关键字,类型
  8. Java 8 新特性 Stream类的collect方法
  9. poj 3667 Hotel 线段树 内存分配问题
  10. usb调试助手_米卓同屏助手 | 刷短视频必备,一键打通“任督二脉”,双端
  11. 字符自编车牌号c语言,自编车牌号码大全 2018年自编车牌号技巧
  12. 【问题解决】Linux服务器免密信任 远程执行
  13. 基于FPGA的乒乓ram控制系统设计
  14. 华三服务器虚拟化交换机配置聚合,华三交换机(S5130)初始化配置讲解
  15. VS 点击页面自动定位到解决方案资源管理器目录位置
  16. win7网络里的计算机,win7看不到局域网计算机怎么办
  17. 强力推荐90个优秀外国英文网站
  18. java jxl 写 excel文件_Java使用jxl包写Excel文件适合列宽实现
  19. Win7共享无线 实现iPad 2 WiFi上网
  20. 中国铜行业市场消费量调研及投资潜力预测分析报告2022-2027年

热门文章

  1. 伽罗华有限域的FEC
  2. android 11.0 12.0SystemUI 状态栏下拉快捷添加截图快捷开关
  3. ajax的三种传参方式
  4. python怎么选取第几行第几列_python 第几行第几列python 常见的17个错误分析-python-第二电脑网...
  5. JFlow:真心服务中国IT产业
  6. 机器学习和python学习之路精心整理技术书从入门到进阶
  7. 浅谈setOnClickListener使用方法
  8. 博客营销成功案例分析
  9. 重磅:国家基金委八大学部公布“优先发展领域及主要研究方向”
  10. 25岁女生,转行学前端合适吗?