Как с ffmpeg порезать в папке видеофайлы для инстаграм-сторис?

Есть в папке много видео файлов *mov. (на скрине их два шт.)

Хочу все эти *mov файлы порезать для инстаграм видео-сторис длинной по 59 секунд (неважно на каком кадре резать). По итогу получится оч мнооооого видеофайлов по 59 секунд.

скрин

Хочу порезать чтоб каждый итоговый видеофайл имел такие параметры:

MP4 Container format
H.264 Video Codec
AAC Audio
3500kbps bitrate
30 FPS
60 seconds maximum in length
1080p 9:16 ( 1080 х 1920 px)

Сделал для ffmpeg такой батник:

@echo off
for %%i in (*.mov) do (
  ffmpeg -i "%%i" -vf scale=ih*9/16:ih,scale=iw:-2,setsar=1,scale=-2:1080 -c:v libx264 -profile:v main -level:v 3.0 -x264-params scenecut=0:open_gop=0:min-keyint=72:keyint=72 -c:a aac -preset slow -crf 23 -r 30 -sn -f segment -segment_time 59 -pix_fmt yuv420p -y "%%~ni.mp4"

)
pause

Как побороть ошибку, как я понял что-то с именами файлов? Скрин ошибки: скрин


Ответы (1 шт):

Автор решения: eri

По примеру из документации

ffmpeg -i in.mov -force_key_frames  "expr: gte(t, n_forced * 0.5)" -f segment -segment_time 59 -reset_timestamps 1 out%03d.mp4

Но я бы добавил ещё -force_key_frames "expr: gte(t, n_forced * 0.5)" чтоб не было заметно серых артефактов в момент склейки.

upd. Убрал faststart потому как он наверняка не нужен тут. Добавил -reset_timestamps 1 чтоб счётчик времени видео шел с 0.

→ Ссылка