Multimedia-播放器-架构1

news2024/11/19 6:23:56

目录

引言

概念

播放器

播放器的工作流程

播放器的架构

IO模块

Parser&Demuxer模块

Decoder模块

渲染模块

小结


引言

什么是播放器?

播放器是做什么的?怎么做的?

概念

播放器

可以指软件,也可以指硬件
软件:是指能够播放以数字信号形式存储的视频或音频文件的软件
硬件:是指具有播放视频或者音频文件功能的电子产品

不管软件还是硬件,数字播放器基本都是一样的流程和原理。

播放器的工作流程

1)读取-》音视频文件或者媒体流:
2)解析-》把文件或者媒体流里面的信息(metadata)和音视频数据(audio/video data)解析出来,
3)渲染-》把数据信息通过扬声器或者屏幕展示出来

播放器的架构

IO:读取文件。从数据源读取数据有多种标准协议
Parser & Demuxer:解封装。音视频数据的封装格式,都有着各种业界标准,只需要参考这些行业标准文档
Decoder:解码。只不过更多的是负责对压缩的音视频数据进行解码,拿到原始的 YUV 和 PCM 数据
Render:绘制和渲染,是一个平台相关的特性,不同的平台有不同的渲染 API 和方法

IO模块

从URL源地址获取到字节码数据,具体流程如下:

从实现框架图可以看出:源文件可以是本地的文件,也可以是网络的文件。IO模块的工作主要工作就是解传输协议,就是用对应的协议获取到文件数据流。

Parser&Demuxer模块

从IO模块输出的流媒体字节数据传入解析器模块解析出音频和视频 包数据

Parser&Demuxer解析器的主要工作内容就是解封装,就是将流媒体的字节数据按照封装协议进行解析出音视频的数据包。

Decoder模块

把解封装后得到的数据包,按照解压缩编码解析出原始的音视频原始数据

那么,就可以知道Decoder是做解压缩,就是把数据包按照音视频的压缩编码协议,解析出原始的音视频数据

渲染模块

把原始的音视频数据通过渲染器,输出到对应的显示和声音通道

对于视频数据而言,就是把视频数据渲染到显示缓存,由显示器刷新显示出来

对于音频数据而言,就是把音频数据通过功放,DA转换到喇叭输出声音

这就是播放器的基本工作原理和流程了。

小结

软件或者硬件的数字音频播放器处理音视频的流程就是:获取到数字化的音视频文件,通过解文件传输协议,解封装,解压缩,把音频数据渲染到显示器,把音频数据输出到喇叭,完成音视频数据的播放。

播放器技术分享(1):架构设计_51CTO博客_音频播放器设计

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

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

相关文章

代码随想录算法训练营之JAVA|第四十一天|139. 单词拆分

今天是第 天刷leetcode,立个flag,打卡60天。 算法挑战链接 139. 单词拆分https://leetcode.cn/problems/word-break/ 第一想法 看完之后完全没有想法。 看完代码随想录之后的想法 这是一个完全背包的问题,使用完全背包的解法。 单词就…

「C++程序设计 (面向对象进阶)」学习笔记・一

0、引言 本专栏的系列文章是在学习 北京邮电大学 崔毅东 老师的《C程序设计 (面向对象进阶)》课程过程中整理的。欢迎前往专栏了解更多相关内容~ 😀 有关于现代 C 的基本介绍,请前往《现代C基本介绍》! 🔔 先决条件 本专栏的系列…

微信小程序发布一个npm包

参考:https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html 同npm一样流程 npm install weixin_heath_apis

gRPC-Gateway 快速实战

今天来分享一波 gRPC-Gateway , 之前咱们有分享过什么是 gRPC 及其使用方式,可以看看这些关于 gRPC 的历史文章: gRPC介绍 gRPC 客户端调用服务端需要连接池吗? gRPC的拦截器 gRPC的认证 分享一下 gRPC- HTTP网关 I 今天主要是分…

大门设得好,财旺运也旺

大门作为我们家庭里一扇保护家人的屏障,可以说是非常重要的,它不仅能起到安全作用,在风水上也是非常关键的。大门在风水中是财运进气的门道,大门风水的好坏直接影响到房屋的整体风水,好的大门风水可以让主人旺财又旺运…

Jaeger的经典BUG原创

前端,笔者在使用Jaeger进行Trace监控的时候,当数据量增大到一定数量级时,出现了一次CPU暴增导致节点服务器挂了的经典案例,这里对案例进行一个简单的抽象,供大家参考: 首先通过pprof对耗时的函数进行定位&…

华为云CodeArts IDE快速入门和使用详解

