【读书会第13期】第四章音频文件的封装格式和编码格式笔记
        【摘要】 笔记参考来源:https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXLO005+Self-paced/courseware/d9fd955c56a54f858d53a2fe686c853c/e69d9efcc3814cdc8e5b594ff4884cbe/ FFmpeg的音频封装格式MP3是我们在日常生活中最常见的...
    
    
    
    FFmpeg的音频封装格式
MP3是我们在日常生活中最常见的音频格式之一,也是一种音频封装格式。
日常生活中,我们经常可以看到*.mp3的音频文件,就像mp4、flv的视频封装格式一样。
MP3 封装格式
使用如下命令查看ffmpeg 支持的封装格式列表:
ffmpeg -f | grep mp3
 
 MP3封装格式
使用如下命令播放一个mp3音乐文件:
 普通模式:
ffplay input.mp3
 
 波形图模式:
fplay -showmode 1 intput.mp3
 
 频谱图模式:
ffplay -showmode 2 intput.mp3
 
 FFmpeg的音频编码格式
FFmpeg 支持很多编码格式,包括MP3、AAC、AC3等。
通过libavutil/samplefmt.h中查看该版本中支持以下音频格式
enum AVSampleFormat {
    AV_SAMPLE_FMT_NONE = -1,
    AV_SAMPLE_FMT_U8,          ///< unsigned 8 bits
    AV_SAMPLE_FMT_S16,         ///< signed 16 bits
    AV_SAMPLE_FMT_S32,         ///< signed 32 bits
    AV_SAMPLE_FMT_FLT,         ///< float
    AV_SAMPLE_FMT_DBL,         ///< double
    AV_SAMPLE_FMT_U8P,         ///< unsigned 8 bits, planar
    AV_SAMPLE_FMT_S16P,        ///< signed 16 bits, planar
    AV_SAMPLE_FMT_S32P,        ///< signed 32 bits, planar
    AV_SAMPLE_FMT_FLTP,        ///< float, planar
    AV_SAMPLE_FMT_DBLP,        ///< double, planar
    AV_SAMPLE_FMT_S64,         ///< signed 64 bits
    AV_SAMPLE_FMT_S64P,        ///< signed 64 bits, planar
    AV_SAMPLE_FMT_NB           ///< Number of sample formats. DO NOT USE if linking dynamically
};
 
 MP3编码格式
MP3 也是一种音频编码格式。
 和视频不同,视频编码格式,比如H264,一般会封装MP4或者FLV这种封装格式中被使用。音频编码格式MP3,则是封装在同名的MP3的封装格式中。二者容易混淆,注意区分。
 使用如下命令查看ffmpeg 支持的编码格式列表:
ffmpeg -encoders| grep mp3
 
 mp3截取
ffmpeg -y -i input.mp3 -ss 00:00:00 -t 00:00:03 -acodec copy output_mp3.mp3
  参数说明
          -y :     允许覆盖
          -i input.mp3:  源文件
         -ss 00:00:00:   开始时间
         -t 00:00:03:   截取音频时间长度
         -acodec copy:编码格式复制
 
 mp3转pcm
ffmpeg -y -i input.mp3 -acodec pcm_s16le -f s16le -ac 2 -ar 16000 16k.pcm
 参数说明
      -y:  允许覆盖
      -i input.mp3:  源文件
      -acodec pcm_s16le: 编码器
      -f s16le:  强制文件格式
      -ac 2: 双声道
      -ar 16000: 采样率
 
 MP3 文件结构
| 名称 | 说明 | 
|---|---|
| ID3V2 | 位于MP3文件的首部,包含作者,作曲,专辑等信息,长度不固定,是对ID3V1的扩展,并非每个MP3文件均存在ID3V2 | 
| Auido Data | 1.音频数据由一系列的数据帧构成  2.每帧的长度不一定固定,取决于MP3编码过程中采用CBR和VBR模式,即使在CBR模式下也会存在帧长度不相同的情况 3.每帧都包含帧头和数据实体两部分 4.帧头记录了MP3文件的位率,采样率和版本等信息 5.如果采用CRC校验,则帧头后跟随2字节CRC校验,之后可能存在32字节的附加信息,也可能无附加信息  |  
   
| ID3V1 | 存在于MP3文件的末位,长度为128字节,包含作者作曲专辑等信息,并非每个MP3文件均存在 | 
            【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                cloudbbs@huaweicloud.com
                
            
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)