首页 > 其他分享 >音视频开发基础知识

音视频开发基础知识

时间:2024-07-12 18:20:40浏览次数:15  
标签:采样 封装 音频 基础知识 OPUS 开发 格式 音视频 压缩

视频解码

  1. 解复用(Demux):解复用也可叫解封装。这里有一个概念叫封装格式,封装格式指的是音视频的组合格式,常见的有 mp4、flv、mkv 等。通俗来讲,封装是将音频流、视频流、字幕流以及其他附件按一定规则组合成一个封装的产物。而解封装起着与封装相反的作用,将一个流媒体文件拆解成音频数据和视频数据等。此时拆分后数据是经过压缩编码的,常见的视频压缩数据格式有 h264。
  1. 解码(Decode):简单来说,就是对压缩的编码数据解压成原始的视频像素数据,常用的原始视频像素数据格式有 yuv。
  1. 色彩空间转换(Color Space Convert):通常对于图像显示器来说,它是通过 RGB 模型来显示图像的,但在传输图像数据时使用 YUV 模型可以节省带宽。因此在显示图像时就需要将 yuv 像素格式的数据转换成 rgb 的像素格式后再进行渲染。
  2. 渲染(Render):将前面已经解码和进行色彩空间转换的每一个视频帧的数据发送给显卡以绘制在屏幕画面上。
 

音频

码率计算:

  • 采样大小:一个采样用多少bit存放,常用的是16bit
  • 采样率:采样频率,常用:8k、16k、32k、44.1k、48k
  • 声道数:单声道、双声道、多声道
  • PCM音频流的码率 = 采样率*采样大小*声道数
  • eg:采样率为44.1kHz,采样大小为16bit,双声道的PCM编码的WAV文件,码率为44.1k*16*2=1411.2kb/s
  • wav格式:音频原始数据格式pcm + wav头部,可认为wav也是音频原始数据,just对pcm做了简单的封装

音频压缩基本概念:

  • 音频压缩技术是在保证信号在听觉方面不产生失真的前提下,对音频数据信号进行尽可能大的压缩
  • 压缩的主要办法是去除采集到的音频冗余信息。所谓冗余信息包括人耳听觉范围外的音频信号<人耳听觉范围:20hz~20000hz>以及被遮蔽掉的音频信号。
  • 信号的遮蔽可以分为频域遮蔽和时域遮蔽

常见的编码器介绍:

  • 常见的音频编码器包括OPUS、AAC、Ogg、Speex、iLBC、AMR、G.711等
  • 其中,AAC在直播系统中应用的比较广泛;OPUS是较新的音频编码器,WebRtc默认使用OPUS
  • 网上测评结果:OPUS > AAC > Ogg
TODO :音频编码具体是怎么做的、MP3是怎么做的封装  

音频重采样:

 

标签:采样,封装,音频,基础知识,OPUS,开发,格式,音视频,压缩
From: https://www.cnblogs.com/lepeCoder/p/18299169

相关文章

  • 深入理解 JavaScript 闭包:前端开发中的重要概念
    闭包是JavaScript中一个非常重要的概念,对于理解和编写高效、灵活的代码至关重要。尽管它看似复杂,但一旦掌握了闭包,你将能够更好地理解JavaScript的函数作用域和变量生命周期。本文将深入探讨JavaScript闭包,帮助你在前端开发中更好地运用这一强大工具。什么是闭包?闭包是指......
  • Neuralink 将启动第二例人类脑机芯片植入;多项 Claude 3.5 Sonnet AI 工具发布丨RTE 开
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,......
  • 基于VGG16特征提取与聚类优化的苹果分类系统开发与性能提升
    数据集链接:https://pan.baidu.com/s/1qQglNzAIkBNxdrwND0NLNQ?pwd=data 提取码:data1.目的任务:根据original_data样本数据,建立模型,对test的图片进行普通/其他苹果判断 1.数据增强,扩充确认为普通苹果的样本数量 2.特征提取,使用VGG16模型提取特征 3.图片批量处理 ......
  • 发布用flask框架开发的python后端程序到windows服务器
    flask框架开发的python后端程序开发好了后,怎么发布到生产环境呢?以app.run()的方式在生产环境上启动服务,当有异常特别容易退出,而且性能很弱。生产环境下,python常见的web部署搭配是nginx+gunicorn。但是这种搭配只适合在Linux环境下。gunicorn不支持windows环境。如果要搭......
  • 连锁门店收银系统源码,可二次开发
    1.多样化线下收银如Windows版收银(exe安装包)、安卓版收银(apk安装包)、AI智能称重收银(exe/安卓安装包)、无人自助收银(apk安装包)、手机端收银(微信小程序版)、聚合码收银(小程序版)。2.收银端ui风格收银端ui风格,门店可以根据自己的喜好去自定义,如天空蓝、高端金、热情红、生鲜绿、......
  • 硬件基础知识——电感
    电感常用公式 感抗:XL=2πfL,频率越小感抗越小,频率越大感抗越大电感能量公式:电感两端电压:磁通量:ψ(psi)为磁通量,N表示线条数,Φ表示磁通量B表示磁感应强度,A是电感的有效截面积。如果电感中流过电流I,会产生磁动势F,特性:阻交通直,阻碍电流的突然变化,当电感饱和之后相当于一条......
  • 【unity开发】怎么下载国际版的unity编辑器版本
    有一天从公司那接手了一个项目,然后发现那个项目的版本我没有,我就去unity官网下载。下载完了发现还是版本不对。仔细一看发现,他们用的版本号末尾少了个"c1"。c1的意思是中国特供版,好像是说有微信api的支持。那么我应该怎么做呢?下面随便一个版本为例子1.点击按钮下载。2.......
  • 轻松选型,高效开发——业务开发集市助您一臂之力
    在当今这个日新月异的时代,高效开发已成为企业保持竞争力的关键。为了满足市场对高效、灵活开发工具的迫切需求,OceanMind海睿思推出业务开发集市。这款开发工具汇集了众多丰富的、高度可定制的控件和组件,以及灵活的模板选型功能,旨在帮助企业快速响应并满足多变的客户需求。通过......
  • Solo 开发者周刊 (第13期):独立开发者的创新集——橘猫、记一杯与Newcar
    这里会整合Solo社区每周推广内容、产品模块或活动投稿,每周五发布。在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解。本杂志开源,欢迎投稿。产品推荐1、橘猫起始页——一款不一样的浏览器标签页功能介绍极简首屏聚合搜索,支持快捷......
  • AI究竟是在帮助开发者还是取代他们?来看大佬的观点你就明白了
    AI(人工智能)在现代社会中扮演着越来越重要的角色,其在软件开发领域的应用也日益广泛。关于AI是在帮助开发者还是取代他们,V哥个人认为,一半一半吧,为什么这么说,先不用噴,我们需要从多个角度来进行分析。AI帮助开发者的现状和机遇提高开发效率:AI可以自动完成代码生成、代码审查......