音视频编码基础知识

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

常见的视频编码:

  • 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帧压缩率最小。

相关推荐

  1. 视频编码基础知识

    2023-12-28 22:42:01       66 阅读
  2. android 视频基础知识--个人笔记

    2023-12-28 22:42:01       37 阅读
  3. 视频实战--视频编码

    2023-12-28 22:42:01       38 阅读
  4. 视频高频知识

    2023-12-28 22:42:01       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-28 22:42:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-28 22:42:01       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-28 22:42:01       82 阅读
  4. Python语言-面向对象

    2023-12-28 22:42:01       91 阅读

热门阅读

  1. 【DB2】Maxlocks和防止锁升级

    2023-12-28 22:42:01       57 阅读
  2. 力扣labuladong——一刷day80

    2023-12-28 22:42:01       57 阅读
  3. 面试问题整理若干

    2023-12-28 22:42:01       61 阅读
  4. 观察者(模板)的一点体会

    2023-12-28 22:42:01       50 阅读
  5. 大数据知识分享:大数据产业必知概念

    2023-12-28 22:42:01       63 阅读
  6. SQL备忘--子查询与ALL/ANY运算符

    2023-12-28 22:42:01       57 阅读
  7. 幸运树。。

    2023-12-28 22:42:01       53 阅读
  8. Oracle中varchar2和nvarchar2的区别

    2023-12-28 22:42:01       57 阅读
  9. Qt中保存和还原Widget状态的入门指南

    2023-12-28 22:42:01       68 阅读
  10. Python 虚拟环境工具及使用总结

    2023-12-28 22:42:01       49 阅读
  11. C语言中的Strict Aliasing Rule

    2023-12-28 22:42:01       57 阅读