我正在寻找一种简单的方法来获取IP Camera RTSP流的数据(使用H264音频/视频)并从另一侧获取
经过多次研究
所以我不知道去哪儿了?怎么做?
似乎iSpyCamera正在完成这项工作,但这是一个很大的项目,而不是一个查询ip camera的小库。
答案 0 :(得分:0)
似乎Emgu CV 3.0.0运行良好(参见Emgu Sample)
如果我添加"我仍然坚持使用我的IP相机与VLC一起工作:网络缓存= 1000"我不知道如何用Emgu CV设置它
答案 1 :(得分:0)
如果rtsp挂起,你会看到设置一个rtsp服务器以保持连接,因为在收到服务器和客户端的响应后,连接将自动关闭。
答案 2 :(得分:0)
以前我使用本指南来实现RTSP streaming。这个控制台应用程序是在camera library的帮助下用C#编写的。这里是相应的代码(连接到相机并流式传输其图像):
public class MyServer : IPCameraServer
{
private MediaConnector _connector;
private IIPCamera _camera;
private IIPCameraClient _client;
public string IpAddress { get; set; }
public int Port { get; set; }
public event EventHandler ClientCountChange;
public MyServer()
{
_connector = new MediaConnector();
_camera = IPCameraFactory.GetCamera("192.168.115.98:8080", "admin", "admin");
if (_camera != null)
_camera.Start();
}
protected override void OnClientConnected(IIPCameraClient client)
{
_client = client;
_connector.Connect(_camera.AudioChannel, _client.AudioChannel);
_connector.Connect(_camera.VideoChannel, _client.VideoChannel);
var handler = ClientCountChange;
if (handler != null)
handler(null, new EventArgs());
base.OnClientConnected(_client);
}
protected override void OnClientDisconnected(IIPCameraClient client)
{
_connector.Disconnect(_camera.AudioChannel, _client.AudioChannel);
_connector.Disconnect(_camera.VideoChannel, _client.VideoChannel);
_connector.Dispose();
var handler = ClientCountChange;
if (handler != null)
handler(null, new EventArgs());
base.OnClientDisconnected(client);
}
}
class Program
{
static MyServer _server = new MyServer();
static void Main(string[] args)
{
_server.Start();
_server.SetListenAddress("192.168.115.10", 554);
_server.ClientCountChange += new EventHandler(server_ClientCountChange);
Console.WriteLine("Started");
Console.Read();
}
static void server_ClientCountChange(object sender, EventArgs e)
{
_server.ConnectedClients.ForEach(x => Console.WriteLine(x.TransportInfo.RemoteEndPoint.ToString()));
}
}