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


51

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 10617 kbps et un débit en trame de 23 images / seconde et un son à 6 canaux avec 317 kbps, je souhaite que les fichiers fractionnés ne soient identiques qu’un tiers de cette taille ( si je le divise en trois morceaux).


3
Pour votre information, si vous lisez ceci: n'utilisez pas -sameq, cela ne signifie pas "qualité égale" .
— Zaz

Réponses:


81

Si vous souhaitez simplement scinder la vidéo sans la recoder, utilisez le copycodec 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 prochaine peut être faite 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.


2
En utilisant cette méthode sur un fichier mp4, je reçois les deux premières secondes de chaque fichier créé sous forme d'image figée (l'audio est lu normalement). Une raison connue pour cela?
— Ron Harlev

Cela ressemble à un bug. Mise à jour vers la dernière version de ffmpeg.
— Robert

@ Robert J'ai mis à jour plusieurs fois depuis 2010. Merci.
— Fideli

@RonHarlev C'est le comportement actuellement attendu. Sans ré-encodage, vous ne pouvez couper des vidéos que sur des "images clés". Les images entre les images clés ne contiennent pas suffisamment d'informations pour créer une image complète. Voir: trac.ffmpeg.org/wiki/Seeking#Seekingwhiledoingacodeccopy
— Philip Thrasher

3

Une autre façon de le faire est:

// 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 copyhabituellement pour copier les flux audio + vidéo originaux vers la sortie.

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.