Comment supprimer quelques secondes du fichier .mp4 en utilisant ffmpeg? J'ai le fichier test.mp4 et je veux supprimer les 10s de 11h00 à 11h10
Vous pouvez essayer de le faire sans ré-encoder, mais comme vous ne pouvez couper que sur des images clés, elles ne seront probablement pas alignées sur les temps de coupe souhaités. Si vous avez besoin de précision, vous devrez donc ré-encoder:
ffmpeg -i input.mp4 -filter_complex \
"[0:v]trim=end=660,setpts=N/FRAME_RATE/TB[v0]; \
[0:a]atrim=end=660,asetpts=N/SR/TB[a0]; \
[0:v]trim=start=670,setpts=N/FRAME_RATE/TB[v1]; \
[0:a]atrim=start=670,asetpts=N/SR/TB[a1]; \
[v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]" \
-map "[v]" -map "[a]" output.mp4
Voir Documentation de filtre FFmpeg pour plus de détails sur chaque filtre.
Je pense que vous devez couper la vidéo en 2 parties, puis les fusionner. la première "valeur temporelle" est le point de départ, la deuxième "valeur temporelle" est la longueur de la vidéo que vous souhaitez couper. En dessous, par exemple, la première découpe commence à 00:00:00 et dure 11 minutes, la seconde coupe commence à 11 minutes 10 secondes et dure 10 minutes.
coupe:
ffmpeg -i test.mp4 -ss 00:00:00 -t 00:11:00 -acodec copy -vcodec copy test1.mp4
ffmpeg -i test.mp4 -ss 00:11:10 -t 00:10:00 -acodec copy -vcodec copy test2.mp4
fusionner:
cat test1.mp4 test2.mp4 >> test3.mp4
Je n'ai pas essayé, laissez-moi savoir si cela fonctionne.