音视频编码基础知识

视频编码指的是通过特定的压缩技术将一种视频格式文件转换成另一种视频格式文件的过程。

常见的视频编码:

  • MPEG类
    MPEG1(VCD等使用),MPEG2(DVD等使用),MPEG4(DivX,XviD是它的变体),MPEG4 AVC等
  • H.26x类
    H.261, H.262, H.263, H.263+, H.263++, H.264, H.265

常见的音频编码:

  • MPEG Audio Layer 1/2,MPEG Audio Layer 3(即MP3), MPEG-2 AAC, MPEG-4 AAC
  • AAC:有损压缩格式
  • APE:无损压缩格式
  • FLAC:无损压缩格式
  • AC3,Audio Coding Version 3,广泛用于5.1声道

Android中有一些多媒体播放组件:

  • MediaPlayer:播放控制
  • MediaCodec: 音视频编解码
  • AudioTrack:音频播放

iOS中也一些多媒体播放组件:

  • AVPlayer:播放控制
  • VideoToolBox:音视频编解码
  • AudioToolBox:音频播放

常见的多媒体框架:

  • FFmpeg:这是一个被广泛用于音视频开发中的多媒体解决方案,而不是框架
  • VLC: Video LAN Client 它是一个开源的跨平台多媒体播放器和框架
  • GStreamer:构建流媒体应用的开源框架

DTS与PTS的意思

  • DTS,即Decode Time Stamp,这指的是读入内存中的比特流开始被送入解码器中进行解码的时间戳,就是说从这个时间开始解码。
  • PTS,即Presentation Time Stamp,这指的是解码后的视频帧开始被显示在屏幕上,就是说从这个时间开始可以看到画面

I,P,B帧

  • I帧,这是一个关键帖,之所以说它关键是因为这一帧的画面是完整的,解码时,只需要本帧的数据就可以完成。
  • P帧,它没有完整的画面数据,P帧记录了与前一个关键帧(I帧)或P帧的差别,因此在解码时,需要用之前缓存的画面叠加上本帧定义的差别生成最终的画面。
  • B帧,它也没有完整的画面数据,B帧记录了本帧与前后帧的差别,解码时要用到之前的缓存的画面,还要用到解码之后的画面,通过前后画面数据与本帧数据的叠加取得最终画面。
  • 所以B帧的压缩率是最高的,P帧次之,I帧压缩率最小。
相关推荐
站在巨人肩膀上的码农9 小时前
全志T507 音频ALSA核心层注册流程分析
驱动开发·音视频·安卓·全志·alsa·声卡
】余1853816280018 小时前
碰一碰发视频源码搭建与定制化开发:支持OEM
音视频
张晓~1833994812120 小时前
数字人分身+矩阵系统聚合+碰一碰发视频: 源码搭建-支持OEM
线性代数·矩阵·音视频
山登绝顶我为峰 3(^v^)31 天前
如何录制带备注的演示文稿(LaTex Beamer + Pympress)
c++·线性代数·算法·计算机·密码学·音视频·latex
却道天凉_好个秋1 天前
音视频学习(三十六):websocket协议总结
websocket·音视频
【余185381628001 天前
碰一碰发视频源码搭建定制化开发:支持OEM
音视频
EQ-雪梨蛋花汤1 天前
【Part 3 Unity VR眼镜端播放器开发与优化】第四节|高分辨率VR全景视频播放性能优化
unity·音视频·vr
菜包eo1 天前
基于二维码的视频合集高效管理与分发技术
音视频
文浩(楠搏万)1 天前
用OBS Studio录制WAV音频,玩转语音克隆和文本转语音!
大模型·音视频·tts·wav·obs·声音克隆·语音录制
aqi002 天前
FFmpeg开发笔记(七十二)Linux给FFmpeg集成MPEG-5视频编解码器EVC
android·ffmpeg·音视频·流媒体