Skip to content

jianjin33/FFmpegDemo

Repository files navigation

视频播放流程图

  1. 获取封装格式数据(如FLV,MKV,MP4,TS,RMVB,AVI...);
  2. 解封装格式;
    1. 音频压缩数据(AAC、MP3...) -> 音频解码 -> 音频采样数据(PCM...)
    2. 视频压缩数据(H.264、MPEG2...) -> 视频解码 -> 视频像素数据 (YUV、RGB...)
  3. 音视频同步;

视频为什么要压缩:通过摄像头和话筒采集(录像过程中)生产的数据较大,可能1s几十M数据,所以需要压缩数据; 录像录音过程实质是一个压缩采集到的图像和音频数据的过程,也称为编码过程;

视频解码得到视频像素数据(YUV--Y:亮度,UV:色度) 音频解码得到音频采样数据

视频编码

各种格式:HEVC(H.265研发中) H.264 MPEG4 MPEG2 VP9 VP8 VC-1

  • H.264:由数据大小不固定的NALU构成,1个NALU存储1帧画面的压缩编码后的数据。
  • H.264压缩方法:比较复杂,包含了帧内预测、帧间预测、熵编码、环路滤波等环节构成。 可以将数据压缩100倍以上。

音频编码

AAC AC-3 MP3 WMA

AAC:可以将数据压缩10倍以上;

FFmpeg的编译

交叉编译的shell脚本可参考doc目录下的build.sh和build-static.sh; 编译步骤和注意事项参考doc目录下的help-cross-compiling.md文档。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages