3 голоса
 
536 просмотров
30.10.2020 / 08:35  kuzy4ka

Собрать видео из множества фрагментов в FFMPEG

Есть много фрагментов нарезанных из например стрима, хочется сделать полноценное видео из них. Есть в ffmpeg команда "конкат", но в каждый раз прописывать очень утомительно. Помогите со скриптом на Windows. Например: Скрипт кидается в папку с отрезками видео, делается его исполнение, по итогу выходной единый файл без транскодинга.
Изм. kuzy4ka от 30.10.2020 / 08:37

2020-10-30 10-31-20 Новая папка.jpg (35.65 кб.)
Ответы
 
2 голоса
 
# 30.10.2020 / 21:48  kuzy4ka
Спасибо огромное! Прикрутили бы донаты на сайте, за это надо благодарить денежкой.
Все работает)
Изм. kuzy4ka от 30.10.2020 / 21:52
1.11.2020 / 00:29  Витаминыч
Так вот же - https://annimon.com/str/donations.php
:)
 
2 голоса
 
# 30.10.2020 / 17:04  aNNiMON
  1. @echo off
  2.  
  3. rem === input ===
  4. set input_ext=mp4
  5. set use_copy=1
  6. set output_dir=results
  7.  
  8.  
  9. set opts=-hide_banner -y -v error -stats
  10. if %use_copy% equ 1 (
  11.   set opts=%opts% -c copy
  12. )
  13. set result_name=%output_dir%\concat_%random%%random%%random%.%input_ext%
  14. mkdir %output_dir%
  15. del temp.txt
  16. for /f "delims=" %%f in ('dir /b "*.%input_ext%"') do echo file '%%f' >> temp.txt
  17. ffmpeg -f concat -safe 0 -i temp.txt %opts% %result_name%
  18. echo Saved as %result_name%
  19. del temp.txt
Скрипт кинуть в папку с видео и запустить. Результат будет в подпапке results

По умолчанию работает только с mp4. При необходимости, можно изменить input_ext на ts или любое другое расширение.

Важная опция: use_copy=1, если стоит 1, то будет быстрое объединение без перекодирования, но если видео не совпадают по параметрам, то при таком объединении возможны ошибки, тогда рекомендую переставить на use_copy=0, будет медленнее, но зато надёжно.

concat_videos_in_folder.bat (0.47 кб.)
Всего: 2

Реклама

Мы в соцсетях

tw tg yt gt