-- Android 多媒体解决方案:Android MediaPlayer;FFmpeg;Google ExoPlayer;Vitamio;VLC。
1.Android MediaPlayer 是 Android 内置的播放器,支持格式很有限:3gp mp4,且不支持流媒体。
2.FFmpeg 是一套功能强大的跨平台多媒体解决方案,需要用NDK编译,支持海量格式、流媒体。
3.Google ExoPlayer 是一个Google在2014年才推出的介于现有MediaPlayer和自定义媒体播放器之间的预建播放器,要求 Android 4.1+,支持多种格式、DASH(Dynamic Adaptive Streaming over HTTP),易于扩展。
4.Vitamio 是国人开发的一个流行的第三方多媒体库,支持 Android、iOS,最新版商业使用需要授权。
5.VLC是另一个功能强大的跨平台多媒体解决方案,支持海量格式、流媒体,集成了FFmpeg的部分功能,官方支持Android平台。
-- Android多媒体框架及解决方案:VLC,ffmpeg,GStreamer,SDL等。
> SDL/VLC等在移植到Android平台
-- VLC
VLC多媒体播放器(最初命名为VideoLAN客户端)是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影音光盘及各类流式协议。它也能作为unicast或 multicast的流式服务器在IPv4或 IPv6的高速网络连接下使用。它融合了FFmpeg计划的解码器与libdvdcss程序库使其有播放多媒体文件及加密DVD影碟的功能。
- VLC在GitHub开源:
https://github.com/djstava/OTTLivePlayer_vlc
http://www.xugaoxiang.com/blog/index.php/archives/57/
https://wiki.videolan.org/AndroidCompile
https://github.com/mymbrooks/VLCAndroidDemo
- 通过gitHub获取vlc-Android源码
git clone https://code.videolan.org/videolan/vlc-android.git
VLC media player- https://github.com/videolan/vlc
Android开发实践:编译VLC-for-android- http://blog.51cto.com/ticktick/1586072
-- SDL
SDL移植到Android平台:https://github.com/dennishucd/SDLActivity
Android平台上使用SDL- https://github.com/righere/ConvexdSDLPlayer.git
SDL库的作用说白了就是封装了复杂的视音频底层操作,简化了视音频处理的难度。SDL用于视频渲染。
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
SDL则是与Xlib库沟通来输出图像。
-- GStreamer
GStreamer是一个基于流水线的多媒体框架,其内部基于GObject,以C语言写成。GStreamer采用基于plugin和pipeline的体系机构,框架中所有的功能模块都是可插拔的plugins,可以很方便地安装到任意pipeline上。
android上的videosink是surfaceflingersink,它支持rgb,因此一般摄像头捕捉到的视频流都需要进行一次颜色空间的转换,即从yuv->rgb的转换。
GStreamer SDK 1.0 Build Via Cerbero- https://www.jianshu.com/p/7863404c1909
GStreamer android- https://gstreamer.freedesktop.org/data/pkg/android/
Android gst-sdk-tutorials tutorial5 - https://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/tree/gst-sdk/tutorials/android-tutorial-5
https://coaxion.net/blog/2013/10/gstreamer-1-0-examples-for-ios-android-and-in-general/comment-page-1/
GStreamer Playback API gst-player- https://github.com/sdroege/gst-player
Gstreamer for android 编译- https://blog.csdn.net/yizhongliu/article/details/50666933