• 对flac格式的初探


            由于一直在看ogg的格式,ogg也包含flac的音频,这几天顺势看了一下flac的音频格式,这种格式的详细解析都在http://flac.sourceforge.net/format.html#residual官网上,非常非常详尽。

             flac的stream格式: “fLaC”标识,四个字节

                                                      METADATA_BLOCK+

                                                      FRAME+                                            

             判断一个文件的音频类型是否是flac格式,从最初的四个字节为’f’’L’’a’’C’开始,之后就是多个的METADATA_BLOCK,每一个METADATA_BLOCK都在HEADER中标识出此BLOCK的类型,其中类型有:

    METADATA_BLOCK_STREAMINFO
    METADATA_BLOCK_PADDING
    METADATA_BLOCK_APPLICATION
    METADATA_BLOCK_SEEKTABLE
    METADATA_BLOCK_VORBIS_COMMENT
    METADATA_BLOCK_CUESHEET
    METADATA_BLOCK_PICTURE

    一般重要参数都在METADATA BLOCK_STREAMINFO中,可以得到bps,channel,sample rate等,帮助我们得到此音频流的总时长。

               flac的FRAME格式如下:FRAME_HEADER

                                                                SUBFRAME+    (每个channel都有一个sumberframe)

                                                                FRAME_FOOTER

           这里需要强调的是每一帧都有同步码11 1111 1111 1110,帧头的大小也是不确定的,头中所包含的信息参数也很多,对flac的格式解析很有帮助。每一帧的长度也是不确定的,需要具体根据不同的情况计算得到,这里我就不做详细解释了,官网上很详细,想必比我解释更清楚。

            flac 的SUBFRAME格式:

    SUBFRAME_HEADER    头内信息指定之后的这一subframe时什么类型

    SUBFRAME_CONSTANT
    || SUBFRAME_FIXED
    || SUBFRAME_LPC
    || SUBFRAME_VERBATIM

    大家不明白的可以看官网,也可以和我讨论~

  • 相关阅读:
    自定义长时间定时器对象
    poj1326
    poj1323
    poj1218
    poj1298
    poj1276
    新年的第一场雪
    Java 语言学习总结
    假使时光能够倒转
    为了回家——春运3日战纪实
  • 原文地址:https://www.cnblogs.com/candycaicai/p/1951579.html
Copyright © 2020-2023  润新知