web-dev-qa-db-fra.com

Réduire la taille de la vidéo dans Ubuntu?

Comment réduire la taille de fichier des vidéos? Pour une raison quelconque, par téléphone prend des vidéos géantes. Le pire d'entre eux est une vidéo de 20 minutes qui occupe 13 Go. Comment puis-je réduire la taille de fichier de ceux-ci? Ce sont des MP4 encodés en H.264 et MPEG-4 AAC et lisant à 30 ips.

Ce n'est pas grave s'il y a une réduction de la qualité.

J'ai essayé d'utiliser avconv pour réduire la résolution, mais même si cela produisait une vidéo avec des dimensions plus petites, la taille avait bizarrement augmenté.

Quel est un bon moyen de réduire la taille de ces fichiers?

5
quantumbutterfly

Alors je l'ai compris. Le drapeau "-b" dans ffmpeg définit le débit. J'ai également découvert que 1 000 000 est une bonne valeur d'usage général qui offre un compromis décent entre la taille et la qualité du fichier.

Alors courez:

ffmpeg -i inputfilename.mp4 -b 1000000 outputfilename.mp4

Vous pouvez remplacer 1000000 par une autre valeur de débit si vous le souhaitez. Vous pouvez également inclure un indicateur "-s WxH" pour définir la taille de la vidéo de sortie. Donc, pour rendre la sortie vidéo 720p, vous devez inclure "-s 1080x720"

2
quantumbutterfly

Pour réduire la taille de votre MP4, vous avez deux bons choix avec FFmpeg:

  1. Testez les paramètres du facteur de débit constant (CRF) pour trouver une correspondance entre la taille de la sortie vidéo et la qualité vidéo
  2. Expérimentez avec le débit défini de votre choix et utilisez un encodage en 2 passes.

Détails des deux ci-dessous:

1. Redimensionner à l’aide de l’option de facteur de taux constant (CRF) de FFmpeg:

Dans FFmpeg, les paramètres CRF varient de 0 à 51, 0 étant sans perte et 51, d'une qualité choquante. La valeur par défaut est 23 et vous devez trouver le point idéal pour votre vidéo particulière de la taille du fichier et la qualité vidéo avec quelques expériences.

Un exemple de ligne de commande serait:

ffmpeg -i input.mp4 \
       -c:v libx264 -preset slow -crf 22 \
       -c:a copy \
       output.mp4

Notez que dans cette ligne de commande, la vidéo est recodé et le son est simplement copié . Choses à considérer:

  1. Si la taille est toujours trop grande et que la qualité vidéo est toujours acceptable, essayez -crf 24 et ainsi de suite (incrémentalement croissant l'entier crf) jusqu'à ce que vous trouviez un compromis acceptable entre qualité vidéo et taille du fichier.
  2. Si la qualité vidéo est trop mauvaise, essayez crf 20 et ainsi de suite (incrémentalement décroissant l'entier crf) jusqu'à ce que vous trouviez un compromis acceptable entre qualité vidéo et taille du fichier.

2. Redimensionnez en utilisant les options 'set bitrate' de FFmpeg + + '2 cod encoding':

Un autre choix, qui not == produira de aussi bons résultats que l'exemple CRF consiste à utiliser le débit défini de votre choix et à utiliser un codage à 2 passes. L'exemple suivant est une seule commande :

ffmpeg -y -i input.mp4 \
       -c:v libx264 -preset slow -b:v 1000k -pass 1 \
       -c:a copy -f mp4 /dev/null && \
ffmpeg -i input.mp4 \
       -c:v libx264 -preset slow -b:v 1000k -pass 2 \
       -c:a copy \
       output.mp4

Là encore, dans cet exemple, la vidéo est ré-encodée et l'audio est simplement copié. Choses à considérer:

  1. La vidéo est toujours trop grosse? Réduire le débit binaire ...
  2. Qualité trop pauvre? Augmenter le débit binaire ...

Continuez jusqu'à ce que vous trouviez un compromis acceptable entre qualité vidéo et taille de fichier.

Références:

10
andrew.46