Как склеить 1000 файлов через ffmpeg?
Добрый день
Знатоки подскажите пожалуйста как склеить 1000 видео формата mov через ffmpeg на windows(выходной файл хоть mov хоть avi без разницы, главное склеить). Даны видеофайлы с названием: 1) 34523456735675467_random..mov 2) 54635638356735673_random.mov . . 999) 54632542556234634_random.mov Пробывал такие команды не помогло: Код:
Если ffmpeg не умеет клеить mov файлы, подскажите как пакетно 1000 файлов с разными именами поставить на перекодировку, к примеру в mpg|ts, спасибо |
Код:
(for /f "usebackq delims=" %i in (`dir /b /a:-d "*.mov"`) do @echo file '%~i') | "%ProgramFiles%\FFmpeg\bin\ffmpeg.exe" -safe 0 -f concat -i - -codec copy "Out\Result.mov" |
Бьет ошибку :
Код:
[file @ 0000000001f941e0] Protocol 'file' not on whitelist 'crypto'! Код:
(for /f "usebackq delims=" %i in (`dir /b /a:-d "*.mov"`) do @echo file '%~i') | "\timelaps\fine\ffmpeg.exe" -safe 0 -protocol_whitelist "file,http,https,tcp,tls,pipe" -f concat -i - -codec copy "\timelaps\fine\Result.mov" Код:
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000001f73dc0] Auto-inserting h264_mp4toannexb bitstream filter |
Попробовал еще так тоже не помогло:
Код:
(for /f "usebackq delims=" %i in (`dir /b /a:-d "*.mov"`) do @echo file '%~i') | "\timelaps\fine\ffmpeg.exe" -safe 0 -protocol_whitelist "file,http,https,tcp,tls,pipe" -f concat -i - -vcodec copy "\timelaps\fine\Result2.mp4" Код:
(for /f "usebackq delims=" %i in (`dir /b /a:-d "*.mov"`) do @echo file '%~i') | "\timelaps\fine\ffmpeg.exe" -safe 0 -protocol_whitelist "file,http,https,tcp,tls,pipe" -f concat -i - -vcodec copy -movflags faststart "\timelaps\fine\fine\Result3.mov" Код:
(for /f "usebackq delims=" %i in (`dir /b /a:-d "*.mov"`) do @echo file '%~i') | "\timelaps\fine\ffmpeg.exe" -safe 0 -protocol_whitelist "file,http,https,tcp,tls,pipe" -f concat -i - -vcodec copy "\timelaps\fine\fine\Result3.mov" |
Цитата:
|
Так у тя ничего не получится. По каким-то упоротым причинам , кодеры ffmpeg упорно требуют файл-список для этого , в своём формате. Я тоже однажды чуть моск не сломал, пока допёр чего ему не нравиццо. Список такой:
1. имена желательно цифры (счетчик с нуля или другое что, с разделителями, но цифры надёжно канают и чтоб не много было. у тебя много) 2. список для склейки такой (имя любое, нопр. list.lst): Код:
file '3_2_01.m4a' Код:
ffmpeg -f concat -i list.lst -vn -acodec aac -b:a 68k all-files-in-one.m4a Так что лучше всё-таки не copy , а что-нибудь рядом(по формату) с перекодировкой. тогда работает. Этот его копи, например работает хуже чем во wget -O- >> %filename%.mp4 - при скачивании .m3u8 листов видео с сайтов. При wget -O- >> %filename%.mp4 - все норм, файл работает всегда почти(99,5%). А вот если скачать все части отдельно в папку, а потом пытаться объединять через ffmpeg -codec copy(части жеж одного файла, там все одинаково 100%) - мусор получается очень часто. Так что это не совсем copy. |
Цитата:
Проблемы могут быть в контейнерах, форматах, потоках, битрейтах и т.п. Вот с этим надо смотреть и разбираться, почему я и порекомендовал обратиться сюда. |
Проблему решил:
Код:
(for /f "usebackq delims=" %i in (dir /b /a:-d "*.mov") do @echo file '%~i') | "\timelaps\fine\ffmpeg.exe" -safe 0 -protocol_whitelist "file,http,https,tcp,tls,pipe" -f concat -i - -c:v libx264 -an "\timelaps\fine\fine\Result7.avi" Код:
(for /f "usebackq delims=" %i in (`dir /b /a:-d "*.mov"`) do @echo file '%~i') | "\timelaps\fine\ffmpeg.exe" -safe 0 -protocol_whitelist "file,http,https,tcp,tls,pipe" -f concat -i - -c:v libx264 -an -filter:v "setpts=0.01*PTS" "\timelaps\fine\fine\Result8.avi" |
Iska, Цитата Iska:
Цитата:
мож потому у человека и не получалось, что он набирал огрызки из разных видео, сливал их в некую "подборку", лепил свои ватермарки или чего там, и лил на тюбик? а, блин, уже написали )) я слишком поздно глянул )) |
Не понял как этим пользоваться. Поясните, пожалуйста, если софтина лежит в C:\temp\VEXP\pr\ffmpeg.exe, куча mov в C:\temp\VEXP\Video\ а результат нужен сюда C:\temp\VEXP\out
|
Время: 07:24. |
Время: 07:24.
© OSzone.net 2001-