Extraire une partie d'une vidéo avec une commande à une ligne

58

Si j'ai une vidéo, normalement avi, mais que je pourrais en avoir une, et que je veux en créer une autre dans le même format mais juste une partie, la position i seconde à f secondes dans la vidéo, quelle est la commande à une ligne pour faire cela?

    
posée Strapakowsky 31.08.2011 - 09:36
la source

3 réponses

86

Cela peut être fait en utilisant mencoder et ffmpeg .

mencoder

Dites que vous voulez découper une partie à partir de 00:00:30 dans le fichier d'origine avec une durée de 5 secondes et que vous ne devez pas le réencoder (si vous voulez le ré-encoder, vous devrez remplacez copy par les codecs audio et vidéo, pour obtenir une liste des problèmes de codecs audio disponibles mencoder -oac help , pour obtenir une liste des problèmes de codecs vidéo disponibles mencoder -ovc help ), vous émettez:

mencoder -ss 00:30:00 -endpos 00:00:05 -oac copy -ovc copy originalfile -o newfile

Vous devrez remplacer orginalfile et newfile par des noms de fichiers réels, le dernier étant le nom du fichier créé pour contenir la partie découpée.

ffmpeg

Dites que vous voulez découper une partie à partir de 00:00:30 dans le fichier d'origine avec une longueur de 5 secondes et qu'il ne faut pas le ré-encoder (si vous voulez le ré-encoder, doivent remplacer copy avec les codecs audio et vidéo, pour obtenir une liste des problèmes de codecs disponibles ffmpeg -formats -E ), vous émettez alors:

ffmpeg -ss 00:00:30 -i orginalfile -t 00:00:05 -vcodec copy -acodec copy newfile

Vous devrez remplacer orginalfile et newfile par des noms de fichiers réels, le dernier étant le nom du fichier créé pour contenir la partie découpée.

Pour référence, voir lien et "7. Copiez seulement une partie de la vidéo" dans lien

    
réponse donnée N.N. 31.08.2011 - 10:23
la source
19

Avez-vous besoin de couper la vidéo avec le ré-encodage ou sans ré-encoder le mode? Vous pouvez essayer de suivre la commande ci-dessous.

Synopsis: ffmpeg -i [fichier_entrée] -ss [start_seconds] -t [duration_seconds] [fichier_sortie]

Utiliser la vidéo FFmpeg cut mp4 sans réencodage

Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -c copy cut_video.mp4

Utiliser la vidéo FFmpeg cut mp4 avec le ré-encodage

Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -async 1 -strict -2 cut_video.mp4

Si vous souhaitez couper une section depuis le début, déposez simplement -t 00:00:10 de la commande

    
réponse donnée Ben Wong 04.01.2016 - 07:33
la source
-1

Pour être plus précis, vous pouvez: MANUELLEMENT Ouvrez le fichier dans un lecteur multimédia qui avance par image (lecture au pot mon préféré mais fonctionne avec MPC-HC) et lisez un fichier AVISynth avec des données telles que:

DirectShowSource(("C:\Downloads\Video\Do you want him.flv"), Pixel_Type="yuy2").Crop(0,0,-0,-0)
Subtitle("C:\Downloads\Video\Do you want him.flv", font="Arial", size=24, text_color=$ff0000, align=3)
ShowFrameNumber(scroll=true, x=336, y=27, font="Arial", size=24, text_color=$ff0000)

ShowTime(x=398, y=44, font="Arial", size=24, text_color=$ff0000)

Coupez ensuite avec le format de temps EXACT:

ffmpeg -i "Path\do you want him.flv" -ss 00:00:05.240 -to 00:00:08.360 -vcodec libx264 -acodec libvo_aacenc "Path\Do you want him1.flv"

et

ffmpeg -i "Path\do you want him.flv" -ss 00:00:10.240 -to 00:00:14.360 -vcodec libx264 -acodec libvo_aacenc "Path\Do you want him2.flv"

Si vous souhaitez vous inscrire, créez un fichier txt avec les fichiers vidéo avec un contenu tel que:

file 'C:\Downloads\Video\Do you want him1.flv'

file 'C:\Downloads\Video\Do you want him2.flv'

Exécuter ffmpeg :

ffmpeg -f concat -i FileList.txt -c copy "Path\NewName_joined.flv"

PROGRAMMATIQUEMENT J'ai écrit un programme mais je n'ai pas de niveau 10 pour le montrer, désolé

    
réponse donnée Budman1 04.09.2014 - 07:55
la source

Lire d'autres questions sur les étiquettes