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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB6广播网络摄像头的解决方案相关的知识,希望对你有一定的参考价值。

对不起,我知道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。

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

答案

经过一些研究后,微软似乎使用了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和invokeURL设置为true。

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

以上是关于VB6广播网络摄像头的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

使用 socket.io 广播网络摄像头?

VB6.0的winsock控件用UDP局域网广播数据,当数据很大时接收方报10040--数据包太大,请问怎么处理。

Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)

Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上)

VB6 应用程序通过 winsock 发送 UDP 广播消息 - 仅每秒发送一次消息

如何使用警报管理器将数据从片段传递到广播接收器