aac格式

Android 能够暂停的录音功能

99封情书 提交于 2020-03-29 12:17:19
Android ApI提供了MediaRecorder和AudioRecord两个类给开发者来很方便地实现音视频的录制(前者可以实现音频和视频的录制,后者只能实 现音频的录制)。这两个类都提供了start()和stop()方法用于开始和结束音频或视频的录制,但令人费解的是这两个类都没有提供pause()方 法用于暂停录制音视频,因为在实际应用当中,暂停录制的功能是非常有必要的Android 实现能够暂停的录音功能 需实现音频录制的暂停功能,并且生成的音频文件格式必须是m4a格式 为什么项目中音频文件一定要采用m4a格式的呢?有以下几点原因: 1. 录制相同时间的音频,使用m4a格式存储的文件的大小要比使用其它格式类型存储的文件的大小要小(通过实验多次,在相同采样率16000的情况下,一般录 制5分钟的音频,采用m4a格式存储的音频文件只有1.2Mb,而采用arm、mp3及其它格式的一般都有2-5Mb),这样当用户需要 下载 或上传录制的音频文件时,可以节省流量,并且相同压缩率的前提下,m4a格式音频的音质相比其它格式的也更高; 2.产品同时拥有Android客户端和IOS客户端,那为了避免使用Android客户端的用户录制的音频上传到服务器之后,使用IOS客户端的用户下 载下来发生无法播放的问题,我们需统一录制音频的存储格式

rtmp发送H264及aac的音视频

淺唱寂寞╮ 提交于 2020-03-20 18:34:10
RTMP推送的音视频流的封装形式和FLV格式相似,由此可知,向FMS推送H264和AAC直播流,需要首先发送"AVC sequence header"和"AAC sequence header",这两项数据包含的是重要的编码信息,没有它们,解码器将无法解码。   AVC sequence header就是AVCDecoderConfigurationRecord结构,该结构在标准文档“ISO-14496-15 AVC file format”中有详细说明。   AAC sequence header存放的是AudioSpecificConfig结构,该结构则在“ISO-14496-3 Audio”中描述。AudioSpecificConfig结构的描述非常复杂,这里我做一下简化,事先设定要将要编码的音频格式,其中,选择"AAC-LC"为音频编码,音频采样率为44100,于是AudioSpecificConfig简化为下表:   这样,AVC sequence header和AAC sequence header的内容可以基本确定了,更详细的信息,大家可以去翻阅相关文档。 在发送这两个header需要在前面分别加上 VideoTags、AudioTags 这连个tags都是1个字节(8bits)的数据 其中AudioTags每bit表示的意义如下图: 其中SoundData

打包AAC码流到FLV文件

人盡茶涼 提交于 2020-03-07 02:30:36
AAC编码后数据打包到FLV很简单。 1. FLV音频Tag格式 字节位置 意义 0x08, // 0, TagType 0xzz, 0xzz, 0xzz, // 1-3, DataSize, 0xzz, 0xzz, 0xzz, 0xzz, // 4-6, 7 TimeStamp | TimeStampExtend 0x00, 0x00, 0x00, // 8-10, StreamID 0xzz, // 11, AudioTag Header 0x0b, // 12, AACPacketType (如果不是AAC编码 没有这个字节) 0xzz ... 0xzz // 音频数据 2. AudioTagHeader 音频Tag头一般由一个字节定义(AAC用两个字节),第一个字节的定义如下: 音频格式 4bits | 采样率 2bits | 采样精度 1bits | 声道数 1bits| 音频格式 4bits 0x00 = Linear PCM, platform endian 0x01 = ADPCM 0x02 = MP3 0x03 = Linear PCM, little endian 0x04 = Nellymoser 16-kHz mono 0x05 = Nellymoser 8-kHz mono 0x06 = Nellymoser 0x07 = G.711 A-law

AAC--ffmpeg解码AAC

