FFmpeg入门学习

FFmpeg入门学习

提要

这些天一直加班,把心情都加没了,只能写写代码来改善一下心情.流媒体一直是公司项目中最难啃的骨头,恰好上次找到一本好书<<FFmpeg从入门到精通>>,最近常跟同事聊起流媒体相关内容,我因此决定去探索一番.

FFmpeg组成

FFmpeg框架主要由AVFormat,AVCodec,AVFilter,AVDevice,AVUtil模块组成.

AVFormat

AVFormat实现了目前主流多媒体封装格式,包括封装和解封装.比如常见的文件封装格式:MP4,FLV,KV,TS,网络封装格式:RTMP,RTSP,MMS,HLS.
备注:FFmpeg支持媒体封装格式拓展,用户可以自定义自己的媒体封装格式拓展.

AVCodec

AVCodec实现了目前主流的多媒体编解码格式,包括MPEG4,AAC,MJPEG,H.264(AVC),H.265(HEVC).用户可以扩展以支持自己的编码格式.

AVFilter

AVFilter提供了一个通用的音频,视频,字幕等滤镜处理框架,该框架支持多个输入流,多个输出流以及流分割.FFmpeg内置多种滤镜.

Swscale

swsample提供了高级别的图像转化API.

swresample

swresample提供了高级别的音频重采样API.

参考

  1. FFmpeg官网
  2. FFmpeg Filters Documentation
  3. 学习过程中编写的代码Java