Editeur vidéo professionnel ici qui n'est pas qualifié à FFmpeg, alors supportez-moi. J'ai un grand lot de vidéos, toutes de longueurs différentes, et j'aimerais les couper de 10 secondes au début ET de 10 secondes à la fin.
Je sais qu'il existe une commande "-sseof" qui recherche un code temporel basé sur la fin de la vidéo. Cependant, je ne peux que l'obtenir pour me donner la partie à la fin, pas la partie AVANT l'heure spécifiée. Par exemple, cela ne me donne que les 10 dernières secondes:
ffmpeg -sseof -10 -i test.mp4 outputB.mp4
Je veux l'exact opposé, tout jusqu'à les 10 dernières secondes.
Et j'aimerais vraiment le combiner avec une assiette dès le début. Ma formule idéale ressemblerait à ceci:
ffmpeg -i test.mp4 -ss 10 -to -sseof -10 output.mp4
Mais ça ne marche pas. Aucune suggestion? Merci!
MODIFIER:
La solution suggérée par Mulvya a fonctionné pour moi! Voici la formule que j'ai utilisée pour exécuter le script sur un dossier entier, coupant à 4,25 secondes du début et à 17,8 secondes de la fin de chaque clip (ces valeurs doivent être modifiées à plusieurs endroits chacune, mais cela fonctionne).
for file in *.mp4; do ffmpeg -i $file -filter_complex "[0]split[s1][s2]; [s1]trim=4.25,setpts=PTS-STARTPTS,fifo[bv]; [s2]trim=4.25,setpts=(PTS-STARTPTS)+17.8/TB,fifo[v]; [bv][v]overlay=shortest=1,trim=17.8,setpts=PTS-STARTPTS[fv]; [0]volume=0[b];[0]adelay=17800|17800[a]; [b][a]amix=duration=first,volume=2,atrim=22.05,asetpts=PTS-STARTPTS[fa]" -map "[fv]" -map "[fa]" "${file%.mp4}-trimmed.mp4"; done
Merci beaucoup!