169 похожих чатов

Всем привет. Пытаюсь разобраться с задержкой в видео, но пока

безуспешно.

Принцип работы такой. Подключаюсь по вебсокету, все байты видео потока отправляю на локальный адрес "tcp://localhost:port", Остальные данные парню как данные json или файлы
Потом через ffmpeg декодирую данные из tcp://localhost:port в rtp. Вот команда которую я запускаю в ffmpeg '-re -y -i tcp://localhost:localPort -c copy -f rtp_mpegts -ss 0 rtp://localhost:{localPort + 1}'
После же через VlcPlayer подключаюсь к rtp адресу "rtp://localhost:{localPort + 1}"

Я замечаю что разница в видео между мобилкой и вебом 2 секунды, что говорит о том, что веб на 2 секунды быстрее все отображает. У меня есть предположение что декодирование ffmpeg съедает первые 2 секунды (Примерно) От чего все видео сдвигается на 2 секунды вперед и PTZ работает с сильной задержкой.

Я бы хотел узнать, может вы сможете что-то предложить? А также хотел бы узнать как реализовался плеер на вебе, чтобы попробовать сделать реализацию на основе веба

Я отправлял это сообщение заказчикам, но тут подробно описан принцип работы воспроизведения видеопотока, может кто сможет что-то подсказать?

Видео приходит в h264 формате

4 ответов

37 просмотров

Размер буфера уменьшите

Темирлан-Алмасов Автор вопроса
Kerrigan
Размер буфера уменьшите

Через ффмпег? Или vlc? Вообще пробовал разные флаги связанные с буффером и конфиги в плеере тоже, заметных изменений я не видел

Видеонаблюдение?

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта