Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Hier à 09:10

Jarodd

Ffmpeg : compréhension des options

Bonjour,

J'utilise ffmpeg pour couper des vidéos faite avec un APN, ou des enregistrements sur la TNT. J'ai des interrogations sur ses options.

1/ j'ai un fichier vidéo mp4. Quand je veux supprimer une partie inintéressante, je fais cette commande :*

ffmpeg -i input.mp4 -y -c copy -to 30 output.mp4

-y permet de valider toutes les demandes de confirmation
-c copy permet de recréer le fichier avec les mêmes codecs qu'en entrée (audio, vidéo, sous-titres)
-to 30 coupe la vidéo à la 30e seconde.

Si j'omets -to (ou -t pour spécifier une durée), output.mp4 est censée être identique à input.mp4. Mais j'observe une différence de poids final. Par exemple, input.mp4 fait 105 Mo, mais output.mp4 fait 70 Mo.
Je ne comprends pas pourquoi puisque les codecs et la durée sont les mêmes.

2/ pour certains enregistrements tnt, je souhaite conserver les sous-titres (l'audio-description fournie sur certaines chaînes). Je coupe avec cette commande :

ffmpeg -i input.mp4 -y -c copy -ss 10:00 -to 20:00 output.mp4

Or cette commande crée un fichier sans les sous-titres. Pour les avoir, je dois faire ainsi :

ffmpeg -i input.mp4 -y -c copy -map 0 -scodec copy -ss 10:00 -to 20:00 output.mp4

J'ai trouvé l'astuce suite à une recherche sur le web, mais je ne comprends pas pourquoi il faut ajouter -map 0 -scodec copy, puisque d'après ce que je comprends, -c copy englobe les sous-titres. Je n'ai pas trouvé d'explication ni sur le web, ni dans la doc (qui est très verbeuse).

Merci pour votre aide.


Ubuntu 22.04.3 LTS (64 bits)

Hors ligne

#2 Aujourd'hui à 10:08

hotnuma

Re : Ffmpeg : compréhension des options

Pour le point 1 :

En utilisant -c copy il n'y a pas d'encodage, donc pas de codecs mais une copie des flux tels quel, sans modification à part la durée avec -to 30.

La différence de taille est sans doute due à un des flux qui n'est pas copié, des sous-titres, des chapitres, une piste audio ou je ne sais pas quoi qui n'est pas copié.

Pour vérifier ce que contient le fichier ffprobe peut être utile :

ffprobe -hide_banner "fichier.mp4"

En comparant les deux fichiers, la lumière doit normalement jaillir. big_smile

Le point 2 est en rapport.

Il me semble que par défaut, tous les flux ne sont pas copiés, donc il faut spécifier ce qu'on veut inclure.

En utilisant ffprobe vous pouvez lister les flux contenus dans chaque fichier et comprendre aussi le point 2 de cette façon.

Dernière modification par hotnuma (Aujourd'hui à 10:22)

Hors ligne