主流的媒体解码主要是三种:FFMPEG、live555、MobileVLCKit。
FFMPEG:是一种可以用来记录、转移数字音频、视频。并能够将其转化成流的开源的计算机程序。采用LGPL或者GPL许可证。她提供了录制、转化以及流化音视频的完整解决方案。她包含了非常先进的音频、视频编码库:libavcodec。为了保证高可以执行和编解码质量,libavcodec里面有很多都是从头开始的。
需要能力:理解视频编码解码原理和流程、理解图像压缩技术、音视频压缩技术等。网站链接:http://ffmpeg.org。
live555:live555实现了对多种音视频编码格式的音视频数据的流化、接受和处理等支持,包括MPEG、H264、DV、JPEG视频和多种音频编码。同时由于良好的设计,live555非常容易扩展对其他的格式的支持。
需要技能:理解音视频编码解码的流程呢个、理解图像的压缩技术、音视频压缩的技术。主页:http://www.live555.com。
MobileVCLKit:鼎鼎大名的播放器VCL。优秀的封装,源码中最核心的部分,被封装成了独立的库,基于FFMPEG、LIVE555提供完整的媒体播放器,只需要定制自己的界面,支持COCOAPODS导入库,开发一个简单的界面播放器,你只需要几行代码,几乎覆盖了所有的媒体格式。
需要技能:你只需要定制自己的界面,她的API看起来就是一个播放器源码官网:http://www.videolan.org。
如果播放器标准协议的视频流是http、RTSP、FTP。建议使用VCL,这个库有600M左右,兼容ARMV7、ARMV7S、ARM64的情况下,编译后大概会增加15M或者20M左右的体积。
使用POD的话,非常简单,省区了编译烦恼:
pod ‘MobileVCLKit‘
如果你要做比较精细的视频解码控制,或者要用到优化程序的体积,可以使用FFMPEG或者live555。要做视频编码的话,使用FFMPEG会更佳的好支持。