VB6广播网络摄像头的解决方案

时间:2014-07-02 16:15:59

标签: vb6 ffmpeg streaming webcam

对不起,我知道VB6已经是几十年了,但我的情况是我必须使用VB6在服务器 - 客户端模型程序中提供2台PC之间的实时网络摄像头流。 Vb6代码保持连接,然后我别无选择,只能通过该连接传输所有数据。

我已经尝试了几个星期,无数的方法,但无处可去。 我的工作重点是3种主要方法:

1 /使用ffmpeg将现场网络摄像头录制为硬盘上的“.avi”文件,将文件的一部分传输到另一端&玩。但我一直坚持使用可以播放“正在撰写”的avi文件的媒体播放器。

Windows Media Player控件告诉我“文件已在使用中......”& VLC插件甚至无法添加到VB6(axvlc.dll)。

2 /使用ffmpeg保存实时网络摄像头作为avi文件,将该文件的每一位传输到另一端,然后在另一端,从avi中提取24张图像/秒连续显示一个图片框。 这种方法没问题,只是我的硬盘在眨眼时充满了图像,我的程序在挂起之前变得很慢。

3 /使用ffmpeg将实时网络摄像头流式传输到这样的rtp端口:

ffmpeg -f dshow -i video="Lenovo EasyCamera" -vcodec mpeg2video -pix_fmt yuv422p -f rtp -an rtp://224.1.2.3:8191

我已成功观看VLC中的流,但VLC(axvlc.dll)拒绝集成到古老的VB6中。更重要的是,我不知道如何使用VB6将rtp流重定向/重新路由到其他PC。

有人请点亮我吗? (欢迎任何第三方组件)

1 个答案:

答案 0 :(得分:3)

经过一些研究后,微软似乎使用了rtsp,这是rtp协议的一种变体。幸运的是,ffmpeg支持以该格式进行多路复用和多路分离。 https://www.ffmpeg.org/ffmpeg-protocols.html#rtsp。您可能需要调整所列出的参数 如果服务器必须是vb6前端,则可以从命令行启动ffmpeg作为后端。这是一种常用的方法,我在这里找到了一个例子:https://www.ehow.com/how_6038708_use-ffmpeg-visual-basic-6.html供参考。

下一个阶段是能够在visual basic中播放这些流.6。您可以做的是添加Windows Media Player控件并将其属性WindowsMediaPlayer1.URL设置为{将您的url添加为字符串的列表} 。
一个版本的控件的id为{6BF52A50-394A-11D3-B153-00C04F79FAA6},dll为wmp.dll。确保控件具有autoStart& invokeURLs设置为true。

值得一提的其他一些事情是尝试使用符合WMP标准的编解码器,并包含诸如Windows媒体视频。