Quels paramètres dois-je considérer pour réduire la taille d'un fichier .MOV?

12

Mon Canon 60D crée des fichiers .MOV lors de l'enregistrement vidéo et j'ai découvert que le conteneur .MOV a un flux vidéo H264 et un flux audio PCM.

J'ai utilisé ffmpeg et GSpot pour regarder certaines de mes vidéos, et je vois ce qui semble être des débits assez élevés (22 000 kbps pour 640x480, 45 000 pour 1920x1080).

Je voudrais réduire la taille des fichiers, mais garder une qualité assez élevée. J'ai joué avec la chose la plus simple à laquelle je pouvais penser, en réduisant le débit binaire et cela fait ce à quoi je m'attendais: réduire le débit binaire de moitié et la taille du fichier est d'environ la moitié. Mais je me demande s'il existe un moyen de déterminer un "bon" débit binaire cible, ou s'il est utile d'essayer de faire un débit binaire variable.

Ward - Rétablir Monica
la source

Réponses:

21

Mais je me demande s'il existe un moyen de déterminer un "bon" débit binaire cible…

Un bon débit binaire cible est le débit binaire qui:

  • est pris en charge par le réseau à partir duquel vous diffusez le contenu (par exemple, un réseau 3G, WiFi domestique, etc.), ce qui est assez facile à calculer
  • semble bon pour vous , qui est une mesure très subjective

22 Mbit / s ou 45 Mbit / s sont en effet assez élevés pour l'utilisateur moyen, et surtout pour les vidéos déjà compressées comme le h.264. Vous pouvez certainement aller de l'avant et réduire le débit binaire à une valeur «saine», toujours en ce qui concerne la capacité de stockage que vous pouvez vous permettre et la qualité que vous souhaitez perdre.

Vous pouvez également redimensionner une vidéo 1080p en 720p si vous n'avez pas vraiment besoin de la taille ou si vous n'avez pas la capacité de traitement pour la modifier.

… Ou s'il est utile d'essayer de faire un débit binaire variable

Le point du débit binaire constant est de s'adapter à un scénario de streaming multimédia où il y a un goulot d'étranglement qui limite le débit binaire maximum de la vidéo transmise. Dans le monde multimédia d'aujourd'hui, cela n'a plus nécessairement de sens.