华为云CodeArts IDE使用详解 一、用户界面1. 初始界面2. 打开项目界面3. 资源管理器4. 编辑器5. 命令面板6. 扩展应用7. Git管理 二、设置1. 设置编辑器2. settings.json 三、代码编辑1. 快捷操作2. 代码补全 四、RemoteShell1. 添加主机连接 文档参考: 华为云CodeArts IDE文档…

【高级程序设计语言C++】异常与智能指针

1. 异常2. 智能指针2.1. auto_ptr2.2. unique_ptr2.3. shared_ptr2.4. 循环引用2.5. weak_ptr2.6. 定制删除器 1. 异常 当我们编写程序时,可能会遇到各种错误和异常情况,例如除以零、访问无效的内存地址等。为了能够处理这些异常情况,C提供了…

(笔记六)利用opencv进行图像滤波

(1)自定义卷积核图像滤波 import numpy as np import matplotlib.pyplot as plt import cv2 as cvimg_path r"D:\data\test6-6.png" img cv.imread(img_path)# 图像滤波 ker np.ones((6, 6), np.float32)/36 # 构建滤波器(卷积…

Three.js后处理后物体表面出现条纹

初始化 WebGLRenderer 时简单启用 logarithmicDepthBuffer: true 解决了问题。 根据文档,启用可能会导致性能下降,因此请根据您的性能预算考虑使用它。 缩小相机的near和far 后处理对于深度精度非常敏感。大视锥体很快就会使此类 AO 通道变得无法使用 th…

小兔鲜儿 - 微信登录

目录 微信登录​ 登录方式 静态结构​ 获取登录凭证​ 获取手机号码​ 微信登录接口(生产环境) 模拟手机登录(开发环境) 用户信息持久化存储​ 涉及知识点:微信授权登录,文件上传,Store 状态管理等。 微信登录​ 微信小程序的开放…

SpringBoot虚拟路径映射

要求:访问:127.0.0.1/image/下的文件时,自动映射到真实路径:D:Files\。 virtualFileDepositPath: /image/** realityFileDepositPath: C:\Users\xin\Desktop\imgCreate\Files\ import org.springframework.beans.factory.annota…

整理的10个更好用的画图软件,设计绘图必看!

随着设计工作的不断发展,画图也成了设计师日常的设计工作之一,今天本文整理了10个好用的画图软件,能满足设计师的多种画图需求,一起来看看吧! 1、即时设计 即时设计做为一个功能多样的画图软件,不仅可以满…

DPDW01+ 国产锂电池保护电路

描述: DPDW01是一个锂电池保护电路,为避免锂电池因过充电、过放电、电流过大导致电池寿命缩短或电池被损坏而设计的。它具有高精确度的电压检测与时间延迟电路。 主要特点: 工作电流低; 过充检测 4.3V,过充释放 4.0…

Shell - 根据PID过滤进程信息

文章目录 #!/bin/bash #Function: 根据用户输入的PID,过滤出该PID所有的信息 read -p "请输入要查询的PID: " P nps -aux| awk $2~/^$P$/{print $11}|wc -l if [ $n -eq 0 ];thenecho "该PID不存在!!"exit fi echo "…

TikTok成旺季“主战场”,大促节点一览无遗

随着海外短视频的兴起,拥有10亿月活用户的TikTok已经成为旺季大促的主要营销渠道。从TikTok上的话题标签,可以看出用户对节日及大促节点的关注度,借势飙升的话题流量是大促营销的重要方式之一。数据显示,2023上半年的斋月期间&…

【Java 动态数据统计图】动态X轴二级数据统计图思路案例(动态,排序,动态数组(重点推荐:难))八(130)

需求: 1.有一组数据集合,数据集合中的数据为动态; 举例如下: [{province陕西省, city西安市}, {province陕西省, city咸阳市}, {province陕西省, city宝鸡市}, {province陕西省, city延安市}, {province陕西省, city汉中市}, {pr…

飞腾PSPA可信启动--2 数字签名证书

今天继续第二章,数字签名证书的介绍。 此章节录制了讲解视频,可以在B站进行观看:

PMP - 敏捷 3355

三个核心 产品负责人 负责最大化投资回报(ROI),通过确定产品特性,把他们翻译成一个有优先级的列表 为下一个 sprint 决定在这个列表中哪些应该优先级最高,并且不断调整优先级以及调整这个列表 职责是定义需求、定义…

探索软件架构与网络通信协议:构建现代网络应用

文章目录 1. 软件架构:构建应用的基石1.1 C/S架构:客户端/服务器1.2 B/S架构:浏览器/服务器 2. 网络通信协议:构建连接的桥梁2.1 4层模型:数据的分层传输2.2 IP地址与端口号:标识和定位 3. TCP通信&#xf…