#1 Le 28/12/2013, à 08:59
- kykyou
[Résolu] découper 15 sec de .mp4 sur plusieurs fichiers (batch)
bonjour
voila ma question (après avoir cherché partout je ne trouve pas MA solution)
j ai une 100 enne de vidéo en mp4
et je voudrais enlever 15 seconde de pub sur chaque video
supprimer de 00 a 15 seconde sur chaque fichier .mp4 sans re encoder
j ai trouvé cela :
ffmpeg -ss 00:00:15.00 -i 01.mp4 video-new.mp4
mais ça me re-encode tout et décale le son
je ne veux pas reencoder
je veux tout faire avec une seule ligne de commande
je devrais pouvoir m en sortir avec cette ligne la mais je sais pas faire ..
Découper une vidéo
mencoder 01.mp4 -ss 15 -endpos 99999999 -ovc copy -oac pcm -o cutted.mp4
cette ligne de commande fonctionne presque ... sauf que ca grossis les fichier qui sont en PCM maintenant et comment on fais un batch sans donner les noms , genre pour tous les fichier d un dossier
merci de votre aide
Dernière modification par kykyou (Le 04/01/2014, à 04:57)
Hors ligne
#2 Le 28/12/2013, à 10:23
- kykyou
Re : [Résolu] découper 15 sec de .mp4 sur plusieurs fichiers (batch)
je me repond a moi meme ...
j ai trouvé une solution fastidieuse ...
en faite j ai :
ls < kykyou.txt
pour creer la liste
ensuite ouverture de kykyou.txt avec Gnumeric (tableur)
faire deux colonne de la liste par copier coller
enregistrer sous .html
ouverture du fichier html qui ressemble a cela (rejout de 00devant chaque nom de droite)
kykyou.video.perso.n°040.14.11.2010.mp4 00kykyou.video.perso.n°040.14.11.2010.mp4
kykyou.video.perso.n°041.20.11.2010.mp4 00kykyou.video.perso.n°041.20.11.2010.mp4
etc etc etc
tout copier coller dans un nouveau fichier txt
ensuite avec les fonction remplacer , se debrouiller pour incruster les ligne de commande sur chaque ligne :
mencoder kykyou.video.perso.n°040.14.11.2010.mp4 -ss 15 -endpos 9999999999999 -ovc copy -oac pcm -o 00kykyou.video.perso.n°040.14.11.2010.mp4
mencoder kykyou.video.perso.n°041.20.11.2010.mp4 -ss 15 -endpos 9999999999999 -ovc copy -oac pcm -o 00kykyou.video.perso.n°041.20.11.2010.mp4
mencoder kykyou.video.perso.n°042.27.11.2010.mp4 -ss 15 -endpos 9999999999999 -ovc copy -oac pcm -o 00kykyou.video.perso.n°042.27.11.2010.mp4
mencoder kykyou.video.perso.n°043.04.12.2010.mp4 -ss 15 -endpos 9999999999999 -ovc copy -oac pcm -o 00kykyou.video.perso.n°043.04.12.2010.mp4
mencoder kykyou.video.perso.n°044..mp4 -ss 15 -endpos 9999999999999 -ovc copy -oac pcm -o 00kykyou.video.perso.n°044..mp4
mencoder kykyou.video.perso.n°045.18.12.2010.mp4 -ss 15 -endpos 9999999999999 -ovc copy -oac pcm -o 00kykyou.video.perso.n°045.18.12.2010.mp4
mencoder kykyou.video.perso.n°046.25.12.2010.mp4 -ss 15 -endpos 9999999999999 -ovc copy -oac pcm -o 00kykyou.video.perso.n°046.25.12.2010.mp4
ouf , (bon ça m as pris 15 min on va dire)
et pour finir j envois tout ça dans le terminal ....
MAIS CA FONCTIONNE !!! j ai fais avec ce que je savais faire ...
mort de rire la solution a deux balle !
j attend votre solution ( des pro du terminal lol)
Dernière modification par kykyou (Le 28/12/2013, à 10:26)
Hors ligne
#3 Le 28/12/2013, à 10:49
- pingouinux
Re : [Résolu] découper 15 sec de .mp4 sur plusieurs fichiers (batch)
Bonjour,
Pour créer la liste, c'est
ls > kykyou.txt
et non
ls < kykyou.txt
Ceci devrait marcher :
for f in kykyou*.mp4
do
mencoder "$f" -ss 15 -endpos 9999999999999 -ovc copy -oac pcm -o 00"$f"
done
Hors ligne
#4 Le 28/12/2013, à 11:13
- Zakhar
Re : [Résolu] découper 15 sec de .mp4 sur plusieurs fichiers (batch)
Je confirme le ">" !
"for" est vraiment super pour ce genre de chose.
Sinon tu as aussi :
ls *.mp4 | xargs -t -n1 -I '{}' mencoder '{}' -ss 15 -endpos 9999999999999 -ovc copy -oac pcm -o 00'{}'
Et si tu te sens aventurier et que tu as un monstre de course, tu peux toujours rajouter un -P0 pour qu'il fasse tout en parallèle, ou plus raisonnablement, un -PN en remplaçant N par le nombre de coeurs de ta machine, ainsi, il va faire N découpages en parallèle.
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#5 Le 28/12/2013, à 11:37
- Compte anonymisé
Re : [Résolu] découper 15 sec de .mp4 sur plusieurs fichiers (batch)
Question bête pourquoi, "-oac pcm" et pas "-oac copy" ?
peut-être que dans ton cas ça marche pas mais sinon c'est mieux ça ne réencode pas le son
#6 Le 28/12/2013, à 14:13
- Zakhar
Re : [Résolu] découper 15 sec de .mp4 sur plusieurs fichiers (batch)
J'ai vu ça aussi... et présumé que ses bandes sons étaient déjà en PCM !
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#7 Le 30/12/2013, à 16:32
- kykyou
Re : [Résolu] découper 15 sec de .mp4 sur plusieurs fichiers (batch)
merci beaucoup
oui pour la liste , jme suis trompé , mais c est une commande que j utilisais sous windows deja ... dir >toto.txt
et c est en pcm car j avais un message d'erreur qui me proposais de changer oac en pcm ..
je vais tester cela en rentrant chez moi
je viens de tester avec oac copy j ai ce message d erreur a la fin :
videocodec: framecopy (960x720 24bpp fourcc=34363248)
Audio format 0x4134504d is incompatible with '-oac copy', please try '-oac pcm' instead or use '-fafmttag' to override it.
pingouinux et Zakhar vos deux manières de faire fonctionnent mais la première (pingouinux) est plus rapide ..
re merci
si j osais je vous demanderais comment on fait les coller tous ensemble même si ils ne sont pas de la même taille ou codec audio ?
tous ca dans la meme commande bien sur si possible ..
Dernière modification par kykyou (Le 30/12/2013, à 16:53)
Hors ligne
#8 Le 09/03/2015, à 16:51
- kykyou
Re : [Résolu] découper 15 sec de .mp4 sur plusieurs fichiers (batch)
je me repond encore a moi meme et a ceux que cela pouraient aider ...
je me suis bien pris la tete pour arriver a encoder le son car avec les commandes plus haut le fichier final etait au moins 2 fois plus gros ... donc ...
grace a GMencoder a qui j ai piké la commande pour bidouiller avec la mienne , et cela fonctionne carrement super bien ..
pour enlever 15 seconde au debut d une video et reencoder le son a la volée en Lame MP3 ....
for f in *.mp4
do
mencoder "$f" -ss 15 -endpos 9999999999999 -ovc copy -oac mp3lame -lameopts br=128:q=9:aq=9:cbr:mode=1 -o 00"$f"
done
explication pour les débutants comme moi
for f in *.mp4 = tout les fichiers .mp4
-ss 15 = enlever 15 seconde
-endpos 9999999999999 = fichier de toutes les durée
-ovc copy = ne pas encoder la vidéo , la copier simplement
-oac mp3lame = encoder le son en lame MP3
-lameopts br=128:q=9:aq=9:cbr:mode=1 , on peut mettre 256 , 320 etc etc cbr = constant bitrate
-o 00"$f" = ajouter 00 au début de nom de chaque fichier ...
merci encore a tous pour votre aide .....
Hors ligne