Lorsque vous serrez une vidéo en une quantité constante de bits par seconde, vous dites essentiellement à un encodeur de toujours utiliser la même quantité de bits pour coder la même période. Est-ce la meilleure approche? Comme vous l'avez peut-être deviné, ce n'est pas le cas. Citant le guide CRF de Handbrake (j'y reviendrai plus tard):

L'œil perçoit plus de détails dans les objets immobiles que lorsqu'ils sont en mouvement. Pour cette raison, un compresseur vidéo peut appliquer plus de compression (supprimer plus de détails) lorsque les choses bougent et appliquer moins de compression (conserver plus de détails) lorsque les choses sont immobiles. Subjectivement, la vidéo semblera de meilleure qualité.

Donc, il est logique d'utiliser un débit binaire variable chaque fois que vous le pouvez. Cela rendra la vidéo plus belle, même à la même taille de fichier qu'une vidéo à débit binaire constant.

Plus encore, la plupart des encodeurs - le plus célèbre étant x264 - fonctionnent souvent très mal lorsque vous leur dites d'utiliser un débit binaire constant. Il vaut mieux leur donner un peu plus de «liberté» dans le sens du nombre de bits qu'ils veulent dépenser sur une trame. Après tout, c'est le travail de l'encodeur, pas vous. Et cela s'appelle la «qualité constante».


Assez de cela - qu'est-ce que cela signifie dans la pratique? Si vous utilisez FFmpeg pour encoder des vidéos, vous utilisez déjà un outil suffisamment bon. Si vous avez également installé x264 et utilisez la dernière version des deux, vous utilisez l'un des meilleurs encodeurs actuellement disponibles gratuitement. Au lieu d'encoder avec un débit binaire fixe, laissez x264 choisir combien il veut dépenser. Pour ce faire, utilisez l' option Facteur de taux constant .

Dans un cas très simple, cela signifie définir une valeur entre 17 et 23. J'ai choisi MP4 comme conteneur de sortie au lieu de MOV car il existe de meilleurs outils de remultiplexage disponibles:

ffmpeg -i input.mov -c:v libx264 -crf 22 output.mp4

Plus la valeur est basse, meilleure est la qualité et plus la sortie est importante. Inversement, plus la qualité est élevée. Dans le même temps, vous réduisez bien sûr le débit binaire moyen nécessaire. Consultez le guide d'encodage x264 pour plus d'informations sur ffmpeg.

Votre tâche consiste maintenant à trouver une valeur CRF qui:

  • réduit le débit binaire global au point que vous pouvez vous permettre
  • ne réduit pas trop la qualité, de sorte que la vidéo semble toujours bonne

Oui, cela implique beaucoup d'encodage et d'essais et d'erreurs, mais c'est une affaire quotidienne lorsque vous ajustez et encodez une vidéo.

Oh, et si vous n'aimez pas la ligne de commande, Handbrake est un outil multiplateforme gratuit qui fait exactement la même chose. Il a même un curseur CRF:

entrez la description de l'image ici

slhck
la source
En ce qui concerne le détail des objets en mouvement, n'est-il pas régulièrement exagéré en compression vidéo, ou est-ce que je me souviens simplement des mauvais exemples? Comme une augmentation sensible des détails une fois que la caméra cesse de faire un panoramique, etc.
Daniel Beck
C'est en fait assez courant, connu sous le nom de problèmes de "stabilisation". Par exemple, lorsque vous voyez le bloc disparaître. Ceci est typique d'un scénario à faible débit binaire où le changement de la différence de mouvement est trop rapide pour que le contrôle de débit s'adapte. Je suppose qu'un codage en deux passes pourrait aider ici, mais probablement pas beaucoup. Je ne sais pas s'il est possible de se débarrasser entièrement de ces types d'artefacts.
slhck
J'ai utilisé Handbrake dans le passé, convertissant DV avis d'une caméra vidéo en DivX et mp4, mais je trouvais plus facile de travailler avec une ligne de commande lorsque j'essayais de comprendre mes options pour passer de .mov à h264 mp4s. Existe-t-il un équivalent de -crf lorsque vous créez des DivX? (ou cela devrait-il être une autre question?)
Ward - Rétablir Monica
@Ward Vous pouvez utiliser -qscale. Pour mpeg *, l'échelle est linéaire, allant de 1 à 31 (31 étant la pire qualité), et doubler la valeur entraînera environ la moitié du débit binaire. Une valeur de 2 peut être considérée à peu près sans perte visuelle. 3-5 est généralement un bon équilibre, mais bien sûr la qualité est subjective et vous n'aurez qu'à l'essayer.
llogan
Agréable! Quelques questions. (1) Que signifie un nombre suivi de "p" dans "Vidéo 1080p à 720p"? (2) x264 utilise un débit binaire variable, mais pourquoi l'option dans ffmpeg s'appelle Constant Rate Factor? Merci!
Tim
2

Essayez CLI HandBrake

Je voulais réduire certains fichiers MOV et je me moquais d'apprendre tous les détails sur les options vidéo. CLI de HandBrake est ce que j'ai utilisé. Les presets sont sympas:

HandBrake propose des préréglages codés en dur, actualisés en usine, qui sont exactement les mêmes que les préréglages intégrés dans le MacGui.

Dans mon cas, cela a bien fonctionné:

HandBrakeCLI -i input.MOV -o output.mp4 --preset="Normal"

Sans préréglage, la sortie était très petite mais pas de bonne qualité. Le préréglage "Normal" me paraissait bien, mais vous pouvez en voir d'autres disponibles HandBrakeCLI --preset-listou modifier vous-même toutes les options si vous préférez.

Nathan Long
la source