Прямая трансляция данных камеры с сервера на клиент - PullRequest
0 голосов
/ 19 октября 2018

Я работаю над проектом, в котором я настроил сервер и клиент, и сервер отправляет изображение веб-камеры клиенту через TCPIP (для прямой трансляции на клиенте).

В целях тестирования,Я использую и клиент, и сервер на одном компьютере.

На стороне сервера, используя qcamera, я получаю изображение с веб-камеры, преобразовываю его в QByteArray и отправляю его клиенту.

ОднакоЯ заметил, что при отправке данных изображения клиент не может получить данные с одной попытки.Например, если сервер отправляет QByteArray длиной 15000, клиент получает данные длиной 10000, 3000 и 2000, что в сумме составляет 15000. (Я использую сигнал readyRead () и функцию socket-> readAll ())

Таким образом, для потоковой передачи изображения веб-камеры на клиенте мне нужен способ парсинга изображения одной камеры с другой.Я пытался добавить терминатор, такой как ';', в конце QByteArray, но кажется, что мой массив изображений веб-камеры содержит ';', '?', '*' И т. Д., Поэтому я не могу использоватьони как терминатор.

Есть ли какое-нибудь решение этой проблемы?

1 Ответ

0 голосов
/ 22 октября 2018

Все, что вам нужно, это сам 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();

Также вы можете передать URL схемы rtsp в список воспроизведения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...