作为LEAD Technologies 25周年纪念的一部分,我们正在搞一个“25天收集25个项目来展示LEAD功能强度和易用性”的活动。今天要展示的项目来自于穆罕默德的分享。
它是做什么的
使用LEADTOOLS第19版,该C#编写的项目可以捕捉,并通过RTSP播放DVR和视频流。
所使用的功能
· RTSP
· DVR
· MPEG-4
· AAC
开发进程日志
大家好,我是穆罕默德。我要创建这样一个程序,该程序可以用我们的多媒体工具包来捕捉实况视频流,并将其保存为LEADTOOLS 的DVR文件格式,然后在现场捕获还在进行时使用我们的RTSPServer
来传送所生生的DVR文件。
一般在截屏开始后不久,就可以开始进行数据传送了。如果用户希望用这种方式的话,那么这基本就是实时传送视频流。
在这个项目中,我可以使用LEADTOOLS的多媒体SDK和并在.NET 环境下使用C#编程语言进行编码。该LEADTOOLS的多媒体SDK可以允许我对媒体文件进行显示、捕获和转换。该项目的整个进程包括以下几个部分:
创建一个截屏控件,并列举可用的音频和视频设备。
将该“
Capture
”控件的目标格式类型设置为DVR,以便使视频在从录制的视频中读取数据的同时不断地得到补充,且无需停止截屏。创建
RTSPServer
,并对RTSPServer
的IP地址和端口号进行初始化。开始传送所生成的DVR文件。
首先,我要用Visual Studio 2010中一个新的Windows Forms应用程序来启动该项目。在该表单中,我要添加一个Capture
控件,两个音频和视频设备的组合框,几个按钮,以及几个每个步骤都需要用户来操作的按钮。
现在我已经将所需要的Capture
控件和其他对象添加到该项目中。要想使Capture
控件开始运行,我需要使用LEADTOOLS 的CaptureCtrl
类:
该项目可以在一个组合框内枚举可用的视频和音频截取设备。此外,它有能力变更所选择的设备的属性。
处理这些设备中的截屏操作并将其保存为DVR格式只花了我不到一个小时的时间,因为我们的多媒体SDK大大简化了对多媒体功能的处理过程。如果我打算用DirectShow而不是LEADTOOLS来实现这一点,可能需要几天的时间才能做一个与之类似的、简单的应用程序。
接下来,我要为它添加一个可以获取你机器的V4IP地址的功能。
到现在为止,我所花费的总时间约为4小时。这包括进行窗体设计,获取IP地址,选择硬件设备,和用MPEG-4视频和AAC音频压缩工具将其结果保存为LBL格式(LEADTOOLS DVR)。
现在,我要添加RTSPSever
代码。基于目前为止我用LEADTOOLS的多媒体SDK所完成的部分,我希望该控件是只需要少量的代码就可以完成的、一个高水平的控件,但,同时它能够完成的工作量又是相当可观的。
Documentation: Creating a RTSP Server
这一部分现在已经完成了,总共花费了我大约半小时的时间。
接下来,我要对最终的外观设计再做一些收尾的工作...
这部分大概也花了我半个多小时的时间,而我现在对该程序的外观和感觉都是比较满意的。
最后涉及到的是程序测试这一部分,为此,我会体验一下将该应用程序在不同的机器上运行,以及在另一台机器上播放视频的效果如何。一个半小时之后,我认为该程序是稳定而可靠的。
在开发、调试和从头测试该应用程序这些进程上,我所花费的时间总量小于7个小时。但是,如果没有LEADTOOLS多媒体SDK的帮助,这个应用程序是不可能在一天之内完成的。
下载该项目
该示例项目的源代码您可以点击这里进行下载。
16 Capture, DVR and Stream with RTSP.zip (18.42 kb)
要运行该项目,请将其解压缩到该目录下:C:\LEADTOOLS 19\Examples\DotNet\CS directory。
支持
关于其他产品的更多信息,请访问我们的官方网站,
欢迎下载免费的全功能评估版SDK,全功能试用版中有这个例子的全部源代码。
同时欢迎您使用评估版期间的免费技术支持。
关于葡萄城
葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。