четверг, 8 августа 2013 г.

FFMPEG - Crop и Slow Mo

Прикопаю еще одну фишку FFmpeg - вырезание в отдельный файл части экрана исходного видео (crop) и уменьшение скорости воспроизведения (slowmo).

Есть такое видео с дурацкой ориентацией кадра:



Можно скачать его в разрешении 1080 и вырезать центральную часть 640x480, в которой собственно всё и происходит, это достаточно просто (-vf crop=640:480):

ffmpeg -i "Chiba sensei seminar 01.mp4" -vf crop=640:480 -b:v 3000K "01chiba.mp4"

Хотя, если нужно только получить в замедленном виде один фрагмент, можно все действия сразу запихать в одну команду:

ffmpeg -ss 00:01:42 -t 00:00:01 -i "Chiba sensei seminar 01.mp4" -qscale 0 -vf crop=640:480 -f yuv4mpegpipe - | \
yuvfps -s 1:20 -r 1:1 | yuvfps -r 30:1 -c | \
ffmpeg -f yuv4mpegpipe -i - -qscale 0 koteslowlQ.mp4
  • -ss 00:01:42 -t 00:00:01 - берем только одну секунду, начиная с 1 мин 40 сек исходного видео
  • -qscale 0 - качество видео не трогаем
  • -vf crop=640:480 - вырезаем из центра область 640х480
  • -f yuv4mpegpipe - задаем формат, в котором видео отправляется по конвейеру
  • yuvfps.exe - утилитка из комплекта MJpeg tools
  • -s 1:20 -r 1:1 - на каждую 1/20-ю часть "входящих" кадров создаем 1 полный кадр нового видеопотока
  • -r 30:1 - говорим, что новый видеопоток будет со скоростью 30 кадров в сек
  • и последней частью команды ffmpeg собирает из видеопотока идущего по конвейеру файл в формате mp4.
Обратные слэшики лучше выкосить (не все файловые менеджеры их понимают) и набирать команду в одну строку.

Результат команды в файле koteslowlQ.mp4 - центральная часть исходного кадра, 1 сек в замедленном виде:



А вот для сравнения изделие другой, спец. утилитки для slow mo - slowmoVideo, она умеет растягивать разные интервалы исходного видео с разной скоростью, в соответствии с заданными настройками, для её работы тоже кстати требуется FFmpeg



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

Комментариев нет:

Отправить комментарий