logo头像

最可怕一生碌碌无为,还说平凡难能可贵!

视音频学习计划

前言

初学视音频,并不能面面俱到,把每种协议、格式、编码都学一遍。这里计划在众多流媒体协议、视频格式、视音频编码格式中各挑出几种,在iOS端实现一些小功能,理论还是需要结合实际。

选择

视频播放流程图在《视频播放简单原理》已经介绍过:解协议->解封装->解编码->音画同步->输出。

对应的选择

  • 解协议 >> rtmp & http
  • 解封装 >> flv & mp4
  • 解编码 >> H264 & AAC
  • 输出 >> YUV & RGB & PCM

选择的原因

  • rtmp(Real Time Messaging Protocol)是实时传输协议,即偏向于做直播这种有实时要求的内容,由于之前项目有过相关了解,想要更深入了解;
  • http作为流媒体时,对flv文件格式的支持较好,更容易实现视频的点播观看,各大视频网站都采用;
  • flv是Adob公司出品,无论是rtmp还是http对其的支持都比较好;
  • mp4比较流行;
  • H264比较流行,应用广泛;
  • AAC比较流行,应用广泛;
  • YUV & RGB & PCM比较流行,应用广泛;

学习规划

初步的计划是做一个利用摄像头和麦克风采集视音频,编码->封装->保存->解封装->解码->播放,这个过程主要学习编码与封装。后期加入实时推流、拉流、点播功能,学习流媒体协议。

  • 摄像头采集图像
  • 编码视频:YUV -> H264
  • 解码视频:H264 -> YUV (播放)
  • 编码音频:PCM -> AAC
  • 解码音频:AAC -> PCM (播放)
  • 同步音视频
  • 封装



上一篇