Какие функции Live555 используются в vlc для опции «сетевое кэширование»

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

опция сетевого кэширования vlc

Спасибо


person M.Mahdipour    schedule 29.09.2016    source источник


Ответы (1)


Этот параметр напрямую не используется в модулях live555 или rtsp. Глядя на исходный код, видно, что это значение используется для настройки временных меток презентации. Поскольку Live555 просто выдает вам пакеты с отметками времени, как они были на уровне RTP, вам придется реализовать это самостоятельно.

person Rudolfs Bundulis    schedule 29.09.2016
comment
Но, как я проверял, кажется, что vlc делает больше, чем просто настраивает временные метки презентации. Например, иногда в некоторых сетях при использовании только live555 в отдельной программе отображаемые кадры (декодированные с помощью ffmpeg) показывают сбои или повреждения, и это то же самое на vlc, когда сетевое кэширование низкое (например, 500 мс). Но при увеличении сетевого кэширования, например. до 2000 мс, это делает задержку отображения на 2 секунды, но отображение кадров плавное и без каких-либо искажений. Это поведение связано только с vlc? - person M.Mahdipour; 30.09.2016
comment
@ M.Mahdipour, вам нужно предоставить более подробную информацию об окружающей среде. Live555 управляет только буфером джиттера, который имеет отношение только к UDP. Вы видите проблемы с UDP или TCP? Я могу судить только по тому, что вижу в исходниках VLC, и не вижу прямой связи между этим значением и модулем live555, могу ошибаться. Но это значение используется в нескольких местах во время настройки PTS в коде VLC. - person Rudolfs Bundulis; 30.09.2016
comment
Я тестировал с UDP. Я искал буфер дрожания в live555, в некоторых сообщениях говорится, что он делает буфер дрожания, в некоторых сообщениях говорится, что нет! Есть ли буфер джиттера в live555? или это только переупорядочение пакетов внутри него, которое контролируется с помощью ReorderingPacketBuffer::setThresholdTime(...)? - person M.Mahdipour; 30.09.2016