音视频技术
__cc__
这个作者很懒,什么都没留下…
展开
-
WebRTC源码分析三:视频处理流程
文本介绍视频的处理流程。图1中显示了两路视频会话视频信号流过程。以一路视频会话为例,主要分为以下几个线程:1)视频源产生线程:Camera生产视频画面,封装成视频帧,以一定帧率投递到下一个模块。;2)采集线程:由Capturer负责采集视频帧,并对视频帧进行一定处理,如调整画面亮度。并送入各个发送链路的编码模块编码并发送出去;3)接收线程:Rtp/Rtcp负责接收RTP/R原创 2014-02-19 11:32:17 · 12848 阅读 · 5 评论 -
时间戳杂谈(二)
时间戳由时间基准和时间戳值组成。时间基准:对时间单位(s)划分的标准。例如,1/25表示每秒分为25个单位,每个单位时间间隔包含1个单位。3001/90000表示每秒分为90000单位,每个单位时间间隔包含3001个单位。时间戳值:基于时间基准的时间表示,也即多少个单位时间间隔。1)时间戳的作用是用于精确标记音视频流的相对位置和持续时间。2)基于时间基准使用时间戳,原创 2014-07-28 18:05:21 · 4044 阅读 · 1 评论 -
解复用实现原理
解复用是多媒体开发中核心的功能。解复用功能是从音视频信号源中分流出不同的音频和视频流;另外解复用一般属于一种主动操作,即从音视频信号源中取出。数据流结构为Source->Demux->Stream主要实现模式有:1)直接模式:直接从信号源获取相应的音频或者视频数据。这种方式适合顺序读取和拥有帧位置元数据等信号源。使用这种模式,实际是从Demux中直接获取数据,当然也可以从Str原创 2014-07-28 16:18:48 · 9487 阅读 · 0 评论 -
数据流同步控制策略
数据流同步控制策略 数据处理过程实际就是数据流控制过程,在数据流控制过程中,如何确保模块之间的同步显得尤为重要。数据流同步控制策略主要有以下两种方式,如图1所示。1)数据同步:如图上部分所示。多采用FIFO队列实现,一般会使用信号量或者事件来同步,另外还会通过定时辅助优点:消耗系统资源较少,属于比较自然的协调方式。缺点:如果划分模块耗时不原创 2014-03-07 18:12:59 · 4551 阅读 · 1 评论 -
VLC播放引擎架构
VLC虽然是用c代码实现的,但是在代码编写上遵循了面向对象原则,易修改和扩展。不过实话实说,结构之间的关联太过于频繁,理解上还是不太容易。如果能够改成c++那是最好不过了。 对于媒体播放器,肯定离不开解复用,解码,音频和视频输出这四个模块,不管是DirectShow,还是VLC,或者自己要开发一个播放器,都是如此。媒体播放器的差异主要存在于模块之间的通信方式,界面消息处理上。Di原创 2014-03-04 15:03:10 · 5269 阅读 · 0 评论 -
时间戳杂谈
参考时钟与时间戳处理1、参考时钟 用于作为系统的唯一参考,一般以系统启动时间开始计时,具体数值影响不大,主要是做一个比较和参考作用。参考时钟设计时主要保证稳定性,尽量不产生时钟偏移。2、时间戳时间戳有两种,1)同步时间戳 之所以称为同步,其作用是同步多个流之间的操作,如果只有一个流,显然这个时间戳是没有意义的。一般通常用于音频和视频的同步播放。原创 2014-02-20 16:28:55 · 3166 阅读 · 0 评论 -
WebRTC源码分析四:视频模块结构
本文在上篇的基础上介绍WebRTC视频部分的模块结构,以进一步了解其实现框架。一、对外接口 对外接口有ViEBase,ViECapture,ViECodec,ViEEncryption,ViEFile,ViEImageProcess,ViENetwork,ViERender和ViERTP_RTCP。主要接口有:1)ViEBase:负责创建和管理视频会话链路;2)ViEC原创 2014-02-19 16:12:06 · 10677 阅读 · 1 评论 -
WebRTC源码分析二:音频模块结构
本文介绍WebRTC音频模块组成和结构,详细介绍音频引擎的配置和启动,相信看完本文后,很多人可以利用webRTC完成一个音频通话程序开发。一、对外接口 音频部分的对外主要接口如下,各个接口之间的关系如图1所示。1)VoiceEngine:负责引擎的所有接口查询,存储共享数据信息ShareData。2)VoEBase:负责音频处理的基本操作。3)VoEAudioProc原创 2014-02-17 17:44:30 · 18661 阅读 · 4 评论 -
WebRTC源码分析一:音频处理流程
本文概要介绍webRTC的音频处理流程,见下图:webRTC将音频会话抽象为一个通道Channel,譬如A与B进行音频通话,则A需要建立一个Channel与B进行音频数据传输。上图中有三个Channel,每个Channel包含编解码和RTP/RTCP发送功能。以一个Channel而言,应用程序中将包含三个活动线程,录音线程,音频接收线程和播放线程。1)录音线程:负责麦克风音原创 2014-02-14 15:18:25 · 13657 阅读 · 6 评论 -
声音合成
最近了解到一款声音合成软件,通过组合数字信号处理算法制作声音,感觉非常伟大!可以制作大自然的声音,如雨,打雷,刮风等。如果技术成熟,运用到软件开发中可以方便嵌入声音,而无需资源包。下面是教程,后续分析该软件运行原理,并准备开发一下,搞个sdk给大家用。http://obiwannabe.co.uk/tutorials/html/tutorials_main.html原创 2015-12-31 17:33:15 · 2852 阅读 · 1 评论