Итак, я пытаюсь вырезать видео как таковое:

ffmpeg -ss 35:58.907 -i Source.mkv \
  -copyts -to 36:43.857 -map 0:0 -map 0:2 \
  -c:v libx264 -preset slow -tune film -crf 18 -vf "ass=Source.ass" \
  -c:a copy Destination.mkv

После этого я пытаюсь играть в Destination.mkv используя MPC-HC.

Аудио было обрезано идеально, но видео начинается с нескольких секунд черных / пустых кадров. Аудио и видео остаются в идеальной синхронизации.

Как я могу предотвратить появление этих черных рамок?

1 ответ1

0

Итак, моя проблема определенно вызвана "отсутствующими ключевыми кадрами".

Итак, чтобы исправить это, я сейчас делаю это в два этапа:

(Обратите внимание, что исходная временная метка, из которой я хочу вырезать, составляет 35:58.907):

# Move forward the cutting timestamp by N seconds. Here, N=6.00
ffmpeg -ss 35:52.907 -i Source.mkv \
  -copyts -to 36:43.857 -map 0:0 -map 0:2 \
  -c:v libx264 -preset slow -tune film -crf 18 -vf "ass=Source.ass" \
  -c:a copy Intermediate.mkv

Этот шаг производит несколько секунд черных кадров в начале, но у него есть раздел , я хочу вырезать из правильно. Затем я проверяю:

# Re-cut the video starting N seconds forward. Here, N=6.00
ffmpeg -i Intermediate.mkv -ss 00:06.000 \
  -c:v libx264 -preset slow -tune film -crf 18 \
  -c:a copy Destination.mkv

Да, я должен дважды закодировать видео, так что будет некоторое ухудшение, но визуально я не вижу ухудшения, поэтому я думаю, что эта двухэтапная обработка приемлема для моих нужд.

(И если начинают появляться визуальные артефакты, я могу использовать намного меньшую -crf для первого шага, скажем, 15 или 12 , или - не дай Бог - даже 0 если это необходимо.)

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