2017-04-06 2 views
1

Je cherche à encoder une vidéo 4k avec iPhone 6s en VP9 dans la meilleure qualité possible.FFmpeg - sélection du débit approprié pour l'encodage VP9

Pour référence, les données de flux de la vidéo que je voudrais encoder, via ffprobe:

Duration: 00:00:10.48, start: 0.000000, bitrate: 46047 kb/s 
    Stream #0:0(und): Video: h264 (High) (avc1/0x31637661), yuv420p(tv, bt709), 3840x2160, 45959 kb/s, 29.98 fps, 29.97 tbr, 600 tbn, 1200 tbc (default) 
    Metadata: 
     creation_time : 2017-03-13T21:12:56.000000Z 
     handler_name : Core Media Data Handler 
     encoder   : H.264 
    Stream #0:1(und): Audio: aac (LC) (mp4a/0x6134706D), 44100 Hz, mono, fltp, 79 kb/s (default) 
    Metadata: 
     creation_time : 2017-03-13T21:12:56.000000Z 
     handler_name : Core Media Data Handler 

J'utilise les commandes FFmpeg suivantes, sur la base these instructions (voir Best Quality (Slowest) Recommended Settings section).

  1. ffmpeg -i INPUT.mov -c:v libvpx-vp9 -pass 1 -b:v 46000K -threads 4 -speed 4 -g 9999 -an -f webm -y /dev/null
  2. ffmpeg -I INPUT.mov -c:v libvpx-vp9 -pass 2 -b:v 46000K -threads 4 -speed 0 -g 9999 -an -f webm OUTPUT.webm

est-il un les meilleures pratiques pour sélectionner une valeur optimale -b:v telle que la vidéo résultante est visuellement identique à l'original? J'ai essayé des valeurs allant de 36000K-46000K, mais celles-ci résultent en des fichiers massifs avec un débit global dépassant le débit cible.

Merci d'avance!

+2

C'est pour cela que le mode CRF (qualité constante) est utilisé. Utilisez '-crf 20 -b: v 0' Passer les deux passes. Testez avec différentes valeurs CRF (0 à 63) sur un court segment sur l'entrée. Une fois que vous avez atteint une valeur qui produit une sortie assez petite et assez bonne, utilisez cette valeur. – Mulvya

+0

Points bonus en plus du commentaire de @ Mulvya: même si avec d'autres encodeurs, 1-pass et 2-pass CRF devraient donner les mêmes résultats, ce n'est malheureusement pas le cas pour libvpx, faire CRF ... –

Répondre

0

Vous n'avez qu'à expérimenter avec des débits différents, beaucoup plus bas, et voir les résultats. J'essaie de surveiller les artefacts. Est-ce que les cheveux sont toujours beaux? Tissu? Lettrage, comme sur les panneaux de signalisation et les vitrines des magasins? Pas de blocage? Pas de saignement de l'obscurité et de la lumière sur les bords tranchants? Pas d'échos? Je trouve le flou de mouvement dans l'original difficile à juger, à comparer côte à côte pour faire la différence entre cela et les artefacts de compression.

Essayez 1/10e de 36000k. Je trouve vp9 à un débit nominal de 400k fonctionne très bien sur la vidéo 1280x720. (ffmpeg avec libvpx-vp9 overshoots, et je me retrouve avec un débit binaire de 20% supérieur, 480k) 4K est 3840x2160, 9x la taille de 1280x720, donc il semblerait qu'un débit de 3600k devrait produire de bons résultats.

Un autre guide est que vp9 est d'une qualité à peu près égale à mp4 à la moitié du débit binaire. La vidéo qui semble bonne à un débit de 1000k en mp4 devrait être bonne à 500k en vp9.