ffmpeg setpts применяет равномерное смещение без перекодирования - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть серия видео, которые я конвертирую из .mov в .ts, а затем создаю список воспроизведения HLS.Я могу выяснить конечные значения как для аудио, так и для видеопотоков любого данного видео, и я применяю это конечное (кумулятивное) смещение при преобразовании более поздних видео в последовательности.Например:

ffmpeg -y -i 1.mov \
  -filter:a "asetpts=PTS-STARTPTS+367534" \
  -filter:v "setpts=PTS-STARTPTS+363000" \
  -codec:v libx264 -crf 18 -preset veryfast \
  -acodec aac -muxdelay 0 1.ts

Это работает, но требует приличного количества процессора.Я хотел бы иметь возможность идеально скопировать видео / аудио потоки.Есть ли способ применить равномерное смещение pts для аудио / видео потоков файла .ts без перекодирования всего этого?

1 Ответ

0 голосов
/ 22 ноября 2018

Условный способ сделать это:

ffmpeg -y -i 1.mov -c copy -output_ts_offset 4.54 -muxdelay 0 -muxpreload 0 1.ts

Если вам нужно применить различные смещения к n потокам, то вам нужно будет генерировать n выходов с 1 отображенным потоком на выход сего уникальное смещение.Remux все выходы вместе в один с добавлением -copyts.

...