音频解码

浅谈网络语音技术

↘锁芯ラ 提交于 2020-02-17 18:27:58
浅谈网络语音技术 当我们使用像Skype、QQ这样的工具和朋友流畅地进行语音视频聊天时,我们可曾想过其背后有哪些强大的技术在支撑?本文将对网络语音通话所使用到的技术做一些简单的介绍,算是管中窥豹吧。 一.概念模型 网络语音通话通常是双向的,就模型层面来说,这个双向是对称的。为了简单起见,我们讨论一个方向的通道就可以了。一方说话,另一方则听到声音。看似简单而迅捷,但是其背后的流程却是相当复杂的。我们将其经过的各个主要环节简化成下图所示的概念模型: 这是一个最基础的模型,由五个重要的环节构成:采集、编码、传送、解码、播放。 1.语音采集 语音采集指的是从麦克风采集音频数据,即声音样本转换成数字信号。其涉及到几个重要的参数:采样频率、采样位数、声道数。 简单的来说:采样频率,就是在1秒内进行采集动作的次数;采样位数,就是每次采集动作得到的数据长度。 而一个音频帧的大小就等于:(采样频率×采样位数×声道数×时间)/8。 通常一个采样帧的时长为10ms,即每10ms的数据构成一个音频帧。假设:采样率16k、采样位数16bit、声道数1,那么一个10ms的音频帧的大小为:(16000*16*1*0.01)/8 = 320 字节。计算式中的0.01为秒,即10ms。 2.编码 假设我们将采集到的音频帧不经过编码,而直接发送,那么我们可以计算其所需要的带宽要求,仍以上例:320*100

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

FFmpeg解码音频代码

时光怂恿深爱的人放手 提交于 2020-02-05 10:38:38
工程请访问 DecodeTest 。用c++写的,使用FFmpeg-4.1.0。比较完善的是OfficalDecodeAudio.cpp,它是我研究了一下ffplay.c的源码得来的。该代码按照统一的44.1kHz、双声道、16位int去解码音频文件。通常的wav、mp3、FLAC、aac、m4a、ogg等文件都可以解码。 既然提到了代码,还是稍微讲解一下。 对于FFmpeg,解码并不是每个AVPacket都能得到一个AVFrame。因此,有时候可能你给了codec一个packet,但codec并不能立马给出一个frame,它需要更多的packet来解码。同样的,也可能存在的情况就是codec已经满了,需要你先读取frame才能继续喂packet。换句话说,有时候多个packet才能得到一个frame,有时候一个packet可以产生多个frame,因此最好是根据api的返回值决定流程。不光是codec,对于重采样SwrContext也是一样的。 运行之前需要按照 FFmpeg wiki 上面指示的去安装FFmpeg以及相关的依赖。安装FFmpeg有两种方式,一种是使用包安装器去安装,另一种是自己手动编译。我是自己在macOS上手动编译FFmpeg的,不过尽管如此,对于依赖我也是直接使用brew安装的。wiki中有这一篇章,里面详解了如何安装和编译FFmpeg。 来源: CSDN

关于视频的一些概念

南楼画角 提交于 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 格式 ,对应的文件格式为

h264和aac封装flv

