13

Я новичок в ffmpeg, и я слышал, что у него есть фильтр для черного. Я хочу удалить черные полосы сверху и снизу видео, чтобы видео было обрезано до оставшегося видео без черных полос. Спасибо:)

2 ответа2

24

FFmpeg cropdetect и фильтры для обрезки

1. Получить параметры урожая

Параметр cropdetect может использоваться для предоставления параметров фильтра обрезки . В этом примере первые 90 секунд пропускаются и 10 кадров обрабатываются:

$ ffmpeg -ss 90 -i input.mp4 -vframes 10 -vf cropdetect -f null -
...
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:215 t:0.215000 crop=1280:720:0:0
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:257 t:0.257000 crop=1280:720:0:0
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:299 t:0.299000 crop=1280:720:0:0

Таким образом, согласно обрезанию мы можем использовать crop=1280:720:0:0 .

2. Предварительный просмотр с ffplay

$ ffplay -vf crop=1280:720:0:0 input.mp4

3. Перекодировать с использованием фильтра обрезки

$ ffmpeg -i input.mp4 -vf crop=1280:720:0:0 -c:a copy output.mp4

В этом примере аудио просто копируется потоком (ремуксируется), так как вам, вероятно, не нужно перекодировать его.

Также см


Обрезать во время воспроизведения

Как вы видели выше на примере ffplay некоторые плееры позволяют вам обрезать при воспроизведении. Это имеет преимущество:

  • Мгновенное удовлетворение; нет необходимости перекодировать
  • Качество сохраняется
1

Ответ @LordNeckbeard великолепен. Я рекомендовал бы это в большинстве случаев.

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

st:1 error, non monotone timestamps 

В итоге у меня возникли проблемы с предложенным ответом как с -c:a не поддерживается версией, которую я запускал, так и с проблемой преобразования битрейта в видео, которое я использовал.

Примечание: -c:a можно заменить на: -acodec

Самым простым альтернативным бесплатным решением, которое я нашел, было использование ручного тормоза.

Это автокроп удалил черные полосы без особых проблем.

Надеюсь, это поможет.

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