将相机数据从服务器实时流式传输到客户端



我正在做一个项目,我设置了一个服务器和一个客户端,服务器通过TCPIP将网络摄像头图像发送到客户端(用于客户端上的实时流(。

出于测试目的,我在同一台电脑上同时运行客户端和服务器。

在服务器端,使用qcamera,我获取网络摄像头图像,将其转换为QByteArray,并将其发送到客户端。

但是,我注意到在发送图像数据时,客户端无法一次尝试接收数据。例如,如果服务器发送长度为 15000 的 QByteArray,则客户端接收长度为 10000、3000 和 2000 的数据,加起来为 15000。(我正在使用readyRead((信号和socket->readAll((函数(

因此,要在客户端上实时流式传输网络摄像头图像,我需要一种方法来解析一个摄像头图像。我尝试在 QByteArray 的末尾添加一个终止符,例如";",但似乎我的网络摄像头图像数组包含";"、"?"、"*"等,所以我不能将它们用作终止符。

在这个问题上有什么解决方法吗?

你所需要的只是Qt本身!

从 qdoc:

playlist = new QMediaPlaylist;
playlist->addMedia(QUrl("http://example.com/movie1.mp4"));
playlist->addMedia(QUrl("http://example.com/movie2.mp4"));
playlist->addMedia(QUrl("http://example.com/movie3.mp4"));
playlist->setCurrentIndex(1);
player = new QMediaPlayer;
player->setPlaylist(playlist);
videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);
videoWidget->show();
player->play();

您还可以将 rtsp 架构 URL 传递到播放列表

最新更新