将屏幕活动录制成电影






4.81/5 (38投票s)
一篇文章,介绍如何使用 Microsoft Windows Media Encoder 9 将屏幕活动捕获为电影文件。
引言
bkniazi 在 experts-exchange.com 上问我一个问题,关于如何将机器上发生的事情捕获为电影。我发现这个问题很有趣,所以找了一下,但没有找到好的解决方案。不过,我找到了一些可以完成这项工作的软件。我发现 Windows Media Encoder 9 非常有趣。在研究的过程中,我找到了它的 SDK,并开始研究它。它非常有趣。所以在研究 API 并查看了一些示例后,我制作了这个小示例。
必备组件
您需要 Windows Media Encoder 9 Series 和 SDK。
使用代码
这个 API 最好的地方在于它是完全基于接口的。WMEncoder
是主要的类。设置它的参数并启动编码器以开始编码。停止它以保存到文件。
Encoder = New WMEncoder
在 Encoder
的集合中创建一个名为 SG_1
的源组。
Dim SrcGrp As IWMEncSourceGroup2
Dim SrcGrpColl As IWMEncSourceGroupCollection
SrcGrpColl = Encoder.SourceGroupCollection
SrcGrp = SrcGrpColl.Add("SG_1")
指定视频和音频的输入类型。指定屏幕捕获插件以设置视频源。
SrcVid.SetInput("ScreenCap://ScreenCapture1")
SrcAud.SetInput("Device://Default_Audio_Device")
找到配置文件并从所有可用的配置文件中设置 Encoder
的组配置文件。
ProColl = Encoder.ProfileCollection
lLength = ProColl.Count
For i = 0 To lLength - 1
Pro = ProColl.Item(i)
If Pro.Name = "Windows Media Video 8 for Local Area Network (384 Kbps)" Then
SrcGrp.Profile = Pro
Exit For
End If
Next
指定 Encoder
的标头信息。例如,描述或属性。
Dim Descr As IWMEncDisplayInfo
Descr = Encoder.DisplayInfo
Descr.Author = "Armoghan Asif"
Descr.Copyright = "Copyright information"
Descr.Description = "Text description of encoded content"
Descr.Rating = "Rating information"
Descr.Title = "Title of encoded content"
' Add an attribute to the collection.
Dim Attr As IWMEncAttributes
Attr = Encoder.Attributes
Attr.Add("URL", "IP address")
如果需要,您可以对 Encoder
进行一些裁剪。
' Crop 2 pixels from each edge of the video image.
SrcVid.CroppingBottomMargin = 2
SrcVid.CroppingTopMargin = 2
SrcVid.CroppingLeftMargin = 2
SrcVid.CroppingRightMargin = 2
指定本地文件作为输出。您还可以设置文件的其他字段,例如文件大小、文件秒数等。
Dim File As IWMEncFile
File = Encoder.File
File.LocalFileName = "C:\OutputFile.avi"
开始编码过程
' Start the encoding process.
Encoder.Start()
停止编码过程
' Stop the encoding process.
Encoder.Stop()
关注点
演示中没有放置任何花哨的东西。它只是说明了屏幕捕获。它可以很容易地添加到任何现有应用程序中。仅此而已:)