В том, что я пытаюсь сделать, мне нужно удалить некоторые части видеофайла и создать из него новую.
Например , из видеофайлакак это:
===================
Я делаю два среза
======||=====||||==
и создаю новый меньший видеофайл:
=============
И когда я говорю 2, я имею в видупроизвольное количество отдельных срезов, в зависимости от видеофайла.
Если бы я хотел вырезать только одну часть, я бы сделал:
ffmpeg -i video.mp4 -ss 00:00:03.500 -to 00:00:08.500 -async 1 cut.mp4 -y
, которая отлично работает.Возможно, я мог бы сделать это много раз, а затем соединить все фрагменты вместе ... Но это очень неэффективно для больших видеофайлов.
Чтобы сделать два фрагмента, я смотрел на filter_complex .Я пытался сделать это правильно часами, но я не могу заставить это работать: /
Если я делаю что-то подобное, я получаю видео без звука:
command = 'ffmpeg -i video.mp4 \
-filter_complex "\
[0]trim=start_frame=10:end_frame=20[v0];\
[0]trim=start_frame=30:end_frame=40[v1];\
[v0][v1]concat=n=2[v5]"\
-map [v5] -async 1 output.mp4'
Если я попытаюсь сделать это, все будет испорчено:
ffmpeg -y -i video.mp4 \
-filter_complex "\
[0:v]trim=start_frame=10:end_frame=20[v0];\
[0:a]atrim=start=10:end=20[a0];\
[0:v]trim=start_frame=30:end_frame=40[v1];\
[0:a]atrim=start=30:end=40[a1];\
[v0][a0][v1][a1]concat=2:v=1:a=1[v5][a]"\
-map [v5] -map [a] -async 1 output.mp4
Я даже пытаюсь сделать это в Python с ffmpeg-python https://github.com/kkroening/ffmpeg-python, но ятакже не могу заставить работать звук.
Кто-нибудь может мне помочь?Большое спасибо !!