EasyPlayerPro for Windows是基于FFmpeg进行开发的全功能播放器,EasyPlayerPro分为三大模块:打开模块,读取流数据模块,解码模块和渲染模块,具体过程可参考《EasyPlayerPro(Windows)开发之框架讲解》。
本章我们主要讲解FFMPEG编码过程,该内容对于EasyPlayer播放器系列项目的后期修改及调整具备重要作用。
FFmpeg是一款音视频编解码库,提供了多种媒体格式的封装和解封装,包括音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率转换,FFmpeg支持的流媒体协议比较多,包括MMS、HTTP、HTTPS、HLS(M3U8)、RTMP 、RTP、 TCP、UDP等。
FFMPEG编码过程如下图
过程解释
注册编码器->初始化封装格式上下文->打开文件->创建输出流->查找编码器->打开编码器->写文件头信息->循环视频像素数据->编码后压缩写文件->写文件尾信息->释放内存、关闭编码器等
FFmpeg支持的编码器比较全面,比如AAC、AC3、H.264、H.265、MPEG4、MPEG2VIDEO、PCM、FLV1的编码器支持,可以通过命令查看具体支持情况。
命令行为:ffmpeg configure -decoders
EasyPlayerPro视频播放器
EasyPlayerPro一贯秉承Easy系列小而精,接口简单功能强大的宗旨从新设计了一套框架,该套框架能适应多线程调用以及多个播放实例同时运行。目前EasyPlayer播放器已经支持H265编码视频的播放,可轻松集成到其他视频平台中。