1

Мне нужно добавить I-кадры в середину mp4s в рекламные паузы, чтобы я мог сегментировать HLS и иметь I-кадры, когда видео возвращается. Я знаю, как это сделать при перекодировании всего видео и форсировании ключевых кадров в определенных местах, но я бы предпочел вырезать место (возможно, 1 секунду видео), где нужен ключевой кадр, добавить ключевой кадр, а затем сшить видео Вернуться вместе. Это должно значительно сократить время кодирования, поскольку я могу в основном копировать кодеки, за исключением одной секунды видео, где добавляется I-кадр.

Единственная проблема состоит в том, что профиль видео и настройки меняются, когда я добавляю I-кадр, и я не получаю чистую строчку, когда собираю все это вместе. Я понимаю, что могу выполнить перекодирование с помощью concat , но я стараюсь избегать этого времени обработки.

Несколько простых примеров того, что я пытаюсь сделать с помощью ffmpeg:

ffmpeg -i input.mp4 -ss 30 -t 1 -c:a copy -y -copyts clipped2.mp4

ffmpeg -i input.mp4 -t 30 -c copy -y -copyts clipped1.mp4

ffmpeg -i "concat:clipped1.mp4|clipped2.mp4" -c copy -y newOutput.mp4

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

Кто-нибудь достиг этого? Это специально делается для вставки рекламы на стороне сервера.

1 ответ1

0

Я копирую этот ответ:

Вы можете использовать ffmpeg для вставки ключевых кадров туда, где вы хотите, используя опцию -force_key_frames .

например:

./ffmpeg -i input.mp4 -c:a copy -c:v copy -force_key_frames 0:05:00,0:10:00 out.mp4

установит ключевой кадр как можно ближе к отметке 5 и 10 с. Значения времени могут быть в формате чч: мм: сс или в секундах (отдельные значения, без двоеточий).

Вы можете проверить, есть ли вставленные рамки, где вы хотите их использовать, используя:

./ffprobe -select_streams v:0 -skip_frame nokey -show_entries frame=pkt_pts_time out.mp4

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