解复用实现原理

解复用是多媒体开发中核心的功能。

解复用功能是从音视频信号源中分流出不同的音频和视频流;另外解复用一般属于一种主动操作,即从音视频信号源中取出。

数据流结构为Source->Demux->Stream

主要实现模式有:

1)直接模式:直接从信号源获取相应的音频或者视频数据。这种方式适合顺序读取和拥有帧位置元数据等信号源。

使用这种模式,实际是从Demux中直接获取数据,当然也可以从Stream,然后间接调用Demux获取。

2)索引模式:直接模式中如果不包含帧位置元数据的信息(或者收录的实时流文件),就不能进行seek。

为解决该问题,可在文件解析过程中,对音频或者视频流分别建立索引。使用这种模式,Demux在解析完数据后的功能弱化,获取数据实际是Source->Stream。

3)缓存模式:解复用音视频数据,分别进行缓存,然后通过相应数据流接口获取数据。网络流的解复用使用该种模式。

使用这种模式,Source->Demux->Stream。

解复用实现原理

时间: 2024-08-04 06:23:12

解复用实现原理的相关文章

【java项目实践】详解Ajax工作原理以及实现异步验证用户名是否存在+源码下载(java版)

一年前,从不知道Ajax是什么,伴随着不断的积累,到现在经常使用,逐渐有了深入的认识.今天,如果想开发一个更加人性化,友好,无刷新,交互性更强的网页,那您的目标一定是Ajax. 介绍 在详细讨论Ajax是什么之前,先让我们花一分钟了解一下Ajax做什么.如图所示: 如上图展示给我们的就是使用Ajax技术实现的效果.伴随着web应用的越来越强大而出现的是等待,等待服务器响应,等待浏览器刷新,等待请求返回和生成新的页面成为了程序员们的最最头疼的难题.随着Ajax的出现使web应用程序变得更完善,更友

mux复用 demux解复用

保存音频包: 直接输出解复用之后的的音频数据码流.只需要在每次调用av_read_frame()之后将得到的音频的AVPacket存为本地文件即可. 但在分离AAC码流的时候,直接存储AVPacket后的文件可能是不能播放的. 分离H.264码流的时候,直接存储AVPacket后的文件可能是不能播放的. 复用格式是FLV,MP4等,直接存储后的文件是不能播放的. 因为FLV,MP4这些属于“特殊容器”.经过仔细对比后发现,调用av_read_frame()后得到的AVPacket里面的内容是AA

MpegTS流解复用程序实现(解复用得到PES和ES)

MpegTS基础看这几篇博文: MpegTS基础 MpegTS之TS,PES,ES结构分析 TS流复用和解复用是一个相逆的过程.TS解复用得到的是音视频的PES裸流.一般来讲,每个TS包的长度是188个字节,也有一种204个字节的,就是在每个包后面加上16个字节的RS冗余校验信息.在这里分析188个字节的情况,其余的都类似了. 从文件中循环读取188个字节的包,然后对包进行逐字节分析,分析流程如下: TS包的标志是首字节以0x47开头 如下图是一个ts包: 按位解析,得到pid,flag,错误标

波分复用(WDM)系统中的复用/解复用器件(MUX/DEMUX)

波分复用WDM(Wavelength Division Multiplexing)是将一系列携带各种信息的不同波长的光载波信号,在发送端经过合波器(Multiplexer)汇合在一起并耦合到同一根光纤中进行传输,而在接收端经分波器(Demultiplexer)将各种波长的光信号分离出来.这种在同一根光纤中同时传输两个或众多不同波长光信号的技术,就称为波分复用,即WDM.WDM技术可以让单根光线的传输容量倍增,可很方便的在现有光网络中扩展容量.根据传输信号的方向,WDM可用作复用或解复用. 复用器

CDN技术详解及实现原理

CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精华放上网.公诸同好. 第一章    引言    “第一公里”是指万维网流量向用户传送的第一个出口,是网站服务器接入互联网的链路所能提供的带宽.这个带宽决定了一个 网站能为用户提供的访问速度和并发访问量.如果业务繁忙,用户的访问数越多,拥塞越严重,网站会在最需要向用户提供服务时失去用户.(还有“中间一公里” 和

BadVPN详解之--组网原理剖析

这可能是第一篇关于BadVPN原理的中文介绍,所以我恪守职责,希望能将BadVPN的原理阐述清楚,而不仅仅是为了欺世盗名取天下之先. 序:格尔上市 这一段插在这里有点突兀,与BadVPN无关,只是我的一点实感,忽略即可.       明天小小要去厦门演出,今天是什么日子?是小小准备且出发的日子.但是同样在今天,也就是2017年4月21日(写完本文时估计已经到了22日...),上海格尔软件股份有限公司成功上市了.也许你不知道这个公司,确实这公司的业务是很小众,不像BAT布局那般宏大,但这并不意味着

KVC方法详解与实现原理

KVC提供了一种在运行时而非编译时动态访问对象属性与成员变量的方式,该方法不需要调用get和set方法和变量实例就可以访问对象,KVC默认的实现方法有NSOject提供,这种方法及支持对象也支持简单数据类型. 第一.在OC中访问变量的几种方式: 1.设置为public型,通过->直接访问: 代码为: @interface Book : NSObject { @public NSString *name; } Book *book=[[Bookalloc]init]; book->[email 

聚类之详解FCM算法原理及应用

(一)原理部分 模糊C均值(Fuzzy C-means)算法简称FCM算法,是一种基于目标函数的模糊聚类算法,主要用于数据的聚类分析.理论成熟,应用广泛,是一种优秀的聚类算法.本文关于FCM算法的一些原理推导部分介绍等参考下面视频,加上自己的理解以文字的形式呈现出来,视频参考如下,比较长,看不懂的可以再去看看: FCM原理介绍 FCM分析1 FCM分析2 FCM分析3 首先介绍一下模糊这个概念,所谓模糊就是不确定,确定性的东西是什么那就是什么,而不确定性的东西就说很像什么.比如说把20岁作为年轻

初级游戏外挂编程详解 windows运行原理+游戏辅助编程 游戏外挂编程

详解游戏辅助编程 [目录] 1-什么是Windows API 2-Windows进程 3-Windows 的内存的运行原理 4-windows 中句柄的概念 5-Windows的变量类型 6-辅助实现的原理 7-编程实现游戏辅助 8-怎样查找内存地址 9-总结 准备软件:VC,CheatEngineer5.5 学习这部分内容,你必须要掌握C语言的基础知识,非常基础的语法就行了.这篇文章的内容适合刚开始接触编程的人,高手请飘过. [1]什么是windows API Windows API 中文翻译