Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Скрипт batch на объединение видео ffmpeg

Дмитрий Грязных Ученик (141), открыт 1 неделю назад
Привет, я нарезаю видео через Premiere Pro встроенной функцией Scene Edit Detection и бывают моменты где он нарезает один момент на несколько файлов. У меня раньше был скрипт batch на который если перенести выделенные видео они объединялись, но он был утерян, а как он написан я не помню. У кого-то есть что-то похожее на то что я описал? Я помню что он создавал список куда сохранял пути к файлам, а потом через ffmpeg объединял. Имя выходного файла ставилось именем первого из перетащенных видео, а старые удалялись. Кто-то может поделиться чем-то подобным? А если есть метод быстрой качественной бесплатной автоматической нарезки видео на моменты, был бы очень признателен (AutoCut не предлагать, он платный), а то Premiere Pro долго детектит и темболее уж рендерит (про АЕ вообще молчу). Заранее спасибо за помощь.
Дополнен 1 неделю назад
Я сгенерировал через нейронку, но оно объединяет лишь пару файлов, а не все что я выделил

```
@echo off
setlocal enabledelayedexpansion

REM Проверяем, что ffmpeg доступен в системной переменной PATH
where ffmpeg >nul 2>nul
if %errorlevel% neq 0 (
echo ffmpeg не найден. Убедитесь, что он установлен и добавлен в PATH.
exit /b
)

REM Проверяем, что переданы файлы для объединения
if "%~1"=="" (
echo Перетащите видеофайлы на этот bat файл для объединения.
exit /b
)

REM Создаем список файлов для объединения
set "files="
set "firstfile=%~nx1"
:loop
if "%~1"=="" goto :merge
set "files=!files! -i "%~1""
shift
goto :loop

:merge
REM Объединяем файлы в один
ffmpeg %files% -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1" -strict -2 -y "output.mp4"
del %*
ren output.mp4 %firstfile%

:end
pause
```
1 ответ
Александр Лонберг Мыслитель (7699) 1 неделю назад
Если речь о нарезке без потери качества(по временным меткам), то есть бесплатная:
https://github.com/mifi/lossless-cut
... но интерфейс там ужасен

А для объединения можно написать свой, но я понятия не имею как это сделать с перетаскиваем файлов. Если одноразово, то создать файл-список concat.txt в таком формате:
file a1.mp4
file a2.mp4
file a3.mp4
После чего запустить в командной строке
./ffmpeg.exe -f concat -i ./concat.txt -c copy ./output_part_all.mp4
Похожие вопросы