FFmpeg: Fehler beim Verwenden von aus Mediainfo kopierten Kodierungsoptionen

FFmpeg: Fehler beim Verwenden von aus Mediainfo kopierten Kodierungsoptionen

Dies ist meine Befehlszeile:

ffmpeg -i i.mp4 -i i.png -c:v libx264 -x264-params cabac=1:ref=8:deblock=1,0,0:analyse=0x3,0x113:me=umh:subme=9:psy_rd=1.0,0.0:mixed_ref=1:me_range=64:chroma_me=1:trellis=2:8x8dct=1:cqm=0:deadzone=21,11:chroma_qp_offset=-2:threads=3:nr=0:decimate=1:mbaff=0:bframes=5:b_pyramid=1:b_adapt=2:b_bias=0:direct=3:wpredb=1:keyint=300:keyint_min=1:scenecut=54:rc=2pass:bitrate=75:ratetol=1.0:qcomp=0.64:qpmin=8:qpmax=51:qpstep=4:cplxblur=20.0:qblur=0.5:ip_ratio=1.40:pb_ratio=1.30:aq=1,1.00 -c:a copy -filter_complex 'overlay' o1.mp4

Und ffmpeg sagte:

[libx264 @ 000001ded1a53d60] Error parsing option 'mixed_ref = 1'.
[libx264 @ 000001ded1a53d60] Error parsing option 'deadzone = 21,11'.
[libx264 @ 000001ded1a53d60] Error parsing option 'decimate = 1'.
[libx264 @ 000001ded1a53d60] Error parsing option 'mbaff = 0'.
[libx264 @ 000001ded1a53d60] Error parsing option 'direct = 3'.
[libx264 @ 000001ded1a53d60] Error parsing option 'wpredb = 1'.
[libx264 @ 000001ded1a53d60] Error parsing option 'rc = 2pass'.
[libx264 @ 000001ded1a53d60] Error parsing option 'ip_ratio = 1.40'.
[libx264 @ 000001ded1a53d60] Error parsing option 'pb_ratio = 1.30'.
[libx264 @ 000001ded1a53d60] Error parsing option 'aq = 1,1.00'.
[libx264 @ 000001ded1a53d60] can't open file '0'
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

Was soll ich machen?

Antwort1

Es ist nicht nötig, Dutzende von Optionen zu deklarieren. Dafür sind die x264-Kodierungsvorgaben da. Ihre Ausgabe zeigt an, dass dieLangsamerVorgabe wurde verwendet:

ffmpeg -i i.mp4 -i i.png -filter_complex 'overlay' -c:v libx264 -preset slower -c:a copy o1.mp4
  • Welche Voreinstellung verwendet wurde, konnte ich anhand von erkennen x264 --fullhelp.

  • Dies wird CRF als Rate Control-Methode verwenden. Ihre Ausgabe verwendet den 2-Pass-Modus. Wenn Sie nicht auf eine bestimmte Ausgabedateigröße abzielen müssen (was wahrscheinlich nicht der Fall ist), verwenden Sie einfach CRF. SieheFFmpeg-Wiki: H.264für ein 2-Pass-Beispiel und weitere Informationen zu Voreinstellungen und CRF.

Antwort2

Fehler wie diese:

[libx264 @ 000001ded1a53d60] Error parsing option 'mixed_ref = 1'.

kommen direkt von der Funktion von x264 x264_param_parse(), die ffmpeg verwendet.

Es stellt sich heraus, dass x264 die fehlgeschlagenen Optionen anders meldet, als es beim Setzen erwartet. Sie können die beiden mithilfe des Quellcodes von x264 korrelieren:

Ich habe einige dieser Nichtübereinstimmungen nachgeschlagen und es stellte sich heraus, dass Sie Folgendes verwenden müssen:

╔══════════════════╦═══════════════════════════════════════════╗
║ printed value    ║ setting                                   ║
╠══════════════════╬═══════════════════════════════════════════╣
║ mixed_ref        ║ mixed-refs                                ║
║ deadzone = X,Y   ║ deadzone-inter=X:deadzone-intra=Y         ║
║ decimate         ║ dct-decimate                              ║
║ direct = 0/1/2/3 ║ direct="none"/"spatial"/"temporal"/"auto" ║
║ rc               ║ implied by qp, abr, crf, 2-pass mode...   ║
║ ...              ║                                           ║
╚══════════════════╩═══════════════════════════════════════════╝

Insbesondere „rc“ zeigt, dass es keine ausreichend genaue Korrelation gibt, um dies leicht rückwärts entwickeln zu können. Deshalb ist es möglicherweise einfacher, zu versuchen, die Werte einer der Voreinstellungen von x264 zuzuordnen.

verwandte Informationen