web-dev-qa-db-fra.com

FFMPEG Découpage MP4 avec la même qualité

J'ai un gros fichier MP4. Je tente de le scinder en fichiers plus petits.

ffmpeg -i largefile.mp4 -sameq -ss 00:00:00 -t 00:50:00 smallfile.mp4

Je pensais que l'utilisation de -sameq conserverait les mêmes paramètres de qualité. Cependant, je ne dois pas comprendre ce que cela fait.

Je cherche à conserver la même qualité (audio/vidéo) et la compression avec les fichiers divisés. Toutefois, ce paramètre rend les fichiers divisés beaucoup plus volumineux.

Quel indicateur dois-je définir pour conserver la même qualité et les mêmes attributs dans les fichiers fractionnés tout en maintenant le même rapport qualité/taille?

Par exemple, si mon fichier original mesure environ 12 Go et une résolution de 1920x1080 avec un débit de 10617kbps et un débit en trame de 23 images/seconde et un son à 6 canaux avec 317kbps, j'aimerais que les fichiers scindés soient identiques à un tiers de cette taille ( si je le divise en trois morceaux).

49
Chris Weber

Si vous souhaitez simplement scinder la vidéo sans la réécoder, utilisez le codec copy pour l'audio et la vidéo. Essaye ça:

ffmpeg -ss 00:00:00 -t 00:50:00 -i largefile.mp4 -acodec copy \
-vcodec copy smallfile.mp4

Notez que cela ne crée que la première division. La suivante peut être effectuée avec une commande commençant par ffmpeg -ss 00:50:00.

Cela peut être fait avec une seule commande:

ffmpeg -i largefile.mp4 -t 00:50:00 -c copy smallfile1.mp4 -ss 00:50:00 -c copy smallfile2.mp4

Cela créera smallfile1.mp4, se terminant au bout de 50 minutes dans la vidéo de largefile.mp4, et smallfile2.mp4, commençant à 50 minutes et se terminant à la fin du fichier largefile.mp4.

80
fideli

Une manière alternative de le faire est la suivante:

// create a 2-min clip
ffmpeg -i input.mp4 -ss 00:10:00 -to 00:12:00 -c copy output.mp4

/**
* -i  input file
* -ss start time in seconds or in hh:mm:ss
* -to end time in seconds or in hh:mm:ss
* -c codec to use 
*/

La qualité du fichier reste la même car nous utilisons -c copy pour copier les flux audio + vidéo originaux vers la sortie.

Référence, liste des commandes FFmpeg couramment utilisées: DigitalFortress

2
Niket Pathak