Как разделить, вставить и объединить видео файлы вместе ffmpeg

У меня есть видео 20 секунд (00.20.00).


Я хочу разделить его на 20 частей (Часть 1, Часть 2, ПЭТ 3,...часть 20), затем я хочу вставить между этими разделами видео эффект (часть 1, Видео 1, Часть 2, Видео 1, Часть 3, Видео 1, .... par20).

Я не представлял себе команду, чтобы выполнить его, как я могу это сделать?

=========================
Я методом проб и ошибок @Mulvya

ffmpeg -i inputvideo.mp4 -i effect.mp4 -filter_complex
   "[0]split=20[v1][v2][v3][v4][v5][v6][v7][v8][v9][v10][v11][v12][v13][v14][v15][v16][v17][v18][v19][v20];
    [v1]trim=0:1,setpts=PTS-STARTPTS[v1t];
    [v2]trim=1:2,setpts=PTS-STARTPTS[v2t];
    [v3]trim=2:3,setpts=PTS-STARTPTS[v3t];
    [v4]trim=3:4,setpts=PTS-STARTPTS[v4t];
    [v5]trim=4:5,setpts=PTS-STARTPTS[v5t];
    [v6]trim=5:6,setpts=PTS-STARTPTS[v6t];
    [v7]trim=6:7,setpts=PTS-STARTPTS[v7t];
    [v8]trim=7:8,setpts=PTS-STARTPTS[v8t];
    [v9]trim=8:9,setpts=PTS-STARTPTS[v9t];
    [v10]trim=9:10,setpts=PTS-STARTPTS[v10t];
    [v11]trim=10:11,setpts=PTS-STARTPTS[v11t];
    [v12]trim=11:12,setpts=PTS-STARTPTS[v12t];
    [v13]trim=12:13,setpts=PTS-STARTPTS[v13t];
    [v14]trim=13:14,setpts=PTS-STARTPTS[v14t];
    [v15]trim=14:15,setpts=PTS-STARTPTS[v15t];
    [v16]trim=15:16,setpts=PTS-STARTPTS[v16t];
    [v17]trim=16:17,setpts=PTS-STARTPTS[v17t];
    [v18]trim=17:18,setpts=PTS-STARTPTS[v18t];
    [v19]trim=18:19,setpts=PTS-STARTPTS[v19t];      
    [v20]trim=19:20,setpts=PTS-STARTPTS[v20t];
    [v1t][1][v2t][1][v3t][1][v3t][1][v4t][1][v5t][1][v6t][1][v7t][1][v8t][1][v9t][1][v10t][1][v11t][1][v12t][1][v13t][1][v14t][1][v15t][1][v16t][1][v17t][1][v18t][1][v19t][1][v20t]concat=n=39:v=1:a=0[v]" -map [v] processed.mp4

.
.
.
[Авфильтерграф @ 03e5dae0] слишком много входных данных указано для фильтра "concat".
Ошибка инициализации сложных фильтров.
Недопустимый аргумент

14
задан M Join
20.02.2023 4:09 Количество просмотров материала 3683
Распечатать страницу

2 ответа

ffmpeg -i myVideo.avi -acodec copy -f segment -segment_time 1 -vcodec copy -reset_timestamps 1 -map 0 -an video%d.avi

принято от unix.stackexchange.com

разделит видео на 20 сегментов, называемых video1.avi-video20.АВ; тогда мы должны concernate видео вместе с videoEffect1.avi В между:

ffmpeg -f concat -i <(for f in ./video*.avi; do echo "file '$PWD/$f'" && echo "file '$PWD/videoEffect1.avi'"; done) -c copy output.avi

больше информации на ffmpeg wiki

или, как одна огромная команда:

ffmpeg -i myVideo.avi -acodec copy -f segment -segment_time 1 -vcodec copy -reset_timestamps 1 -map 0 -an video%d.avi && ffmpeg -f concat -i <(for f in ./video*.avi; do echo "file '$PWD/$f'" && echo "file '$PWD/videoEffect1.avi'"; done) -c copy output.avi && rm -rf ./video[0-9]*.avi
0
отвечен djsmiley2k 2023-02-21 11:57

чтобы сделать это одной командой, используйте

ffmpeg -i video.avi -i effect.avi -filter_complex
       "[0]split=20[v1][v2][v3]...[v20];
        [v1]trim=0:1,setpts=PTS-STARTPTS[v1t];
        [v2]trim=1:2,setpts=PTS-STARTPTS[v2t];
        [v3]trim=2:3,setpts=PTS-STARTPTS[v3t];
        ...
        [v20]trim=19:20,setpts=PTS-STARTPTS[v20t];
        [v1t][1][v2t][1][v3t][1]...[v19t][1][v20t]concat=n=39:v=1:a=0[v]"
-map [v] processed.mp4

Я предположил, что нет звука.

в случае, если это не ясно, я пропустил запись всех операций обрезки и всех входов в фильтр concat. Все они должны быть конкретизированы.

1
отвечен Gyan 2023-02-21 14:14

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх