VLC воспроизводит HTTP-видеопоток с сетевого сервера: сброс соединения по узлу

Мне нужно расширить базовый файловый сервер netty HTTP (https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example/http/file) для потоковой передачи видео через HTTP после того, как я сделал пользовательскую кодировку видео. Я планирую написать приложение Java, которое использует vlcj для воспроизведения потока.

Однако еще до запуска расширения файлового сервера я наблюдаю странное поведение. Используя базовый пример сервера (как с netty 3.6.5, так и с netty 4.0.0.CR1), когда я использую VLC (версия 2.0.6) для воспроизведения файла, происходит следующее:

  • VLC может начать воспроизведение файла
  • Как только я просматриваю файл пару раз, я получаю следующую ошибку: java.io.IOException: Connection reset by peer

При воспроизведении того же потока с помощью mpc-hc (http://mpc-hc.org/) я не испытать эту проблему.

Нужно ли мне каким-то образом настраивать сервер, чтобы VLC мог правильно воспроизводить поток? Я не нашел никакой конкретной информации как на веб-сайте/форумах VLC, так и на VLCJ.

Любой намек/предложение принимается.


person the_dark_destructor    schedule 23.04.2013    source источник


Ответы (1)


К сожалению, недостаточно просто запустить базовый файловый http-сервер для потоковой передачи видео на проигрыватель VLCj.

Сервер должен иметь возможность обрабатывать «запросы диапазона». Во время запроса диапазона проигрыватель VLC запрашивает определенную часть видео, которую он хочет воспроизвести следующей (диапазон байтов, например байты 3212–5678). Видеопроигрыватель будет делать повторные запросы диапазона во время воспроизведения, даже если первоначальный запрос был для всех байтов.

При поиске видеопроигрыватель отправит запрос диапазона на ваш сервер для следующей части файла. Если ваш сервер не может обработать запрос, проигрыватель будет вести себя так, как вы описываете. (т.е. остаток соединения по пиру)

Надеюсь, это поможет.

person Beatty    schedule 11.05.2013