【音视频】音视频录制、播放原理

一、音视频录制原理

通常,音视频录制的步骤如下图所示:
在这里插入图片描述

  • 我们分别从音频和视频开始采样,通过麦克风和摄像头来接受我们的音频信息和图像信息,这通常是同时进行的,不过,通常视频的采集会比音频的采集慢,因此我们需要对采样后的数据进行同步,也就是对相应的音频帧和视频帧进行同步。通常我们会引入一个时钟作为同步标志,可以是视频作为主时钟,也可以是音频,或者是使用系统时钟作为同步等等,不过在实际中,使用音频作为主时钟比较常见,因为人对音频的感受更为明显。

  • 采集到音频帧和视频帧之后,通常会根据需要对它们做一层处理,比如对音频进行降噪增益调整等操作,而对于视频帧,可以进行例如饱和度调整、锐化等操作。

  • 处理好的音频帧和视频帧会放入分别放入一个队列中,这个队列用于存储临时的帧,以便后续的编码操作。同时队列也有着缓冲区的作用,可以避免采样和编码速度不匹配等情况。

  • 队列中的帧会被取出,用于相应的音频、视频编码,这一步是为了使用特定的格式,如音频的MP3AAC,视频的H264H265。经过压缩后的音视频体积将大大减小,方便后续的传输和存储。

  • 编码后的音视频将放入音频包和视频包队列,等待进一步处理。

  • 接着,从包队列中取出音视频数据,通过复用器对音视频进行封装,也就是使用各种容器包装音视频,如MP4TSAVI

  • 最后,这些特定格式的容器就可以作为文件保存了,也就是我们平常创建的视频文件。

复用器是一个音视频封装的工具,可以将经过编码后的音视频数据包,使用特定的容器格式,如MP4、AVI等,合成一个完整的音视频文件

二、音视频播放原理

音视频播放的步骤通常与录制相反,二者可以看做是各自的逆操作,通常,步骤如下图所示:
在这里插入图片描述

  • 首先我们从系统中读取媒体文件,如(MP4AVI等),文件中通常包含着编码好的音频流和视频流,有时还有字幕流等,那么我们就需要将文件中的这些对应流进行分离,才能进行下一步处理。
  • 我们利用解复用器就可以将媒体文件中的音频和视频数据还原出来,这一步称为音视频解封装
  • 解封装出来的音视频数据将被存放在音频包、视频包队列中,等待后续的解码操作。
  • 从对应的队列中取出数据包,就需要对相应的数据包进行解码,如音频的AACMP3、视频的H264、H264等,通常,解码的难度通常比编码的难度小。解码后的数据包变成了录制时的帧数据,存储在帧队列中,等待后续的渲染操作。
  • 从视频帧和音频队列取出帧之后,如果无需进行特殊处理,我们可以对其进行同步,而同步策略通常以音频作为主时钟。有时,我们还可以将同步策略放在处理帧之后。
  • 最终,处理好的音频和视频帧结果处理和调整,将同步渲染到外部设备中,如扬声器和显示器等,此时的视频才真正被播放出来,经过我们的眼睛和耳朵接收到。

解复用器与录制时的复用器相反,它主要是把封装在一起的音频和视频数据包分离出来,变成独立的音频数据和视频数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解锁养生密码,拥抱健康生活

在快节奏的现代生活中,养生不再是一种选择,而是我们保持活力、提升生活质量的关键。它不是什么高深莫测的学问,而是一系列融入日常的简单习惯,每一个习惯都在为我们的健康加分。 早晨,当第一缕阳光洒进窗户&#xff0c…

7种内外网数据交换方案全解析 哪种安全、高效、合规?

内外网数据交换方案主要解决了企业跨网络数据传输中的安全、效率与合规性问题。通过采用先进的加密技术、高效的数据传输协议以及严格的审批和审计机制,该方案确保了数据在内外网之间的安全交换,同时提高了传输效率,并满足了企业对数据合规性…

【WSL2】 Ubuntu20.04 GUI图形化界面 VcXsrv ROS noetic Vscode 主机代理 配置

【WSL2】 Ubuntu20.04 GUI图形化界面 VcXsrv ROS noetic Vscode 主机代理 配置 前言整体思路安装 WSL2Windows 环境升级为 WIN11 专业版启用window子系统及虚拟化 安装WSL2通过 Windows 命令提示符安装 WSL安装所需的 Linux 发行版(如 Ubuntu 20.04)查看…

监听其他音频播放时暂停正在播放的音频

要实现当有其他音频播放时暂停当前音频,你可以使用全局事件总线或 Vuex 来管理音频播放状态。这里我将展示如何使用一个简单的事件总线来实现这个功能。 首先,你需要创建一个事件总线。你可以在项目的一个公共文件中创建它,例如 eventBus.js…

Android数据库SQLite、Room、Realm、MMKV/DataStore、ObjectBox性能比较

Android主流数据库基础特点核心数据库特性与性能对比维度总结 在 Android 开发中,数据库选型直接影响应用的性能、开发效率和可维护性。不同数据库的存储限制,比如常用的SharedPreferences、SQLite、还有基于SQLite封装的greenDao等,这些似乎…

Solidity study

