|
Компьютерный форум OSzone.net » Цифровые технологии » Видео и аудио: обработка и кодирование » CMD/BAT - [решено] Как склеить 1000 файлов через ffmpeg? |
|
CMD/BAT - [решено] Как склеить 1000 файлов через ffmpeg?
|
Новый участник Сообщения: 8 |
Добрый день
Знатоки подскажите пожалуйста как склеить 1000 видео формата mov через ffmpeg на windows(выходной файл хоть mov хоть avi без разницы, главное склеить). Даны видеофайлы с названием: 1) 34523456735675467_random..mov 2) 54635638356735673_random.mov . . 999) 54632542556234634_random.mov Пробывал такие команды не помогло: 1) ffmpeg -f concat -i <(for f in C:/timelaps/fine/*.mov; do echo "file '$f'"; done) -qscale:v 0 all.avi Не найден файл 2) ffmpeg -f concat -i <(for f in C:\timelaps\fine\*.mov; do echo "file '$f'"; done) -qscale:v 0 all.avi Не найден файл 3) ffmpeg -f concat -i <(for f in /timelaps/fine/*.mov; do echo "file '$f'"; done) -qscale:v 0 all.avi Не найден файл 4) ffmpeg -f concat -i <(for f in \timelaps\fine\*.mov; do echo "file '$f'"; done) -qscale:v 0 all.avi Не найден файл 5) ffmpeg -i concat:"\timelaps\fine\*.mov" -c copy video22.mov *.mov неизвестная команда . . . . 99 Если ffmpeg не умеет клеить mov файлы, подскажите как пакетно 1000 файлов с разными именами поставить на перекодировку, к примеру в mpg|ts, спасибо |
|
Отправлено: 10:42, 19-06-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать
Не забудьте предварительно создать результирующий каталог Out, либо укажите иное существующее местоположение, отличное от исходного каталога.
|
Отправлено: 11:20, 19-06-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Бьет ошибку :
[file @ 0000000001f941e0] Protocol 'file' not on whitelist 'crypto'! [concat @ 00000000009d68a0] Impossible to open '1.mov' pipe:: Invalid argument (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 Input #0, concat, from 'pipe:': Duration: N/A, start: 0.000000, bitrate: 8019 kb/s Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 8019 kb/s, 30 fps, 30 tbr, 10k tbn, 20k tbc Metadata: handler_name : DataHandler Output #0, mov, to '\timelaps\fine\Result.mov': Metadata: encoder : Lavf57.73.100 Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 8019 kb/s, 30 fps, 30 tbr, 10k tbn, 10k tbc Metadata: handler_name : DataHandler Stream mapping: Stream #0:0 -> #0:0 (copy) [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000001f74ec0] Auto-inserting h264_mp4toannexb bitstream filterx [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000001f74ec0] Auto-inserting h264_mp4toannexb bitstream filterx [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000001f74ec0] Auto-inserting h264_mp4toannexb bitstream filterx [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000001f74ec0] Auto-inserting h264_mp4toannexb bitstream filterx [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000001f74ec0] Auto-inserting h264_mp4toannexb bitstream filterx frame=120588 fps=1385 q=-1.0 Lsize= 3935471kB time=01:06:59.51 bitrate=8020.7kbits/s speed=46.2x video:3934229kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.031568% |
Отправлено: 12:24, 19-06-2017 | #3 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Попробовал еще так тоже не помогло:
(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" |
Отправлено: 12:51, 19-06-2017 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата 90azat:
|
||
Отправлено: 12:59, 19-06-2017 | #5 |
Забанен Сообщения: 795
|
Так у тя ничего не получится. По каким-то упоротым причинам , кодеры ffmpeg упорно требуют файл-список для этого , в своём формате. Я тоже однажды чуть моск не сломал, пока допёр чего ему не нравиццо. Список такой:
1. имена желательно цифры (счетчик с нуля или другое что, с разделителями, но цифры надёжно канают и чтоб не много было. у тебя много) 2. список для склейки такой (имя любое, нопр. list.lst): file '3_2_01.m4a' file '3_2_02.m4a' file '3_2_03.m4a' file '3_2_04.m4a' file '3_2_05.m4a' file '3_2_06.m4a' file '3_2_07.m4a' file '3_2_08.m4a' file '3_2_09.m4a' file '3_2_10.m4a' file '3_2_11.m4a' file '3_2_12.m4a' file '3_2_13.m4a' file '3_2_14.m4a' file '3_2_15.m4a' file '3_2_16.m4a' file '3_2_17.m4a' ... ну и т.д. И еще. когда пробовал, заметил что это его -codec copy - не сафсем "copy", ибо что-то оно всё равно делает с потоком. Потому и ошибки , скрипы, "пустые экраны" заместо видео. Так что лучше всё-таки не copy , а что-нибудь рядом(по формату) с перекодировкой. тогда работает. Этот его копи, например работает хуже чем во wget -O- >> %filename%.mp4 - при скачивании .m3u8 листов видео с сайтов. При wget -O- >> %filename%.mp4 - все норм, файл работает всегда почти(99,5%). А вот если скачать все части отдельно в папку, а потом пытаться объединять через ffmpeg -codec copy(части жеж одного файла, там все одинаково 100%) - мусор получается очень часто. Так что это не совсем copy. |
Отправлено: 13:36, 19-06-2017 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата x0r:
Проблемы могут быть в контейнерах, форматах, потоках, битрейтах и т.п. Вот с этим надо смотреть и разбираться, почему я и порекомендовал обратиться сюда. |
|
Отправлено: 13:43, 19-06-2017 | #7 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Проблему решил:
(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" Осталось ватермарк запилить и в продакшн |
Отправлено: 14:29, 19-06-2017 | #8 |
Ветеран Сообщения: 2789
|
Профиль | Отправить PM | Цитировать Iska, Цитата Iska:
Цитата:
мож потому у человека и не получалось, что он набирал огрызки из разных видео, сливал их в некую "подборку", лепил свои ватермарки или чего там, и лил на тюбик? а, блин, уже написали )) я слишком поздно глянул )) |
|
------- Отправлено: 19:32, 24-06-2017 | #9 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Не понял как этим пользоваться. Поясните, пожалуйста, если софтина лежит в C:\temp\VEXP\pr\ffmpeg.exe, куча mov в C:\temp\VEXP\Video\ а результат нужен сюда C:\temp\VEXP\out
|
Отправлено: 16:41, 21-02-2019 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] MKVMerge и мульон файлов: склеить дорожки из разных папок с пробелами | R.i.m.s.k.y. | Скриптовые языки администрирования Windows | 2 | 15-06-2013 11:33 | |
Прочее - как направить вывод ffmpeg на экран? | pva | Общий по Linux | 6 | 01-03-2010 15:10 | |
Не получается склеить 12 файлов в один (формат AVI) | rodg08 | Видео и аудио: обработка и кодирование | 13 | 23-05-2009 12:58 | |
Как через батник склеить 2 строки в одну? | skeletor | Хочу все знать | 3 | 15-03-2007 18:47 | |
Как склеить | Tarry | Видео и аудио: обработка и кодирование | 10 | 28-09-2005 06:18 |
|