余生长醉 提交于 2020-03-01 16:26:52
本篇FFMEPG实现对AAC解码,解码结果保存wav格式。对AAC编码文件来说,编码根据音频参数编码,解码根据音频参数重新构建声波,FFMPEG构建的音频存储方式不一定支持播放, 所以需要重采样样本,如AAC解码的样本格式AV_SAMPLE_FMT_FLTP。AAC的解码器如果是外部解码器"aac",解码格式需要AV_SAMPLE_FMT_FLTP,如果是“libvo_aacenc”这个解码器需要格式AV_SAMPLE_FMT_S16。 AVFormatContext * pFormatCtx = avformat_alloc_context ( ) ; //打开封装格式 avformat_open_input ( & pFormatCtx , INPUT_FILE_NAME , NULL , NULL ) ‘ avformat_find_stream_info ( pFormatCtx , NULL ) ; // Dump valid information onto standard error av_dump_format ( pFormatCtx , 0 , INPUT_FILE_NAME , false ) ; // Find the first audio stream👉👉int audioStream // Get a pointer to the codec

FFmpeg从入门到出家(FLV文件结构解析)

我是研究僧i 提交于 2020-02-26 12:29:24
FLV(FLASH VIDEO),是一种常用的文件封装格式,目前国内外大部分视频分享网站都是采用的这种格式。其标准定义为《Adobe Flash Video File Format Specification》。RTMP协议也是基于FLV视频格式的。 FLV的文件格式在该规范中已阐述清楚,本章节不再重复描述,而是结合下面的示例具体阐述如何分析FLV文件。 图3. FLV文件结构示例1 图4. FLV文件结构示例2 FLV文件的分析工具有很多,这里给大家推荐FLV Parser这个小软件,通过它可以很容易的看到文件的组成结构。 3.1 文件结构 从整个文件上看,FLV是由Header和File Body组成,如下图所示: 图5. FLV文件总体结构 1.FLV Header - 长度为9,其结构的标准定义参见标准定义见E.2 The FLV header; FLV File Body - 由一连串的PreviousTagSize + Tag构成。previousTagSize是4个字节的数据,表示前一个tag的size。标准定义参见E.3 The FLV File Body。 以图3. FLV文件结构示例1为例分析整体结构: 1.位置0x00000000 - 0x00000008, 共9个字节,为FLV Header,其中: ◦0x00000000 - 0x00000002 :

AAC编码

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-15 13:25:21
1. 前言 如果说目前H.264是视频CODEC的实际霸主,那么AAC就是音频CODEC的女王。主流的音视频格式都是H.264搭配AAC,无论是非实时的媒体文件还是实时的媒体流。 2. AAC历史 Advanced Audio Coding (AAC) 是一个有损压缩的音频编码集(其实新的编码工具也支持无损)。 其设计目标是替代原有MP3编码标准,在与MP3在相似的码率下希望质量优于MP3。这一目标已达到并且由ISO和IEC标准组织标准化在MPEG-2和MPEG-4中。 AAC已被广泛支持并应用到各种设备和系统中 YouTube, iPhone, iPod, iPad, Nintendo DSi, Nintendo 3DS, iTunes, DivX Plus Web Player and PlayStation 3. It is supported on PlayStation Vita, Wii (with the Photo Channel 1.1 update installed), Sony Walkman MP3 series and later, Android and BlackBerry等等。 1997年,AAC第一次出现在标准MPEG-2 Part 7,(ISO/IEC 13818-7:1997)。和视频CODEC标准类似,AAC在MPEG-2 Part

音视频与直播

