2016-09-29 4 views
1

Я знаю, что vlc использует live555 для потоковой передачи rtsp. Существует опция в диалоговом окне Open Media в vlc при открытии сетевого потока, который сообщает vlc о потоке буфера в течение нескольких секунд, прежде чем начать его воспроизведение. Опция «сетевое кэширование» в миллисекундах. Я хочу знать, какие функции в live555 используются в vlc для этой функции? Я попытался увеличить ReceiveBufferTo (...) и ReorderingPacketBuffer :: setThresholdTime (...), но они не делают этого.Какие функции Live555 используются в vlc для опции «сетевое кэширование»

vlc network caching option

Благодаря

ответ

0

Этот параметр не используется непосредственно в LIVE555 или RTSP модуля. Если посмотреть на исходный код, это значение используется для настройки временных меток представления. Поскольку Live555 просто выдает пакеты с отметками времени, как они были на уровне RTP, вы должны реализовать его самостоятельно.

+0

Но, как я уже протестировал, кажется, что vlc делает больше, чем только корректировку временных меток представления. Например, иногда в некоторых сетях при использовании только live555 в отдельной программе отображаемые фреймы (декодированные с помощью ffmpeg) показывают сбои или искажения, и это одинаково для vlc, когда сетевое кэширование является низким (например, 500 мс). Но при увеличении кеширования сети, например. до 2000 мсек, это делает задержку в 2 секунды при отображении, но отображение кадра является плавным и без какого-либо искажения. Это поведение связано только с vlc? –

+0

@ M.Mahdipour вам нужно предоставить более подробную информацию об окружающей среде. Live555 управляет только буфером дрожания, который имеет отношение только к UDP. Вы видите проблемы с UDP или TCP? Я могу судить только по тому, что я вижу в источниках VLC, и я не вижу прямой связи между этим значением и модулем live555, возможно, я ошибаюсь. Но это значение используется во многих местах во время настройки PTS в коде VLC. –

+0

Я тестировал с UDP. Я искал буфер буфера jitter в live555, некоторые сообщения говорят, что он делает буфер дрожания, некоторые сообщения говорят, что нет! Есть ли буфер дрожания в live555? или его только переупорядочение пакетов внутри него, которое контролируется с помощью ReorderingPacketBuffer :: setThresholdTime (...)? –

Смежные вопросы