web-dev-qa-db-fra.com

Conversion de la vidéo 1080p en 720p avec perte de qualité plus petite en utilisant ffmpeg

J'empile avec mon film de haute qualité: 1080p à 60fps. Le problème est à la traîne en jouant.

J'ai essayé de le convertir en 720p avec ffmpeg:

ffmpeg -i MyMovie.mkv -r 60 -s hd720 MyMovie_720p.mkv

Cependant, la perte de qualité est importante car le débit binaire est passé de 32,3 Mbps à 2,8 Mbps. Comment puis-je spécifier un débit binaire correct pour le flux vidéo et laisser tous les autres flux copiés en parfait état?

Fichier d'entrée mediainfo:

ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : [email protected]
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 2h 58mn
Bit rate                                 : 32.3 Mbps
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 59.940 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.260
Stream size                              : 40.2 GiB (92%)
Writing library                          : x264 core 116 r2019 9cc407d
Encoding settings                        : cabac=1 / ref=4 / deblock=1:-2:-1 / analyse=0x3:0x113 / me=umh / subme=10 / psy=1 / psy_rd=0.80:0.20 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-3 / threads=6 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=6 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=0 / crf=14.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=50000 / vbv_bufsize=62500 / crf_max=0.0 / nal_hrd=none / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:0.60
Language                                 : English
Default                                  : Yes
Forced                                   : No
Matrix coefficients 

                 : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177
38
atomAltera

Voici un exemple qui devrait vous donner la meilleure qualité vidéo (je ne parle pas de la taille du fichier résultant). Notez que cette vidéo peut ne pas être lisible sur tous les appareils ou lecteurs:

ffmpeg -i MyMovie.mkv -vf scale=-1:720 -c:v libx264 -crf 0 -preset veryslow -c:a copy MyMovie_720p.mkv

Pour obtenir une qualité "sans perte visuelle", vous pouvez utiliser:

ffmpeg -i MyMovie.mkv -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow -c:a copy MyMovie_720p.mkv

Voyons maintenant ce que nous avons ici:

Le filtre vidéo d'échelle sert à redimensionner la vidéo. Vous venez de définir une taille - qui est la hauteur dans cet exemple - et d'utiliser -1 pour l'autre dimension. ffmpeg recalculera automatiquement la valeur correcte tout en préservant les proportions.

Qualité contrôlée avec l'option -crf:

La plage de l'échelle du quantificateur est comprise entre 0 et 51: 0 étant nul, 23 par défaut et 51 le pire possible. Une valeur inférieure est une qualité supérieure et une plage subjectivement saine est comprise entre 18 et 28. Considérez 18 comme étant visuellement sans perte ou presque: il devrait ressembler ou presque à l'entrée, mais ce n'est pas techniquement sans perte.

La plage étant exponentielle, l'augmentation de la valeur CRF +6 correspond à peu près à la moitié du débit tandis que -6 correspond à environ deux fois le débit. L’utilisation générale consiste à choisir la valeur CRF la plus élevée tout en offrant une qualité acceptable. Si la sortie semble bonne, essayez une valeur plus élevée et si la valeur est mauvaise, choisissez une valeur inférieure.

Vous trouverez plus d’informations dans le x264 encoding guide .

Vous contrôlez le compromis entre vitesse de codage vidéo et efficacité de la compression avec les options -preset. Ce sont ultra rapide, ultra rapide, très rapide, plus rapide, moyen, lent, plus lent, veryslow . La valeur par défaut est moyen . L'option veryslow offre la meilleure efficacité de compression (réduisant ainsi la taille du fichier pour la même qualité), mais elle est très lente - comme son nom l'indique.

L’audio sera flux copié directement du fichier d’entrée au fichier de sortie sans aucune modification.

80
Nikola Dimitrijevic

Si vous souhaitez mettre à l'échelle une taille différente, il existe certaines limitations concernant les dimensions de mise à l'échelle FFMPEG. Il n'accepte pas chaque hauteur. Voici une petite liste des meilleures recommandations pour les dimensions.

Les codecs vidéo fonctionnent mieux lorsque la largeur et la hauteur en pixels sont des multiples de 16. Bien que vous puissiez utiliser n’importe quelle largeur et hauteur dans vos paramètres d’encodage, des dimensions non optimales peuvent entraîner une qualité d’image médiocre et une cadence de prise de vue réduite. Pour une qualité d'image et une lecture optimales, vous devez utiliser des dimensions de largeur et de hauteur multiples de 16; votre meilleur choix suivant est un multiple de 8, puis un multiple de 4.

Recommended width and height for videos with 16:9 aspect ratios:

Best Choice:     2nd Best:        3rd Best:
Multiples of 16  Multiples of 8   Multiples of 4
1920 x 1080      1792 x 1008      1856 x 1044
1280 x 720       1152 x 648       1216 x 684
1024 x 576        896 x 504       1088 x 612
 768 x 432        640 x 360        960 x 540
 512 x 288        384 x 216        832 x 468
 256 x 144        128 x 72         704 x 396
                                   576 x 324
                                   448 x 252
                                   320 x 180
                                   192 x 108
0
Ewald Bos