ⅰ亾dé卋堺 提交于 2020-02-04 00:34:15
flv格式解析 FLV是一个二进制文件,简单来说,其是由一个文件头(FLV header)和很多tag组成(FLV body)。tag又可以分成三类:audio,video,script,分别代表音频流(0x8),视频流(0x9),脚本流(0x12),而每个tag又由tag header和tag data组成。 flv官方标准文档 分析之前推荐一个flv分析工具: flv分析工具 工具的使用说明和出处: 使用说明 以一个具体的flv文件为例具体分析: 文件头由9bytes组成: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kbntqCE6-1580714898238)(https://i.loli.net/2020/01/20/SADYzaEdRkWUGQ9.png)] 前3个bytes是文件类型,总是“FLV”,也就是(0x46 0x4C 0x56)。第4btye是版本号,目前一般是0x01。第5byte是流的信息,倒数第一bit是1表示有视频(0x01),倒数第三bit是1表示有音频(0x4),有视频又有音频就是0x01 | 0x04(0x05),其他都应该是0。最后4bytes表示FLV 头的长度,3+1+1+4 = 9。 FLV header后面就是FLV body,FLV body中包含很多个FLV tag,tag的分类有三种

iOS - 直播流程,视频推流,视频拉流,简介,SMTP、RTMP、HLS、 PLPlayerKit

隐身守侯 提交于 2020-01-19 01:54:02
收藏笔记 1 . 音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示 1、数据采集: 摄像机及拾音器收集视频及音频数据,此时得到的为原始数据 涉及技术或协议: 摄像机:CCD、CMOS 拾音器:声电转换装置(咪头)、音频放大电路 2、数据编码: 使用相关硬件或软件对音视频原始数据进行编码处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据 涉及技术或协议: 编码方式:CBR、VBR 编码格式 视频:H.265、H.264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等 音频:G.711μ、AAC、Opus等,封装有MP3、OGG、AAC等 3、数据传输: 将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输 涉及技术或协议: 传输协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等 控制信令:SIP和SDP、SNMP等 4、解码数据: 使用相关硬件或软件对接收到的编码后的音视频数据进行解码,得到可以直接显示的图像/声音 涉及技术或协议: 一般对应的编码器都会带有相应的解码器,也有一些第三方解码插件等 5、播放显示: 在显示器(电视、监视屏等)或扬声器(耳机、喇叭等)里,显示相应的图像画面或声音

iOS - 直播总结(理论到实践)

坚强是说给别人听的谎言 提交于 2020-01-19 01:05:59
一、直播原理及流程 1.一个完整直播app原理 直播原理 :把主播录制的视频,推送到服务器,在由服务器分发给观众观看。 直播环节 :推流端(采集、美颜处理、编码、推流)、服务端处理(转码、录制、截图、鉴黄)、播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞) 2.直播app实现流程 1.采集、2.滤镜处理、3.编码、4.推流、5.CDN分发、6.拉流、7.解码、8.播放、9.聊天互动 直播流程.png 3.直播app架构 直播架构.png 4.直播app技术点 二、直播基础知识介绍: 1.采集视频、音频 * 1.1 采集视频、音频编码框架 * AVFoundation :AVFoundation是用来播放和创建实时的视听媒体数据的框架,同时提供Objective-C接口来操作这些视听数据,比如编辑,旋转,重编码 * 1.2 视频、音频硬件设备 * CCD :图像传感器: 用于图像采集和处理的过程,把图像转换成电信号。 拾音器 :声音传感器: 用于声音采集和处理的过程,把声音转换成电信号。 音频采样数据 :一般都是PCM格式 视频采样数据 : 一般都是 YUV ,或 RGB 格式,采集到的原始音视频的体积是非常大的,需要经过压缩技术处理来提高传输效率 2.视频处理(美颜,水印) 视频处理原理 :因为视频最终也是通过GPU,一帧一帧渲染到屏幕上的,所以我们可以利用OpenGL

如何快速的开发一个完整的iOS直播app(原理篇)

别来无恙 提交于 2020-01-19 01:04:27
目录 【如何快速的开发一个完整的iOS直播app】(原理篇) 【如何快速的开发一个完整的iOS直播app】(播放篇) 【如何快速的开发一个完整的iOS直播app】(采集篇) 前言 大半年没写博客了,但我一直关注着互联网的动向,最近会研究很多东西,并分享,今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,整理了直播的原理,当前只是原理篇,后续会持续发布实战篇,教你从零开始搭建一个完整的iOS直播app,希望能帮助到更多的人更快的了解直播。 一、个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的。 直播易:已经有各个领域的大牛,封装好了许多牛逼的框架,我们只需要用别人写好的框架,就能快速的搭建一个直播app,也就是传说中的站在大牛肩膀上编程。 二、了解直播 热门直播产品 映客,斗鱼,熊猫,虎牙,花椒等等 直播效果图 1.一个完整直播app功能(来自落影loyinglin分享) 1、聊天 私聊、聊天室、点亮、推送、黑名单等; 2、礼物 普通礼物、豪华礼物、红包、排行榜、第三方充值、内购、礼物动态更新、提现等; 3、直播列表

iOS:app直播---原理篇

懵懂的女人 提交于 2020-01-19 01:03:52
【如何快速的开发一个完整的iOS直播app】(原理篇) 转载自简书@ 袁峥Seemygo : http://www.jianshu.com/p/7b2f1df74420 一、个人见解(直播难与易)   直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的。   直播易:已经有各个领域的大牛,封装好了许多牛逼的框架,我们只需要用别人写好的框架,就能快速的搭建一个直播app,也就是传说中的站在大牛肩膀上编程。 二、了解直播    热门直播产品:映客、斗鱼、熊猫、虎牙、花椒等等   直播效果图         直播效果.jpeg 1.一个完整直播app功能(来自 落影loyinglin 分享) 1、聊天 私聊、聊天室、点亮、推送、黑名单等; 2、礼物 普通礼物、豪华礼物、红包、排行榜、第三方充值、内购、礼物动态更新、提现等; 3、直播列表 关注、热门、最新、分类直播用户列表等; 4、自己直播 录制、推流、解码、播放、美颜、心跳、后台切换、主播对管理员操作、管理员对用户等; 5、房间逻辑 创建房间、进入房间、退出房间、关闭房间、切换房间、房间管理员设置、房间用户列表等; 6、用户逻辑 普通登陆、第三方登陆、注册、搜索、修改个人信息