`
javasogo
  • 浏览: 1815927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

编解码学习笔记(十三):容器(上篇)

阅读更多

  视频是现在电脑中多媒体系统中的重要一环。为了适应储存视频的需要,人们设定了不同的视频文件格式来把视频和音频放在一个文件中,以方便同时回放。视频档实际上都是一个容器里面 包裹着不同的轨道,使用的容器的格式关系到视频档的可扩展性。

  FourCC全称Four-Character Codes,是由4个字符(4 bytes)组成,是一种独立标示视频数据流格式的四字节,在wav、avi档案之中会有一段FourCC来描述这个AVI档案,是利用何种codec来编码的。因此wav、avi大量存在等于“IDP3”的FourCC。

ISO/IEC
ITU-T H.222.0
Others 3GP and 3G2 · ASF · AVI · Bink · DivX Media Format · DPX · EVO · Flash Video · GXF · M2TS · Matroska · MXF · Ogg · QuickTime File Format · RealMedia · REDCODE RAW · RIFF · Smacker · MOD and TOD · VOB · WebM
Audio Only
AIFF · AU · WAV

3GP和3G2容器  

  3GP(3GPP文件格式)是一个多媒体容器由第三代合作伙伴计划(3GPP)针对3G UMTS多媒体服务定义。它用于3G移动电话,但也可以用于某些2G和4G的电话。3GP在ETSI 3GPP技术规范中定义,他是视频文件格式,并带有讲话/音频媒体类型和带时间信息的文本,用于IMS,MMS,多媒体广播/多播服务(MBMS)和传输端到端的包交换流媒体服务(PSS)。

  3G2(3GPP2文件格式)是一个多媒体容器有3GPP2为3G CDMA 2000多媒体服务定义。她与3GP文件格式非常相似,但与之相比存在一些扩展和限制。3G2在3GPP2技术规范中定义。

  3GP和3G2文件格式都是基于在ISO/IEC 14496-12(MPEG-4 Part 12)定义的ISO基础媒体文件格式,但是老板不的3GP文件格式不具有其中某些属性。3GP和3G2与MP4(MPEG-4 Part 14)相似,MP4也是基于MPEP-4 Part 12。3GP和3G2设计目的是为移动电话减少存储和带宽要求,它们是非常相似的标准,但有区别:

  • 3GPP 文件格式用于GSM类电话,文件扩展名:.3gp
  • 3GPP2文件格式用于CDMA类电话,并具有文件扩展名:.3g2

  3GP文件存贮视频流:MPEG-4 Part2,H.263,MPEG-4 Part 10(AVC/H.264),音频流 AMR-NB, AMR-WB, AMR-WB+, AAC-LC, HE-AAC v1 和 Enhanced aacPlus (HE-AAC v2)。3GPP允许ISO基础文件格式(MPEG-4 Part12)中使用AMR和H.263编解码,因为3GPP在ISO基础文件格式中规定了采样条目和模板字段的使用,可以为编解码定义新的box。这些扩展在ISO基础媒体文家格式(“MP4家族”文件)中由登记授权登记为code-point。对于在3GP文件中存贮MPEG-4媒体,3GP规定参加了MP4和AVC文件格式规范,它们也是基于ISO基础媒体文件格式。MP4和AVC文件格式规范描述在ISO基础媒体文件格式中使用MPEG-4内容。有些手机使用.mp4作为3GP视频的扩展。

  3G2文件格式可以存贮与3GP文件格式相同的视频流和觉得部分的音频流。此外3G2可以存在音频流还包括EVRC,EVRC-B,EVRC-WB,13K(QCELP),SMV,和VMR-WR。3G2规范还定义了在3GPP带时间文件的某些货站。3G2文件格式不支持Enhanced aacPlus (HE-AAC v2) 和AMR-WB+ audio streams。对于在3G2文件中存在MPEG-4媒体(AAC音频,MPEG-4 Part 2音频,MPEG-4 Part 10/H.264/AVC),3G2规范提及了MP4 文件格式和AVC文件格式规范,在那里描述了如果在ISO基础媒体文件格式中使用这些内容。对于在3G2中存储H.263和AMR内容,3G2规范参见了3GP文件格式规范。

  3GP格式视频有两种分辨率:

  • 分辨率176×144,适合市面上所有支持3GP格式的手机。
  • 分辨率320×240,清晰,适合高档手机、MP4播放器、PSP以及苹果iPod.

ANIM

  ANIM标准的多媒体文件用于经典的Commodore Amiga的数字动画。它遵循IFF ILBM主规范,他是第一个动画格式被操作系统正式采纳。

ASF

  微软WMA和WMV的标准容器。

  WMV(Windows Media Video)是微软公司开发的一组数字视频编解码格式的通称,ASF(Advanced Systems Format)是其封装格式。ASF封装的WMV档具有"数字版权保护"功能。扩展名:wmv/asf、wmvhd。

  ASF (Advanced Streaming format高级流格式)。ASF 是 MICROSOFT为了和现在的 Real player 竞争而发展出来的一种可以直接在网上观看视频节目的文件压缩格式。ASF使用了 MPEG4 的压缩算法,压缩率和图像的质量都很不错。因为 ASF 是以一个可以在网上即时观赏的视频"流"格式存在的,所以它的图像质量比 VCD 差一点点并不出奇,但比同是视频"流"格式的 RAM 格式要好。

  • 文件扩展名 :.asf .wma .wmv
  • 互联网媒体类型: video/x-ms-asf, application/vnd.ms-asf
  • 类型码 : 'ASF_'
  • 唯一类型码 :Identifier com.microsoft.advanced-systems-format
  • Magic number :30 26 b2 75
  • 开发者 :Microsoft
  • 格式类型 :Container format
  • 容器容纳 :WMA, WMV, MPEG4 etc.

AVI

  AVI (the standard Microsoft Windows container, also based on RIFF)。AVI是英语Audio Video Interleave("音频视频交织"或译为"音频视频交错")的首字母缩写,由微软在 1992年11月推出的一种多媒体文件格式,用于对抗苹果Quicktime的技术。现在所说的AVI多是指一种封装格式。

  比较早的AVI是Microsoft开发的。其含义是Audio Video Interactive,就是把视频和音频编码混合在一起存储。AVI也是最长寿的格式,已存在10余年了,虽然发布过改版(V2.0于1996年发 布),但已显老态。AVI格式上限制比较多,只能有一个视频轨道和一个音频轨道(现在有非标准插件可加入最多两个音频轨道),还可以有一些附加轨道,如文字等。AVI格式不提供任何控制功能。扩展名:avi。

  AVI能使用的编码:

  • 视频名称(括号内表示的是此视频的FourCC)
    o MPEG-1/-2 (MPEG/MPG1/MPG2)
    o MPEG-4 (MP4V/XVID/DX50/DIVX/DIV5/3IVX/3IV2/RMP4)
    o MS-MPEG4 (MPG4/MP42/MP43)
    o WMV7/WMV8/WMV9 (WMV1/WMV2/WMV3)
    o DV(DVSD/DVIS)
    o Flash Video (FLV1/FLV4)
    o Motion JPEG (MJPG)
    o LossLess JPEG (LJPG)
    o H.264 (AVC1/DAVC/H264/X264)
    o H.263 (H263/S263)
    o H.261 (H261)
    o Huffyuv (HFYU)
    o AVIzlib (ZLIB)
    o AVImszh (MSZH)
    o Theora (THEO)
    o Indeo Video (IV31/IV32)
    o Cinepak (cvid)
    o Microsoft Video 1 (CRAM)
    o On2VP3 (VP30/VP31)
    o On2VP4 (VP40)
    o On2 VP6 (VP60/VP61/VP62)
    o VC-1 (WVC1)
  • 音频
    o PCM
    o MP3 (0x0055)
    o AC-3 (0x0092)
    o AAC
      - HE-AAC
      - LC-AAC
    o FLAC
    o Indeo Audio
    o TrueSpeech
    o WMA
    o Vorbis

  编码组合能根据以下的例子自由选择。

  • (DivX或XviD+MP3).avi,
  • (H.264+MP3).avi
  • (WMV9+MP3).avi

  以XviD+MP3构成的AVI最为常见。

DVB-MS

  DVR-MS (Microsoft Digital Video Recording,微软数字视频录制)是一种专用的视频和音频文件容器格式,有微软开发,用于存储由Windows XP Media Center Edition,Windows Vista和Windows 7录制的电视内容。多个数据流(视频和音频)在带有DVR-MS扩展的ASF容器中封装。视频使用MPEG-2标准编码,音频使用MPEG-1 Layer II或者杜比数字AC-3(ATSC A/52)。扩展的格式包括内容和数字版权管理的元数据。这些格式的文件有流缓存引擎(SBE.dll)生成,这是一个在Windows XP Service Pack 1的DirectShow组件。

MPEG/MPG/DAT

  MPEG格 式:MPEG(Moving Picture Experts Group),是一个国际标准组织(ISO)认可的媒体封装形式,受到大部份机器的支持。其存储方式多样,可以适应不同的应用环境。MPEG-4档的档容 器格式在Part 1(mux)、14(asp)、15(avc)等中规定。MPEG的控制功能丰富,可以有多个视频(即角度)、音轨、字 幕(位图字幕)等等。MPEG的一个简化版本3GP还广泛的用于准3G手机上。扩展名:dat(用于VCD)、vob、mpg/mpeg、3gp /3g2(用于手机)等。

  MPEG也是Motion Picture Experts Group 的缩写。这类格式包括了 MPEG-1, MPEG-2 和 MPEG-4在内的多种视频格式。MPEG-1相信是大家接触得最多的了,因为目前其正在被广泛地应用在 VCD 的制作和一些视频片段下载的网络应用上面,大部分的 VCD 都是用 MPEG1 格式压缩的 ( 刻录软件自动将MPEG1转为 .DAT格式 ) ,使用 MPEG-1 的压缩算法,可以把一部 120 分钟长的电影压缩到 1.2 GB 左右大小。MPEG-2 则是应用在 DVD 的制作,同时在一些 HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当多的应用。使用 MPEG-2 的压缩算法压缩一部 120 分钟长的电影可以压缩到 5-8 GB 的大小(MPEG2的图像质量MPEG-1 与其无法比拟的)。

  MPEG-PS:MPEG节目流(program stream),是MPEG-1和MPEG-2基准流的标准容器,用于在可靠介质上,例如磁盘,也用于DVD-Video光碟。

  MPEG-TS:MPEG传输流,是数字广播和在非可靠媒体传输的标砖容器,也在蓝光光碟使用,通常携带多个视频和音频流以及一个电子节目指南。

n AVI

  如果你发现原来的播放软件突然打不开此类格式的AVI文件,那你就要考虑是不是碰到了n AVI。n AVI是 New AVI 的缩写,是一个名为 Shadow Realm 的地下组织发展起来的一种新视频格式。它是由Microsoft ASF 压缩算法的修改而来的(并不是想象中的 AVI),视频格式追求的无非是压缩率和图像质量,所以 NAVI 为了追求这个目标,改善了原始的 ASF 格式的一些不足,让 NAVI 可以拥有更高的帧率。可以这样说,NAVI 是一种去掉视频流特性的改良型 ASF 格式。

注:上述材料来源于wiki的整理。

关链接: 我的产业生态链和杂谈文章

分享到:
评论

相关推荐

    ffmpeg开发学习笔记

    ### FFMPEG开发学习笔记知识点总结 #### 数据结构解析与运用 ##### AVFormatContext - **简介**: `AVFormatContext` 是一个核心的数据结构,在FFmpeg中被用于封装媒体文件的相关信息,包括输入和输出格式、编解码...

    python学习笔记说明的PPT

    ### Python学习笔记说明的PPT知识点详述 #### 一、Python简介 - **Python的特点**: - **优雅**:简洁清晰的语法结构。 - **明确**:避免使用隐晦的方式解决问题。 - **简单**:尽可能简化语言结构。 - **...

    Netty4.0学习笔记系列之五:自定义通讯协议

    在本篇“Netty4.0学习笔记系列之五:自定义通讯协议”中,我们将深入探讨如何在Netty框架下构建和实现自己的通信协议。Netty是一个高性能、异步事件驱动的网络应用框架,广泛应用于Java领域的服务器开发,如网络游戏...

    Netty4.0学习笔记系列之二:Handler的执行顺序

    在本篇“Netty4.0学习笔记系列之二:Handler的执行顺序”中,我们将深入探讨Netty中的Handler处理链以及它们的执行流程。 首先,Netty 中的 ChannelHandler 是处理 I/O 事件或拦截 I/O 操作的核心组件。每个 ...

    ffmpeg学习的笔记

    FFmpeg是一款强大的开源跨平台多媒体处理工具,涵盖了音频、视频编码、解码、转换、流媒体等众多功能。本笔记将深入探讨FFmpeg的核心概念、常用命令行操作以及编程接口的使用方法,帮助读者从零基础到熟练掌握FFmpeg...

    ASN.1中文学习笔记

    ### ASN.1中文学习笔记详解 #### 一、概述 **ASN.1**(Abstract Syntax Notation One)是一种由国际电信联盟(ITU-T)制定的标准,主要用于定义数据类型的抽象语法,并规定了如何对这些数据类型进行编码,使得这些数据...

    ejb 学习笔记

    ### EJB学习笔记知识点梳理 #### 一、EJB概览 **EJB**(Enterprise JavaBeans)是一种Java EE技术,用于开发、部署服务器端的分布式应用组件。它旨在简化企业级应用程序的开发过程,通过将复杂的底层服务(如事务...

    RTSP协议学习笔记

    3. **编码和解码**:RTSP不处理编码和解码,这些任务由RTP和其他编解码器完成。 总结,RTSP协议在实时流媒体领域起着关键作用,它的设计旨在提供对媒体流的精细控制和互动性。理解RTSP的工作机制对于开发和维护高...

    Servlet学习笔记

    Servlet学习笔记通常涵盖了以下几个方面的知识点: 一、Servlet概述 - B/S架构,即浏览器/服务器架构,是Web应用的典型架构。 - Servlet是Java语言编写的服务器端程序,其主要功能在于交互式地浏览和修改数据,生成...

    ASN[1].1编码学习笔记

    ASN.1(Abstract Syntax Notation One)是一种标准的...通过深入学习和理解ASN.1,开发者可以更有效地处理跨平台的数据交换问题,特别是在需要高精度和一致性的情况下,如网络协议设计、数据库交换、软件配置文件等。

    JQuery学习笔记

    ### JQuery学习笔记知识点详解 #### 一、提交表单学习要点 **1. HTML、CSS与JavaScript的角色划分** - **HTML**: 负责页面的内容结构。 - **CSS**: 控制页面的视觉表现(样式)。 - **JavaScript**: 实现页面的...

    FFMpeg_开发资料

    源码分析涉及到的领域包括编解码算法、多线程处理、内存管理等,对于想要贡献到FFmpeg项目或者进行定制开发的人来说尤为宝贵。 FFmpeg支持的流媒体功能包括RTMP、HLS、DASH等,这些都是现代网络音视频传输的重要...

    java笔记自学资料

    这篇笔记自学资料主要涉及了Java Web开发中的核心概念,包括字符编码处理、JSP指令、JSP动作标签以及Servlet相关知识。让我们详细解析一下这些知识点。 1. 字符编码处理: 在Java Web开发中,处理字符编码是非常...

    javascript类型系统 Window对象学习笔记

    ### JavaScript类型系统与Window对象学习笔记 #### 1. JavaScript类型系统简介 在深入探讨Window对象之前,我们首先需要了解JavaScript的类型系统。JavaScript是一种动态类型语言,它将数据类型分为两大类:基本...

    mediasoup学习整理

    此外,"mediasoup study"这个压缩包文件可能包含了一些学习笔记、示例代码或者实战教程,可以帮助你深入理解mediasoup的使用方法和功能。 总之,mediasoup是一个强大的工具,对于开发实时音视频应用的开发者来说,...

    Netty学习笔记

    SpringBoot内置的容器(Tomcat/Jerry) Zookeper数据交换 Dubbo多协议RPC的支持 2、直接做服务器(消息推送服务,游戏后台) Netty如何确定要使用那些编码器和解码器 很简单,去看API文档 Netty自带的编码器可以解决99...

    C++ 视频播放器源代码

    2. **渲染模块**:解码后的图像数据需要被显示在屏幕上,这就需要进行硬件加速的图形渲染,可能使用OpenGL或DirectX这样的图形库。 3. **控制模块**:包括播放、暂停、快进、倒退、音量控制等功能,可能涉及到事件...

    ffmpeg_lesson_code_model.7z

    在这个压缩包中,你可能找到的文件 "ffmpeg_lesson_code_model" 可能是一个目录,包含了多个示例程序、源代码文件、笔记或解释文档,用于演示 FFmpeg 的不同功能和用法。 FFmpeg 的核心功能包括: 1. **音视频编码...

    python gtk3 tutorial

    #### 十三、组合框 **13. 组合框** - **示例**(Example):创建一个带有下拉列表的组合框。 #### 十四、图标视图 **14. 图标视图** - **示例**(Example):使用图标视图显示带有图像的列表。 #### 十五、多行文本...

    Python学习日记.zip

    "Python学习日记.zip"这个压缩包文件,很可能包含了某位开发者在学习Python时所记录的笔记、代码示例或项目实践,旨在帮助初学者或者有经验的程序员巩固Python的基础,探索其高级特性,以及解决实际问题。...

Global site tag (gtag.js) - Google Analytics