当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]video track +---------------+ frame +--------------++--------------->| Video Decoder |------------->| Video Output || +---------------+ +--------------++-------

video track +---------------+ frame +--------------+

+--------------->| Video Decoder |------------->| Video Output |

| +---------------+ +--------------+

+----------+ +-----+-----+

|DataSource|---->| Demuxer |

+----------+ +-----+-----+

| +------------------+ +--------------+

+--------------->| Audio Decoder |------------->| Audio Output |

audio track +---------------+ PCM +--------------+

1、根据上面的数据流程图,我们大致可以将音视频播放分为4大模块:DataSource、Demuxer(Parser)、Decoder、Output;

主要流程:

播放器从DataSource获取媒体数据,通过Demuxer分离音视频轨道,分别送到相应的音视频解码器,最后将解码后的数据输出到音视频设备。

各部分说明:

DataSource:数据源包括本地SDcard中的音视频文件,也包括网络数据源,比如:http、http live、RTSP/RTP...,DataSource的作用是将把数据源抽象出来,为下一个demux模块提供它需要的稳定的数据流。 DataSource为Demuxer提供原始数据。

Demuxer:Parser模块,主要是对各种媒体文件的解析,视频文件一般情况下都是按照一定的音视频容器把音视频的流交织在一起。现在有很多不同的容器格式。如ts、mp4、flv、mkv、avi、rmvb等等。demux的功能就是把音视频的数据帧从容器中剥离出来,然后分别送到不同的解码器中。其实音频和视频本身就是2个独立的子系统。容器把它们包在了一起。但是他们都是独立解码的,所以解码之前,需要把它分别分离出来。demux就是干这活的,他为下一步decoder解码提供了数据流。

Decoder:解码器--播放器的核心模块。分为音频和视频解码器。影像在录制后, 原始的音视频都是占用大量空间, 而且是冗余度较高的数据. 因此, 通常会在制作的时候就会进行某种压缩 ( 压缩技术就是将数据中的冗余信息去除数据之间的相关性 ). 这就是我们熟知的音视频编码格式, 包括MPEG1(VCD)、MPEG2(DVD)、MPEG4、H.264 等等. 音视频解码器的作用就是把这些压缩了的数据还原成原始的音视频数据. 当然, 编码解码过程基本上都是有损的 .解码器的作用就是把编码后的数据还原成原始数据。视频对于的视频frame,比如(YUV420/RGB),音频的原始数据即:PCM;解码出来的数据会依次的分发到相应的输出设备。

Output:音视频的输出设备;

音频输出设备:扬声器speaker,听筒earpiece,耳机headset,蓝牙耳机,hdmi等

视频输出设备:显示屏

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

尽管Linux系统在IT世界中随处可见,但是对Linux需要一定的了解,无论他们是使用哪种语言的程序员。下面,千锋展示了最新的视频教程,以便初学者可以快速入门。

关键字: Linux 技术教程 测试环境 视频教程

如果要在Linux上的Eclipse中开发Java项目,则可以从其他位置访问该项目。 您可以从远程桌面使用teamviewer运行Linux计算机,但这可能很慢。 您也可以从普通的ssh终端编辑,编译和运行Java项目。...

关键字: eclipse java Linux 技术教程

作为Linux爱好者,我不能说我是Linux世界中的老司机,但也算是半个老司机了。我最开始了解Linux是在校园里。教授教我们如何在Windows下使用虚拟机创建环境, 然后安装Linux。我在校园里首先学到的是Red...

关键字: box Linux virtual vmware Windows 技术教程 workstation

好奇开发人员使用哪些Linux命令吗? 有什么技巧呢? 让我们带你走进程序开发人员的日常工作吧。

关键字: Linux 技术教程 localhost sudo

纯单片机干不了大事,必须得配上各种外设,那么了解单片机与传感器之间的数据通信就显得必不可少了。常见的单片机数据通信方式有SPI,IIC,RS232,单总线等等。每种通信方式都有相应的时序图,分析时序图并完成代码的编写是单...

关键字: 单片机 总线传输 技术教程 时序图

隔离可防止系统两个部分之间的直流电和异常的交流电,但仍然支持两个部分之间的信号和电源传输。隔离通常能够阻止电气组件或人员遭受危险电压和电流浪涌的伤害;用于保护人员的隔离称为增强型隔离。I2C已成为许多系统中流行的全球标准...

关键字: i2c 总线 技术教程 隔离器

串行接口常用于芯片至芯片和电路板至电路板之间的数据传输。随着系统带宽不断增加至多吉比特范围,并行接口已经被高速串行链接。

关键字: FPGA 技术教程 接口 通信

定时器是单片机的重要功能模块之一,在检测、控制领域有广泛应用。定时器常用作定时时钟,以实现定时检测,定时响应、定时控制,并且可以产生ms宽的脉冲信号,驱动步进电机。

关键字: 51单片机 中断 定时器 技术教程

智能家居在当下可是很受欢迎的存在,说道智能,当然离不开网络,那么智能家居中的设备是如何连接到互联网的呢?今天我就带你认识一下使用比较广泛的wifi模块-----ESP8266

关键字: esp8266 wifi模块 技术教程 无线
关闭
关闭