音视频编码基础知识

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

常见的视频编码:

  • 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帧压缩率最小。
相关推荐
骄傲的心别枯萎2 小时前
RV1126 NO.37:OPENCV的图像叠加功能
人工智能·opencv·计算机视觉·音视频·视频编解码·rv1126
库奇噜啦呼10 小时前
【iOS】音频与视频播放
ios·音视频·cocoa
小小测试开发15 小时前
Playwright进阶:录制视频与追踪功能,让自动化过程“看得见、可分析”
自动化·音视频
开开心心就好17 小时前
微软官方出品:免费数据恢复工具推荐
网络·笔记·microsoft·pdf·word·音视频·symfony
懷淰メ18 小时前
python3GUI--短视频社交软件 By:Django+PyQt5(前后端分离项目)
后端·python·django·音视频·pyqt·抖音·前后端
小马过河R18 小时前
AIGC首帧图尾帧图生成视频案例教程
aigc·音视频·ai视频
causaliy18 小时前
实践六:防盗链知识点——视频
爬虫·音视频
戴草帽的大z18 小时前
使用V4L2工具验证RK3588平台视频设备节点数据有效性
ffmpeg·音视频·rk3588·nv12·v4l2-ctl
音视频牛哥19 小时前
从 RTSP/RTP/RTCP 到系统级时间闭环:跨平台低延迟RTSP播放架构解析
计算机视觉·机器人·音视频·rtsp播放器·linux rtsp播放器·windows rtsp播放器·安卓播放rtsp流
电子科技圈20 小时前
XMOS与飞腾云联袂以模块化方案大幅加速音频产品落地
经验分享·嵌入式硬件·mcu·自然语言处理·音视频·腾讯会议·游戏机