Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.05.2022, 20:50
Аспирант
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 59

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

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


Как побороть ошибку? Скрин ошибки:
Изображения:
Тип файла: jpg asd.jpg (292.3 Кб, 2 просмотров)

Последний раз редактировалось mik888em, 11.05.2022 в 22:58. Причина: ошибка
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2022, 22:34
Аспирант
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 59

Вобщем запустился скрипт через батник, но батник работает всего с одним видеофайлом из папки. Как он с этим файлом работает: рубит его на несколько кусков, каждый итоговый кусок длиннее предыдущего итогового куска на 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 дня голову ломаю))

Последний раз редактировалось mik888em, 12.05.2022 в 22:39. Причина: ошибка
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 19:48
Как развить мышление для программирования? Alex455 Оффтопик 37 12.07.2012 14:01
IE: dсплывающая подсказка - как "погасить" для img трибут ALT? Nominus umbra Элементы интерфейса 1 23.05.2010 03:52
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 22:30
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 15:53