走远了吗. 提交于 2020-02-09 00:04:18
音视频与直播 万人直播架构 直播产品种类 泛娱乐化直播 实时互动直播 泛娱乐化直播架构 实时互动直播架构 CDN网络 CDN网络为了解决用户访问网络资源慢而出现的。 为什么访问慢: 访问链路长,比如从中国北部到南部 人为因素,运营商切割,电信用电信,联通用联通 CDN构成 边缘节点:用户从边缘节点上获取数据,让用户访问链路变短 二级节点:主干网节点,主要用于缓存,减轻源站压力 源站:CP(内容供应方)将内容放到源站 CDN网络架构 搭建直播系统 常用工具 ffmpeg webrtc ffplay:播放器 flashplayer:播放rtmp 搭建流媒体服务 准备流媒体服务器 编译并安装 Nginx 服务 配置 RTMP 服务并启动 Nginx 服务 音频知识 声音三要素 音调:就是音频,男生 < 女生 < 儿童 音量:振动的幅度 音色:与材质有很大的关系,本质是谐波 音量与音调 音色(音品) 心里声学原理 人类听觉范围 音频压缩可以只留下可听声波数据 听觉/发生范围 人的正常说话,蝙蝠听不到。 音频量化与编码 音频量化过程 量化基本概念: 采样大小:一个采样用多少个bit存放,常用的是16bit 采样率:采样频率8k、16K、32K、44.1K、48K 声道数:单声道、双声道、多声道 码率计算 一个PCM音频流的码率:采样率 * 采样大小 * 声道数 例如: 采样率为44.1KHz

关于视频的一些概念

南楼画角 提交于 2020-02-05 00:42:18
http://www.samirchen.com/video-concept/ 关于视频的一些概念 2016-01-28 视频相关概念 视频文件格式 文件格式这个概念应该是我们比较熟悉的,比如我们常见的 Word 文档的文件格式是 .doc ,JPG 图片的文件格式是 .jpg 等等。那对于视频来说,我们常见的文件格式则有: .mov 、 .avi 、 .mpg 、 .vob 、 .mkv 、 .rm 、 .rmvb 等等。文件格式通常表现为文件在操作系统上存储时的后缀名,它通常会被操作系统用来与相应的打开程序关联,比如你双击一个 test.doc 文件,系统会调用 Word 去打开它。你双击一个 test.avi 或者 test.mkv 系统会调用视频播放器去打开它。 同样是视频,为什么会有 .mov 、 .avi 、 .mpg 等等这么多种文件格式呢?那是因为它们通过不同的方式实现了视频这件事情,至于这个不同在哪里,那就需要了解一下接下来要说的「视频封装格式」这个概念了。 视频封装格式 视频封装格式,简称视频格式,相当于一种储存视频信息的容器,它里面包含了封装视频文件所需要的视频信息、音频信息和相关的配置信息(比如:视频和音频的关联信息、如何解码等等)。一种视频封装格式的直接反映就是对应着相应的视频文件格式。 下面我们就列举一些文件封装格式: AVI 格式 ,对应的文件格式为

ffmpeg命令详解(转)

谁都会走 提交于 2020-01-18 05:14:14
摘自:https://www.cnblogs.com/AllenChou/p/7048528.html FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。[百度百科] ffmpeg使用语法 ffmpeg使用语法: ffmpeg [[options][`-i' input_file]]... {[options] output_file}... 如果没有输入文件,那么视音频捕捉就会起作用。 作为通用的规则,选项一般用于下一个特定的文件。如果你给 –b 64选项,改选会设置下一个视频速率。对于原始输入文件,格式选项可能是需要的。 缺省情况下,ffmpeg试图尽可能的无损转换,采用与输入同样的音频视频参数来输出。 3.选项 a) 通用选项 -L license -h 帮助 -fromats 显示可用的格式,编解码的,协议的。。。 -f fmt 强迫采用格式fmt -I filename 输入文件 -y 覆盖输出文件 -t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持 -ss position

ffmpeg参数说明

独自空忆成欢 提交于 2020-01-17 02:29:30
ffmpeg.exe -i F:\慶哥\慶哥之歌.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\11.flv ffmpeg -i F:\01.wmv -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\test.flv 使用-ss参数 作用(time_off set the start time offset),可以从指定时间点开始转换任务。如: 转换文件格式的同时抓缩微图: ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg' 对已有flv抓图: ffmpeg -i "test.flv" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg' -ss后跟的时间单位为秒 Ffmpeg转换命令 ffmpeg -y -i test.mpeg -bitexact -vcodec h263 -b 128 -r 15 -s 176x144 -acodec aac -ac 2 -ar 22500 -ab 24 -f 3gp test.3gp 或者 ffmpeg -y -i test.mpeg -ac 1 -acodec amr_nb -ar 8000 -s 176x144 -b