Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как с ffmpeg порезать в папке видеофайлы для инстаграм-сторис? (https://javascript.ru/forum/events/84000-kak-s-ffmpeg-porezat-v-papke-videofajjly-dlya-instagram-storis.html)

mik888em 11.05.2022 20:50

Как с ffmpeg порезать в папке видеофайлы для инстаграм-сторис?
 
Вложений: 2
Есть в папке много видео файлов *mov. (на скрине их два шт.)
Вложение 4724

Хочу все эти *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


Как побороть ошибку? Скрин ошибки:

mik888em 12.05.2022 22:34

Вобщем запустился скрипт через батник, но батник работает всего с одним видеофайлом из папки. Как он с этим файлом работает: рубит его на несколько кусков, каждый итоговый кусок длиннее предыдущего итогового куска на 59 секунд. То есть файлы получаются продолжительностью: 59 сек, 118 сек, 177сек и так далее.
Вот на схеме я изобразил что он делает:

Код батника:
@echo off
for %%i in (*.mov) do (
  ffmpeg -i "%%i" -vf "scale=ih*9/16:ih,scale=iw:-2,setsar=1,scale=-2:1080" -f segment -segment_time 59 -segment_format_options movflags=+faststart -force_key_frames "expr: gte(t, n_forced * 0.5)" -y "%%03d.mp4"

)


Почему он работает всего с одним видеофайлом из папки? И почему он каждый новый файл создаёт длиннее предыдущего на 59 секунд, требуется чтоб он порубил все файлы на куски по 59 секунд ровно, если последний файл получается не кратно 59 секунд а короче, то пусть последний файл будет короче. Как эти ошибки пройти , уже 2 дня голову ломаю))


Часовой пояс GMT +3, время: 00:56.