在多媒体文件采集,播放及对同步的要求都非常严格,如果从多媒体文件中分离出音视频数据的数据不同步,音视频的时间差则会越来越大,这是无法忍受的,所以在多媒体文件中,不但要求有同步机制,还要求有反馈机制。
二、数字可视对讲中的音视频同步方案
在数字可视对讲中,可以考虑的音视频同步方案有两种:一是发送端解决;二是接收端解决。
发送端解决方法比较简单,具体措施是在发送端先将一段时间内采集到音视频数据打包。比如采集到一帧视频图像,将这帧图像与采集这帧视频的时间内采集到的视频数据打成一个包,接收端接收到这个包之后解包分别播放就可以了。发送端解决的控制方法比较简单,但是在高清要求清晰度比较高的情况下就不是很理想,清晰度高,意味着每个音视频包数据量就大,能保证同步,却难以保证连续。我们在同一个线程中按照先后顺序发送PCM音频和H.264视频,测试结果表明这种方法确实存在连续问题。
接收端解决方案绕不开的问题是时间戳,接收端根据接收到的音视频数据的时间戳安排播放。时间戳需要一个参考时间姿悉巧,而采集过程中视频的时间是不定的,数字摄像头采集图像的帧率是一个平均值,不宜用来做参考时间,所以只能用音频时间作为参考时间。
三、声卡编程和声卡驱动的时间机制
门禁可视对讲中音频是双向的。本文的门禁可视对讲方案中,音频的采用PCM(Pulse Code Modulation——脉码调制录音)采集,迹键在网络中传送的也是原始数据,之所以没有对音频数据进行编码处理是基于以下原因:一是S3C6410没有提供对音频的硬编解码,如果使用软件实现编解码,在有限的系统资源条件下难以实现;二是音频数据量较小:采用8000采样率和量化位数为8位的电话语音标准,一秒的音频数据是8K字节,只相当于视频1帧数据的两倍,这对普遍拥有百兆网卡的局域网来说,数据量很小。实验的结果表明,这种简单的处理方式被证明是有效的。
Linux *** 作系统下音频接口有/dev/dsp,/dev/audio,/dev/Mixer三种。前两种的属性基本相同,DSP是数字信号处理器(Digital Signal Processor)的简称,是用于数字采样(sampling)和数字录音(recording)的设备文件,它对于Linux下的音频编程来讲非常重要。向该设备写数据即意味着激活声卡上的D/A转换器进行放音,而向该设备读数据则意味着激活声卡上的A/D转换器进行录音。目前许多声卡都提供有多个数字采样设备。/dev/audio属性与dsp类似,但更多的用于sun的工作站中,为兼容性考虑,应用中一般使用/dev/dsp作为音频接口。mixer为混音器,也是声卡设备中相当重要的一部分,它的作用是将多个信号组合或者叠加到一起,但对应用程序来说,这些都无需考虑,但可以通过这个接口调节声卡播放时声音的大小等参数。
无论是Linux下还是Windows下,声卡的编程接口都是由声卡驱动提供的,而驱动都是会考虑到时间机制的,其表现形式就是当声卡驱动没有装好时,使用播放器播放多媒体文件时声音以极快的速度过去了,但是声卡驱动装好之后就很正常了,本文的音视频同步解决方案即以此为基础。
四、基于音频时间机制的音视频同步解决方案
与文件形式的多媒体不同的是,可视对讲中音视频流的源端是永远同步的。所以一种简单的解决方案是发送端启用独立的音频和视频线程,进行音视频采集,采集后只管往外发送数据,接收端接到数据就分别解码播放,从表面看,这种采用无同步机制多线程解决方案是可行的,但是忽略了一个问题,即音频数据包和视频数据包的大小。包的大小会影响网络传输的速度。这种差别在网络条件好的情况下显示不出来,一旦遇到网络拥塞或者其他情况就会变得很明显。
根据对音频采集和处理的叙述,我们知道,音频的采集是有时间机制的。比如采样率是8000,采样位数是8,我们就可以算出采8K字节的数据所用的时间是1s,这样音频就可以按照自己的速度播放;而摄像头每秒采集的帧数是相对固定的,如OV9650采集速度为平均每秒30帧,这样即可以算出1/30秒(约为0.03333,具体精度可以根据要求决定)刷新一帧图片,这种方式中只要保证源端音频视频的采集是同步的就可以,而门禁对讲过程中,这种同步是原生的。
发送端分别用线程采集音视频数据,采集的同时根据RTP协议的规定分别将这些数据打上时间戳,然后通过RTP底层协议(如UDP)发送出去。
接收端接收到音频数据,直接交给声卡播放,当前播放的音频包的时间戳时间传送给视频线程;接收到视频帧,则将其时间戳时间与当前播放的音频时间戳进行比较,若未达到参考时间,则解码播放;若达到参考时间,则说明该视频帧滞后,丢弃该视频帧,接收下一个视频帧,循环往复,直到线程接收到结束命令停止;以上述音频采样率和采样位数为例,视频参考时间的计算方法为(以C语言格式的?号表达式表示):
音频时间戳时间 +1/30>视频时间戳时间+丢弃:播放;
在编程实现时,采集端和播放端的音频和视频可采用独立的线程,并利用Qt的信号槽机制实现音视频线程时间戳的传递,此处不再赘述。
分类: 电脑/网络 >>电脑常识问题描述:
重启电脑后在任务栏中间一栏,就是有网页、文档的那一栏,出现了一个叫Mixer的东东,字母前面有一个长矩形的图标,还点不开,还关不了,这是什么?怎么办?
解析:
Win2000/XP 的任务管理器是一个非常有用的工具,它能提供我们很多信息,比如现在系统中运行的程序(进程),但是面对那些文件可执行文件名我们可能有点茫然,不知道它们是做什么的,会不会有可疑进程(病毒,木马等)。本文的目的就是提供一些常用的Win2000/XP 中的进程名,并简单说明它们的用处。
在W2K/XP中,同时按下crtl+shift+Esc键,可以打开Windows任务管理器,单击“进程”,可以看到很多正在运行的进程,仔细看看有很多奇怪的EXE文件在运行?下面这些并不是真正的服务,而是在不同情况下运行的程序或进程,很多还是必需的进程。
【Csrss】:这是Windows的核心部份之一,全称为Client Server Process。我们不能结束该进程。这个只有4K的进程经常消耗3MB到6MB左右的内存,建议不要修改此进程,让它运行好了。
【Ctfmon】:这是安颂者装了WinXP(尤其是安装ofice XP)后,在桌面右下角显示的“语言栏”,如果不希望它出现,可通过下面的步骤取消:双击“控制面板”,“区域和语言设置”,单击“语言”标签,单击“详细信息”按钮,打开“文字服务和输入语言”对话框,单击下面“首选项”的“语言栏”按钮,打开“语言栏设置”对话框,取消“在桌面上显示语言栏”的勾选即可。不要小看这个细节,它会为你节省1.5MB到4MB的内存。
【dovldr32】:如果你有一个Creative SBLive系列的声卡,就可能击现这个进程,它占用大约2.3MB到2.6MB的内存。有些奇怪的是,当我从任务栏禁止了这个进程后,通过DVD实验,并没有发生任何错误。但如果你将这个文件重新命名了,就会出现windows的文件保护警告窗口,而且Creative Mixer和AudioHQ程序加载出错。当然你希望节省一些内存,那么可以将它禁止。
【explorer】:这可不是Inter Explorer,explorer.exe总是在后台运行,它控制着标准的用户界面、进程、命令和桌面等,如果打开“任中樱祥务管理器”,就会看到一个explorer.exe在后台运行。根据系统的字体、背景图片、活动桌面等情况的不同,通常会消耗5.8MB到36MB内存不等。
【Ldle】卖搏:如果你在“任务管理器”看到它显示99%的占用率,千万不要害怕,实际上这是好事,因为这表示你的计算机目前有99%的性能等待你使用!这是关键进程,不能结束。该进程只有16KB的大小,循环统计CPU的空闲度。
【IEXPLORE】:这才是IE浏览器。当我们用它上网冲浪时,它占有7.3MB甚至更多的内存。当然,这个随着打开的浏览器窗口的增加而增多。但当关闭所有IE窗口时,它并不会从任务管理器消失,IEXPLORE.EXE依然在后台运行着,它的作用是加快我们再一次打开IE的速度。
【Generic Host Process for Win32 Services】:如果你安装了ZoneAlarm以后,在连接Inter时ZonAlarm总是抱怨链接不到Inter,那么你就应该好好看看下面的文字。Svhost.exe就是Generic Service Host,意思就是说,它是其他服务的主机。如果你的Inter连接不工作了,很有可能是你禁止了一些必须的服务,比如如果你禁止了“DNS搜索”功能,那么当你输入cfan时就不会连接上网,但如果输入IP地址,尽管还是可以上网,但实际上你已经破坏了上网冲浪的关键进程!
【m *** sgs】:这是微软的Windows Messengr(即时通信软件)著名的MSN进程,在WinXP的家庭版和专业版里面绑定的,如果你还运行着Outlook和MSN Explorer等程序,该进程会在后台运行支持所有这些微软号称的很Cool的,NET功能等新技术。
【msn6】:这是微软在WinXP里面绑定的MSN Explorer (MSN浏览器)进程,该进程需要m *** sgs.exe事先运行。
【Navpw32】:这是安装了Norton AntiVirus2002 软件后启动的进程,除非你不需要病毒检测功能了,否则不要结束这个进程,这个进程同时还承担着自动升级病毒定义库文件的功能和在系统任务栏显示一个小图标的功能。
【Point32】:这是安装了特殊的鼠标软件(Intellimouse等等)后启动的等程序,由于在WinXP里面内建了很多鼠标新功能,所以,就没有必要在系统后台运行,既浪费1.1MB到1.6MB的内存,还要在任务栏占个地方!
【Promon】:这是Intel系列显卡安装的程序,在任务栏显示图标控制程序,占据大约656KB到1.1MB的内存。
【Smss】:只有45KB的大小却占据着300KB到2MB的内存空间,这是一个Windows的核心进程之一,是windows NT内核的会话管理程序。
【Svchost】:这实际上是一个服务(service),有时你会经常在“任务管理器”里看到好几个一样的该进程(分别掌管着system ,neork,user或者其他),在windows XP里面,如果你结束了这个进程,那么系统就会在一分钟之内自动关闭,在windows 2000中,该进程将显示为关键进程,禁止结束!
【System IDLE Process】:这是一个当没有任何程序或者进程对CPU发出请求的时候调用的普通进程,该进程不能被结束,如果它显示CPU占用率是97%,那就意味着只有3%的CPU进程被真正的程序占用着,如果你发现这个ldle processes一直保持很低的数值(比如一直显示3%),那么肯定有一个应用程序一直在运行着,需要检查一下!
【taskmgr】:如果你看到了这个进程在运行,其实就是看这个进程的“任务管理器”本身。它大约占用了3.2MB的内存,当你优化系统时,不要忘了把它也算进去。
【Vptray】:这是Norton AV显示在任务栏的一个图标的进程,占用大约2.9MB左右的内存如果我们从任务栏将这个图标移走,能够收回一些内存,但是实际上它还在后台运行着。
【Winlogon】:这个进程处理登录和注销任务,事实上,这个进程是必需的,它的大小和你登录的时间有关系,我曾亲眼看见这个进程占用空间的波动情况,一个是登录一个小时左右,内存在1.7MB到8.5MB之间波动;另一个登录了40多天,内存在1.7MB到17MB之间波动。
【Wowexec】:当你运行一些老的应用程序(比如一些16位的程序)或者DOS控制台下运行DOS命令行程序,你就会在进程里面发现它。
【TaskSwitch】:在XP系统中安装了powerToys后会出现此进程,按Alt+Tab键显示切换图标,大约占用1.4MB到2MB的内存空间。
【在 WIN2000/XP 中,系统包含以下缺省进程】:
Csrss.exe
Explorer.exe
Internat.exe
Lsass.exe
Mstask.exe
Smss.exe
Spoolsv.exe
Svchost.exe
Services.exe
System
System Idle Process
Taskmgr.exe
Winlogon.exe
Winmgmt.exe
【下面列出更多的进程和它们的简要说明】
进程名描述
*** ss.exeSessionManager
csrss.exe 子系统服务器进程
winlogon.exe管理用户登录
services.exe包含很多系统服务
lsass.exe 管理IP安全策略以及启动ISAKMP/Oakley(IKE)和IP安全驱动程序
svchost.exe Windows 2000/XP 的文件保护系统
SPOOLSV.EXE 将文件加载到内存中以便迟后打印
explorer.exe资源管理器
internat.exe托盘区的拼音图标
mstask.exe允许程序在指定时间运行。
regsvc.exe允许远程注册表 *** 作。(系统服务)->remoteregister
winmgmt.exe 提供系统管理信息(系统服务)
iinfo.exemsftpsvc,w3svc,iisadmn
tlntsvr.exe tlnrsvr
tftpd.exe 实现 TFTP Inter 标准。该标准不要求用户名和密码
termsrv.exe termservice
dns.exe 应答对域名系统(DNS)名称的查询和更新请求
tcpsvcs.exe 提供在PXE可远程启动客户计算机上远程安装2000 Professional的能力
i *** serv.exe 允许在 Windows Advanced Server 站点间发送和接收消息
ups.exe 管理连接到计算机的不间断电源(UPS)
wins.exe 为注册和解析 NetBIOS 型名称的TCP/IP客户提供NetBIOS名称服务
llssrv.exe 证书记录服务
ntfrs.exe 在多个服务器间维护文件目录内容的文件同步
RsSub.exe 控制用来远程储存数据的媒体
locator.exe 管理 RPC 名称服务数据库
lserver.exe 注册客户端许可证
dfssvc.exe 管理分布于局域网或广域网的逻辑卷
clipsrv.exe 支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面
msdexe 并列事务,是分布于两个以上的数据库,消息队列,
文件系统或其它事务保护资源管理器。
faxsvc.exe 帮助您发送和接收传真。
cisvc.exe 索引服务
madmin.exe 磁盘管理请求的系统管理服务。
mnmsrvc.exe 允许有权限的用户使用 NetMeeting 远程访问 Windows 桌面。
dde.exe 提供动态数据交换 (DDE) 的网络传输和安全特性。
*** logsvc.exe 配置性能日志和警报。
rsvp.exe 为依赖质量服务(QoS)的程序和控制应用程序提供网络信号
和本地通信控制安装功功能。
RsEng.exe 协调用来储存不常用数据的服务和管理工具。
RsFsa.exe 管理远程储存的文件的 *** 作。
grovel.exe 扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向一个数据存储点,
以节省磁盘空间(只对NTFS文件系统有用)
SCardSvr.ex 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。
snmp.exe 包含代理程序可以监视网络设备的活动并且向网络控制台工作站汇报。
snmptrap.exe 接收由本地或远程SNMP代理程序产生的陷阱(trap)消息,然后将消息传递到
运行在这台计算机上 SNMP 管理程序。
UtilMan.exe 从一个窗口中启动和配置辅助工具。
msiexec.exe 依据.MSI文件中包含的命令来安装、修复以及删除软件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)