Solidity 开发环境 Solidity编辑器:Solidity编辑器是一种专门用于编写和编辑Solidity代码的编辑器。常用的Solidity编辑器包括Visual Studio Code、Atom和Sublime Text。以太坊开发环境:以太坊开发环境(Ethereum Development Environment&am…

【废物研究生零基础刷算法】DFS与递归(一)典型题型

文章目录 跳台阶递归实现指数级枚举递归实现排列型枚举上面两题总结 递归实现组合型枚举P1036选数 跳台阶 思路: 如果 n 1,只有一种走法(走 1 级)。如果 n 2,有两种走法(11 或 2)。对于 n &g…

GCC 和 G++的基本使用

GCC 和 G 命令 GCC 和 G 命令GCC(GNU C 编译器)基本用法常用选项示例 G(GNU C 编译器)基本用法常用选项示例 GCC 与 G 的区别选择使用 GCC 还是 G C编译流程1. 预处理(Preprocessing)2. 编译(Co…

HWUI 和 Skia

📌 HWUI 和 Skia 的关系 Skia 是 Android 的底层 2D 图形库,提供 CPU 和 GPU 渲染能力,支持 OpenGL、Vulkan、Metal 等后端。HWUI 是 Android UI 组件的 GPU 渲染引擎,主要用于 加速 View、动画、阴影等 UI 元素的绘制。HWUI 依赖…

编写第一个 C++ 程序 – Hello World 示例

“Hello World”程序是学习任何编程语言的第一步,也是您将学习的最直接的程序之一。它是用于演示编码过程如何工作的基本程序。您所要做的就是在输出屏幕上显示 “Hello World”。 C Hello World 程序 下面是在控制台屏幕上打印 “Hello World” 的 C 程序。 // …

【Python量化金融实战】-第1章:Python量化金融概述:1.1量化金融的定义与发展历程

本小节学习建议:掌握Python编程、统计学(时间序列分析)、金融学基础(资产定价理论)三者结合,是进入量化领域的核心路径。 👉 点击关注不迷路 👉 点击关注不迷路 文章目录 1.1 量化金…

docker部署GPU环境

使用 Docker 部署 GPU 环境涉及到几个关键步骤,以下是详细步骤: 1. 安装 NVIDIA 驱动程序 确保你的系统已经安装了 NVIDIA GPU 驱动。这是使用 GPU 的前提条件。 2. 安装 Docker 和 nvidia-container-toolkit 首先,确保你已经安装了 Docker。然后,安装 NVIDIA Containe…

Pytorch实现之混合成员GAN训练自己的数据集

简介 简介:提出一种新的MMGAN架构,使用常见生成器分布的混合对每个数据分布进行建模。由于生成器在多个真实数据分布之间共享,高度共享的生成器(通过混合权重反映)捕获分布的公共方面,而非共享的生成器捕获独特方面。 论文题目:MIXED MEMBERSHIP GENERATIVE ADVERSARI…

matlab和java混合编程经验分享

最常用的就是可以查到再控制栏deploytool选择library complier打包,但是有问题就是比如果用了外部的求解器比如yalmip或者cplex的话用这个方法会找不到外部的求解器,网上找了很多,基本都大同小异。 后面分享一个亲测有效的打包方法&#xff0…

观成科技:海莲花“PerfSpyRAT”木马加密通信分析

1.概述 在2024年9月中旬至10月,东南亚APT组织“海莲花”通过GitHub发布开源安全工具项目,针对网络安全人员发起了定向攻击。通过对相关攻击活动进行分析,可以将其与一些海莲花的样本关联起来。这些样本的通信数据结构与海莲花此前使用的攻击…

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(一)

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(一) 第一部分:网络平台搭建与设备安全防护任务书DCRS:DCFW:DCWS:WAF: 第二部分:网络安全事件响应、数字取证调查、应用程序安全任务书任务 1&…

2月25(信息差)

🌍四川省人民医院接入DeepSeek 将AI技术应用于看病全流程 🎄机器人新风口!OpenAI押注公司 采用这种新材料 更轻盈耐磨!尼龙概念股名单 ✨小米15 Ultra、小米SU7 Ultra定档2月27日 雷军宣布:向超高端进发 1.深夜王炸&…

全面汇总windows进程通信(三)

在Windows操作系统下,实现进程间通信(IPC, Inter-Process Communication)有几种常见的方法,包括使用管道(Pipe)、共享内存(Shared Memory)、消息队列(Message Queue)、命名管道(Named Pipe)、套接字(Socket)等。本文介绍如下几种: RPC(远程过程调用,Remote Pr…

【栈与队列】二叉树最大宽度

文章目录 662. 二叉树最大宽度解题思路:队列 广度搜索 662. 二叉树最大宽度 662. 二叉树最大宽度 ​ 给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 ​ 树的 最大宽度 是所有层中最大的 宽度 。 ​ 每一层的 宽度 被定义为该层最左和最右的非…

大语言模型安全测试:WDTA 标准下的全面解读与实践展望

1.前言 在人工智能(AI)飞速发展的时代,大语言模型(LLM)凭借其强大的语言理解和生成能力,广泛应用于智能客服、智能写作、智能翻译等众多领域,深刻改变着人们的生活和工作方式。然而&#xff0c…