1

Я использую ffmpeg для прямой трансляции видеофайла на сервер RTMP. Я использую опцию -re чтобы убедиться, что видео транслируется с правильной скоростью на источник в реальном времени. Иногда я хочу транслировать видео, начиная с нескольких минут. Однако, если я добавлю, например, -ss 00:03:00 , первые несколько кадров не будут переданы в потоковом режиме, но ffmpeg по-прежнему будет проходить через них со скоростью -re , что означает, что мне придется ждать (в данном случае) за три минуты до поток можно увидеть, в этот момент он начинается через три минуты.

Это технически то, что я просил, но также бесполезно в контексте. Есть ли способ указать ffmpeg запускаться в данный момент времени, но перейти непосредственно туда, чтобы он работал с пользой при использовании -re?

В списке рассылки ffmpeg-user есть как минимум два случая, когда люди задавались вопросом, как это сделать без очевидного решения.

1 ответ1

1

Попробуйте указать -ss 00:03:00 перед вашим входным файлом.

Я не пробовал это с захватом экрана / прямой трансляцией, но я знаю, что это работает со стандартным синтаксисом транскодирования ffmpeg.

Например, следующая команда введет файл, перекодирует весь файл в h264, а затем сохранит только выходные данные, начиная с 3-минутной отметки.

ffmpeg -i [INPUT] -ss 00:03:00 -c:v h264 [output]

С другой стороны, следующая команда введет файл с 3-минутной отметкой, перекодирует с этой точки и сохранит результат. Выходной файл должен быть идентичен выходному, указанному выше, но поскольку первые три минуты не декодируются, время обработки значительно сокращается.

ffmpeg -ss 00:03:00 -i [INPUT] -c:v h264 [output]

Опять же, я не знаю, работает ли это с прямой трансляцией, хотя. Надеюсь, поможет!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .