QT: видеопоток с сервера vlc через tcp

Я работаю над приложением, которое получает трансляцию с сервера VLC. У меня есть решение, но мне нужно другое, так как это не соответствует моим потребностям.

Мой вопрос в том, есть ли способ получить видео с QTcpSocket как QByteArray и воспроизвести его с помощью QMediaPlayer. Я нашел приведенную ниже статью, но она никогда не работала для меня.

Воспроизведение видео в Qt из потока BYTE*?

Вот что я пытался сделать. Я запускаю поток с VLC с HTTP, устанавливая порт на «8080», и я проверил, что соединение происходит, но кажется, что я никогда не получаю никаких данных от VLC, поскольку сигнал readReady() QTcpSocket никогда не испускается. Хотя я могу читать данные с него с помощью read/readAll.

tcpSocket = new QTcpSocket();
tcpSocket->connectToHost("157.181.196.59", 8080);

QByteArray data = tcpSocket->readAll();
QBuffer buffer(&data);
player->setMedia(QMediaContent(), &buffer);
player->play();    

Я знаю, что это работает не так, но, как я и предполагал с этим кодом, я должен увидеть какой-то результат на видеовиджете.

Не могли бы вы помочь мне, как сделать это правильно?


person Pajti    schedule 09.02.2015    source источник