IT资讯
当前位置:智学网 > IT资讯 >  探索

视频直播:Windows中各类画面源的截取和合成方法

2018-10-08 09:28:48 信英IT网 编辑:琳达 浏览数:16智学网

信英IT网(http://www.xinlintouzi.com):视频直播:Windows中各类画面源的截取和合成方法  当今,视频直播技术和实时音视频技术已经是很多行业必备,典型的应用场景有教育直播、远程视频会议、互...

  当今,视频直播技术和实时音视频技术已经是很多行业必备,典型的应用场景有教育直播、远程视频会议、互联网娱乐等。在移动端发起直播,其画面源的种类是十分有限的,无非是取摄像头、截屏等。PC端由于其系统资源充足,应用程序丰富,画面源种类多样,更适合作为主播程序运行的平台。在实际应用中,经常有一些场景是需要将不同的画面源合在一起,然后推流出去的。本文介绍一些网易云信在开发过程中总结的一些获取不同画面源的画面并将其合并的方法。

  Windows下采集摄像头画面,DShow是最常用的方法之一。通过DShow采集摄像头数据,创建视频采集Filter,将其加入到图表IGraphBuilder中,用IMediaControl接口来控制流在Filter Graph中的流动,再通过Render来获取视频的原始数据。以上流程封装在了我们的SDK中,用户可以直接调用SDK接口。

  在Windows系统中,桌面和所有应用程序窗口一样,本身也是一个HWND窗口,因此可以放在一起讨论。获取一个窗口的位图数据,最常用的方法是:创建一个用来接收窗口画面的HBITMAP位图对象以及一个HDC设备上下文对象,用SelectObject将两者绑定,然后用BitBlt从被截取窗口的HDC将数据拷贝到目标HDC。下面列出关键代码:

  越来越多的程序的画面是在显存中的,此时,BitBlt和PrintWindow都不管用(得到的都是一块黑色的位图)。可以考虑用DirectX的方法。而且DirectX方法由于使用了GPU,所以相较前面两种方法效率更高。以下是DirectX截屏的代码:

  将本地图片(jpg、bmp、png、gif等格式)加载到内存,并取得其位图句柄或像素首地址的方法有很多种。这里列举几种最常见的。

  另一种方法是使用Windows API LoadImage来加载一个本地bmp图片得到HBITMAP句柄,但这种方法似乎只能加载位图文件(.bmp格式)。使用ATL的CImage只需要3行代码即可得到一个图片文件的HBITMAP句柄。

  主播常常希望同时将自己的摄像头画面和桌面内容或者某个程序的画面共享给观众,有时甚至需要同一时刻分享10个以上的画面源。这时候,需要将多个画面粘贴到一个目标画面上,我们称这个过程为画面合成。合成的画面通常还要支持改变各个画面的尺寸、等操作。这样一来,程序性能成了瓶颈问题。

  首先,对于各种画面源的截取应该尽量采用高效的方式,其次,画面的拉伸压缩是比较耗性能的地方。在1秒钟需要合成20帧画面的要求下,应该避免直接压缩HBITMAP,而是采用一些有加速的方案。

分享到:

版权与免责声明:

凡未注明"稿件来源"的内容均为转载稿,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性;


本文地址:/news/2018/10/08/120036345.html

转载本站原创文章请注明来源:智学网

行业聚焦

索尼电子纸DPT

IT之家10月18日消息 今天下午索尼在京东直播上发布了10.3英寸的电子纸DPT-CP1的国行版,信仰价4888元,现已开启预约。虽然价格不菲,但是与13.3...[详细]

微软正式宣布Surface Hub 2S/2X!50.5英寸4K+显示屏

推荐阅读:《再一次震撼!微软Surface Hub 2S/2X真机宣传图公布》IT之家9月24日消息 在今年5月份,微软首次宣布推出Surface Hub的继任...[详细]

谷歌DeepMind欲开发识别乳腺癌的AI技术:已获得3万名女性的乳房X线照片

据福布斯报道,DeepMind从日本东京慈恵会医科大学附属病院(Jikei Univeity Hospital)获得了2007年-2018年间约3万名女性患者...[详细]

ASLR技术对于win7系统安全的重要性的图文分析

信英IT网(http://www.xinlintouzi.com):ASLR技术对于win7系统安全的重要性的图文分析  失去了该技术支持,那么在代码恶意过程中...[详细]

五本高质量的小说推荐 剧情精彩 让人从头爽到脚

信英IT网(http://www.xinlintouzi.com):五本高质量的小说推荐 剧情精彩 让人从头爽到脚  可大可小,代表作有《古玩人生》、《天才杂役...[详细]

活动互动

更多

《辐射76》Xbox One X版画面倒退:分辨率仅是《辐射4》的75%

 

《辐射76》还有一个月就要发售了,很多粉丝希望能尽快玩到这款游戏。由于B社在这款游戏上和微软有合作,因此最近的压力测试仅...[详细]

Win8待发微软已筹备Windows9(Win9)开发

 

信英IT网(http://www.xinlintouzi.com):Win8待发微软已筹备Windows9(Win9)开...[详细]

交易员:今年秋季苹果股价可能会创下历史新高

 

9月26日消息,国外著名交易网站TradingAnalysis.com创始人托德戈登(Todd Gordon)说,苹果公...[详细]

LOL S8战报:全场26人头!IG拿下FNC

 

10月12日,《英雄联盟》S8小组赛阶段第三比赛日迎来第三场比赛,LPL赛区“打架狂”IG战队对阵欧洲赛区的头号种子FN...[详细]

荣耀8X MAX和荣耀Note10哪个好?荣耀8X MAX和Note10区别对比

 

9月5日,荣耀8X MAX正式发布,它是今年手机厂商发布的一款屏幕最大的巨屏手机。荣耀8X MAX和七月底荣耀发布的自家...[详细]

一周排行每月关注