VLC框架:
VLC 是一个开源项目,基于 ffmpeg 框架的自定义播放器。其中LibVLC是VLC的核心部分,就相当于MediaPlayer类.
VLC 一个最主要的部分,它可以播放各种类型的媒体文件和流媒体文件,并且可以 创造媒体流 并保存成各种格式的媒体文件.
VLC 是一种跨平台的媒体播放器和流媒体服务器,最初为videolan的客户端,它是一种非常简便的多媒体播放器,
它可以用来播放各种各样的音视频的格式文件(MPEG-1、MPEG-2、MPEG- 4、DivX、WMV、mp3、OGG、Vorbis、AC3、AAC等等)流媒体协议
最具特色的功能是可以边下载边观看Divx媒体文件,并可以播放不完全的AVI文件。并且支持界面的更改。
缺点:有 C/C++代码,还有Java代码,代码太庞大.
ffmpeg 框架:
优点:轻量级框架,易于维护
FFmpeg 是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案.
FFMPEG 几乎为你把所有的繁重工作都做了,比如解码、编码、复用和解复用。
这使得多媒体应用程序变得容易编写。它是一个简单的,用C编写的,快速的并且能够解码
几乎所有你能用到的格式,当然也包括编码多种格式。
FFmpeg 支持 MPEG、DivX、MPEG4、AC3、DV、FLV 等40多种编码,支持AVI、MPEG、OGG、Matroska、ASF 等90多种解码.
FFmpeg 主目录下主要有 libavcodec 、 libavformat 和 libavutil 等子目录。其中 libavcodec 用于存放各个encode/decode模块.
libavformat 用于存放 muxer/demuxer 模块, libavutil 用于存放内存操作等辅助性模块.
vitamio 框架:
vitamio 也是基于 ffmpeg 开源框架
VPlayer 是 vitamio 的一个产品, vitamio 和 VPlayer 是同一个团队开发的, VPlayer 能播放的 vitamio 也能播放.
vitamio 的成功案例:
国内:VPlayer、熊猫影音、321影音等
国外:Tvltaliane、Dizi TV等
vitamio 支持的网络协议:
m3u8
MMS
RTSP (RTP, SDP)
HTTP 流式传输(progressive streaming)
HTTP Live Streaming (M3U8), Android 2.1+
vitamio 的组成:
vitamio.jar
ARMv-7-NEON.apk
四个解码器:
ARMv-7-NEON.apk
VFP.apk
ARMv6.apk
ARMv5.apk
注: vitamio 根据手机CPU型号安装对应的解码器,只安装一个解码器。
vitamio 不是万能的,因为手机上的Android系统都被手机厂商改过,所以vitamio不支持所有的手机,但是支持大部分的手机。
解码:
硬解码:用系统接口实现的播放器。
软解码:不用系统接口实现的播放器。
注:系统播放器是硬解码。硬解码视频质量比软解码质量好,系统播放器的播放质量肯定比第三方播放器的播放质量好。
流媒体:
VLS :是一种流服务器,专门用来解决流的各种问题,它也具有一些 VLC 的特征。 videolan 作为服务器可以输出http,rtp,rtsp的流。
流媒体概述:
所谓流媒体是指采用流式传输的方式在 Internet 播放的媒体格式。
流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。
用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。
流媒体以流的方式在网络中传输音频、视频和多媒体文件的形式。
流媒体文件格式是支持采用流式传输及播放的媒体格式。
流式传输方式是将视频和音频等多媒体文件经过特殊的压缩方式分成一个个压缩包,
由服务器向用户计算机连续、实时传送。在采用流式传输方式的系统中,用户不必像非流式播放那样等到整个文件
全部下载完毕后才能看到当中的内容,而是只需要经过几秒钟或几十秒的启动延时即可在用户计算机上利用
相应的播放器对压缩的视频或音频等流式媒体文件进行播放,剩余的部分将继续进行下载,直至播放完毕。