LINUX.ORG.RU

ffmpeg i-frame

 , , , ,


0

1

Делаю стрим: rtp => ffmpeg => rtmp

Ffmpeg берет поток из RTP(h264+aac), без перекодировки видео и шлет его на rtmp сервер. Все нормально работает, но если видео остановить(нажать на паузу), то в rtmp не будут передаваться ключевые кадры(iframe) и клиент не увидит статичной картинки. Если нажать на play, то нормально, видео пойдет.

Можно как-нибудь заставить ffmpeg генерировать i-frame(ключевой) без перекодировки(-vcodec copy) видео? Точнее нужно отправлять последний iframe(кэшировать?), если он не был отправлен допустим последние 3 сек. В нормальном режиме интервал около 2-3 сек.

Делала через -force_key_frames 0:00:01 не помогает

Или как заставить слать этот кадр источник(в моем случае браузер, webrtc). Получаю поток через getUserMedia(mediaConstraints), но в параметрах нет возможности указать что то типа force keyframe interval

★★★★

ffmpeg выступает RTMP-сервером, или он только отправляет данные на какой-то сторонний RTMP-сервер? Если второе, то нужно смотреть настройки RTMP-сервера, а не ffmpeg.

ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

он только отправляет данные на какой-то сторонний RTMP-сервер?

Да

нужно смотреть настройки RTMP-сервера

Там есть настройка, кэширование последнего GOP(группа кадров), но из-за нее латентность выше. Почему не сделали отдельно кэш iframe не понятно

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

самописный клиент под винду, который впрочем тоже использует FFmpeg для приема RTP, и аппаратное ускорение D3D11A

lovesan ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.