UDP видео с использованием библиотеки QMediaplayer

Я играл в библиотеке QMediaplayer. Мне было любопытно, как это будет работать с некоторыми источниками потокового видео, поэтому я использовал VLC для потоковой передачи некоторых видео с использованием протокола udp.

Чтобы сделать быстрый тест, я использовал пример Qt с именем Пример MediaPlayer. Поскольку пример предназначен для работы только с автономными файлами, я добавил немую функцию в реализацию Player.

void setM(QUrl url){player->setMedia(url);player->play();}

Затем на main.cpp Файл, который я называю этой функцией, выглядит так:

...
player.setM(QUrl("udp://239.1.1.1:1234"));
return app.exec();

Для этого нужно начать воспроизведение источника потока после прочтения программы.

Проблема здесь в том, что Qt через меня выдает следующую ошибку:

 DirectShowPlayerService::doSetUrlSource: Unresolved error code 800c000d

Чтобы сделать это с локальными файлами и http потоковая передача и это работает … но когда я пытался с UDP или RTP, я всегда получаю ту же ошибку.

Я потратил несколько часов на поиск дополнительной информации, но всегда получал один и тот же ответ … используйте QMLVLC … Например, смотри это.

Кто-нибудь пробовал это раньше? Что здесь не так?

PD: Я знаю, что для этой работы есть VLC-подключение, но я бы хотел, чтобы это работало только с Qt (или, по крайней мере, понимаю, что здесь происходит).

PD2: Я на Windows 8.1, Qt 5.5 (mingw 4.9.2) и у меня установлены все важные кодеки.

Заранее спасибо,

ОБНОВИТЬ

Наконец-то мне удается разобраться с новым http://code.qt.io и вот код, который я подозреваю, блокирует протоколы udp (и другие )-> Вот.
Возможно, только «http» и «https» принимаются в качестве допустимых потоковых источников на Directshowsservice … Я постараюсь выделить дополнительное время на этой неделе, чтобы перекомпилировать только мультимедийный модуль для Windows, чтобы добавить протокол udp в функцию doSetUrlSource и посмотрим, что получится. Если кто-то проверит это первым, пожалуйста, дайте мне знать здесь!

ОБНОВЛЕНИЕ 2

Прежде всего, я подозреваю, что QMediaPlayer не смог воспроизвести содержимое UDP / RTP, потому что метод AddFilter … В любом случае, http, https и rtsp работает отлично.

Во-вторых, я обнаружил странное поведение по протоколу udp.
Я использую «udp: //@239.1.1.1: 1234» в качестве тестового направления многоадресной рассылки. Странно то, что во время одного теста я ошибочно указал это направление «udp: //@239.1.1.1: 1234z», и на этот раз ошибки не было. Кажется, что направление должно содержать письмо.

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]