Я пытался закодировать коллекцию видео, я должен удалить ненужные логотипы с самого начала и уменьшить размер файла. Я использую FFmpeg, чтобы начать примерно через 6,2 секунды или 186 кадров после начала видео. Когда я закончил, я увидел горизонтальные линии, которые казались показательными для чересстрочной развертки, поэтому я попытался добавить -vf yadif
в мой скрипт bash. Вот мой скрипт для кодирования:
if [[ $PWD = *"show_name"* ]]; then
for i in {1..7};
do ffmpeg -ss 6.2 -i "./show name - s2e$i.mkv" -c:v libx264 -preset slow -crf 16 -vf yadif -c:a copy "/blah/blah/show name - s2e$i.mkv";
done
fi
Когда сценарий будет завершен, у меня останется видео, которое выглядит не очень хорошо, учитывая, что оно должно быть «визуально без потерь». Вот несколько наглядных примеров.
Верхнее изображение - оригинальный носитель. Нижнее изображение - это новый закодированный носитель. Обратите внимание на высокий уровень ошибочных пикселей вокруг слегка заштрихованных областей. Это результат чересстрочного фильтра? Как улучшить качество изображения? Все, что я на самом деле пытаюсь сделать, это удалить несколько секунд из начала клипа.
Первоначально, когда я использовал -c copy
для моих настроек ffmpeg, он копировал носитель напрямую, что, похоже, приводило к тому, что проигрыватели пропускали первые десятки кадров на носителе, так как, я полагаю, у него не было ключевого кадра для продолжения (?). Вот видеоинформация MediaInfo об оригинальном видеофайле.
Как удалить первые 6,2 секунды или 186 кадров каждого клипа, сохранив исходное качество видеофайла?