IOS音频6:之基于FFmpeg播放音频文件(一)

本文介绍了iOS应用中使用FFmpeg进行音频编解码的必要性,详细讲解了音频文件的封装格式,特别是wav音频的头文件结构。通过FFmpeg开源库,学习音频编解码的基本步骤,包括打开音频文件、读取头信息、解码、处理数据和编码。着重强调了avformat_open_input函数在新旧版本的区别及其在内存分配上的注意事项。
摘要由CSDN通过智能技术生成

    在前面的章节中我们采用了四种方法设计了应用于不同场合的音频播放器,已经可是正常的播放音频文件,那么我们为什么还要多次一举来分析音频的编解码过程呢?

首先我们可以想象一下:如果我们想要制作一个很炫的音频声音那么我们如何处理呢?很显然第一步我们需要拿到经过采样得到的原始数字音频数据。这样才能在上面开发一些算法,实现很酷、很绚丽的音频特效。又例如我们想要录制一段音频并将其保存为xx.mp3格式呢?很显然掌握音频编解码算法是非常重要的。如果你想开发自己的应用,掌握音频编解码的原理是不是非常的重要呢?

    在本章中你讲学到什么?

(1)熟悉wav、mp3等各种音频的封装形式

(2)熟悉常用音频的编解码算法

(3)利用ffmpeg实现对于音频的编解码

1 任务需求分析

在这个任务中我们通过ffmpeg开源库实现对音频文件的编解码,并将解码之后的音频文件重新保存在本地。

注意:这里所采用的ffmpeg文件是在linux环境下交叉编译之后的链接文件,在这个章节中我们暂时不考虑ffmpeg交叉编译的使用方法。具体的ffmpeg编译选项以及ffmpeg裁剪会在基于ffmpeg的视频编解码章节中具体介绍。

本任务需要实现的功能如下:

(1)通过ffmpeg解码并重新编码形成新的wav音频文件。

(2)可以在本地simulator环境下运行。

2 音频文件格式概述

   在前一章节我们提到,音频有音频文件格式、音频编码格式两个部分组成。文件格式相当于音频的容器,编码格式决定了音频数据文件是如何装在音频容器当中的。而音频封装格式就是对音频数据文件如何装在音频容器中的描述。

2.1 wav封装格式:

封装格式是每个音频文件必不可少的组成部分之一,它给我们提供了以下参考信息。音频文件类型、编解码方法、单双声道、采样深度、采样率、量化位数、音频文件大小、长度

下面首先来分析一下经典的wav音频的封装格式。

注意:在这里我们对wav音频头文件格式进行了详尽的描述,目的是为了帮助大家理解程序中对wav头文件的封装格式。

wav音频具有单声道 、双声道两种音频封装。每种封装有两个非常重要的音频参数:采样率和采样深度。

•  单声道:采用8位深度量化,量化范围

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值