Komisches Problem mit x265

  • Und zwar habe ich ein komisches Problem mit libx265 und ffmpeg


    ich diese zeile, direkt eingebe:


    Code
    1. wine avs2yuv_mod ./test.avs -o - | ffmpeg -i - -c:v libx265 -preset medium -pix_fmt yuv422p10le -crf 19 -x265-params "deblock=0:-1:[B][COLOR=#ffa07a]rdoq-level=1[/COLOR][/B]:psy-rd=0.40:psy-rdoq=10.0:aq-mode=2:aq-strength=1.2:bframes=6:ref=6:rd=5:tu-intra-depth=4:tu-inter-depth=4:me=3:max-merge=5:subme=6:merange=25:keyint=240:rc-lookahead=80:b-adapt=2[B]:[COLOR=#ff0000]rect:amp:no-sao:no-open-gop:no-cutree:no-tskip:no-tskip-fast:weightp:weightb:no-strong-intra-smoothing[/COLOR][/B]" -y anime_01_x265.hevc


    Übernimmt er mir keine Parameter von deblock usw.


    Code
    1. x265 [info]: HEVC encoder version 1.6+360-bca33880585ax265 [info]: build info [Linux][GCC 4.9.2][64 bit] 16bppx265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVXx265 [info]: Main 4:2:2 10 profile, Level-3.1 (Main tier)x265 [info]: Thread pool created using 8 threadsx265 [info]: frame threads / pool features : 3 / wpp(12 rows)x265 [info]: Internal bit depth : 10x265 [info]: Coding QT: max CU size, min CU size : 64 / 8x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intrax265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 2x265 [info]: Keyframe min / max / scenecut : 23 / 250 / 40x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2x265 [info]: b-pyramid / weightp / weightb / refs: 1 / 1 / 0 / 3x265 [info]: AQ: mode / str / qg-size / cu-tree : [B][COLOR=#ff0000]1 / 1.0 / 64 / 1[/COLOR][/B]x265 [info]: Rate Control : CRF-19.0x265 [info]: tools: rd=3 psy-rd=0.30 signhide tmvp strong-intra-smoothingx265 [info]: tools: deblock sao


    Wenn ich aber die Rot markierten zeilen rausnehme, übernimmt er die Parameter plötzlich, meckert dann zwar für die Orangene Zeile, aber sonst übernimmt er alles dann. Woran liegt dies, das er mir die Zeilen nicht nimmt?


    Code
    1. x265 [info]: HEVC encoder version 1.6+298-4a7176bab742x265 [info]: build info [Linux][GCC 4.9.2][64 bit] 16bppx265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVXx265 [info]: Main 4:2:2 10 profile, Level-4 (Main tier)x265 [info]: Thread pool created using 8 threadsx265 [info]: frame threads / pool features : 3 / wpp(12 rows)x265 [info]: Internal bit depth : 10x265 [info]: Coding QT: max CU size, min CU size : 64 / 8x265 [info]: Residual QT: max TU size, max depth : 32 / 4 inter / 4 intrax265 [info]: ME / range / subpel / merge : star / 25 / 6 / 5x265 [info]: Keyframe min / max / scenecut : 23 / 240 / 40x265 [info]: Lookahead / bframes / badapt : 80 / 6 / 2x265 [info]: b-pyramid / weightp / weightb / refs: 1 / 1 / 0 / 6x265 [info]: AQ: mode / str / qg-size / cu-tree : [COLOR=#ff0000][B]2 / 1.2 / 64 / 1[/B][/COLOR]x265 [info]: Rate Control : CRF-19.0x265 [info]: tools: rd=5 psy-rd=0.40 signhide tmvp strong-intra-smoothingx265 [info]: tools: deblock sao


    FFmpeg habe ich so gebaut:

    Code
    1. ./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-librtmp --enable-libxvid --enable-libass --enable-libx265


    Und x265 wie in dem anderen thread hier im Linux bereich.

  • Und zwar habe ich ein komisches Problem mit libx265 und ffmpeg


    ich diese zeile, direkt eingebe:


    Code
    1. wine avs2yuv_mod ./test.avs -o - | ffmpeg -i - -c:v libx265 -preset medium -pix_fmt yuv422p10le -crf 19 -x265-params "deblock=0:-1:[B][COLOR=#ffa07a]rdoq-level=1[/COLOR][/B]:psy-rd=0.40:psy-rdoq=10.0:aq-mode=2:aq-strength=1.2:bframes=6:ref=6:rd=5:tu-intra-depth=4:tu-inter-depth=4:me=3:max-merge=5:subme=6:merange=25:keyint=240:rc-lookahead=80:b-adapt=2[B]:[COLOR=#ff0000]rect:amp:no-sao:no-open-gop:no-cutree:no-tskip:no-tskip-fast:weightp:weightb:no-strong-intra-smoothing[/COLOR][/B]" -y anime_01_x265.hevc


    Das wird wie schon bei x264 laufen. Zum einen musst du dich an die ffmpeg Vorgaben bei Parameterübergabe halten, zum anderen übergibt ffmpeg diese Parameter nicht x265, sondern der internen lib265 API ... und die ist nicht identisch mit den Parametern, die man x265 übergibt.
    Ein paar Regel, an die ich mich so halte, dann klappt es ganz gut.


    Also z.B. ffmpeg Parameter haben:


    key=value, mehrere dieser Paare werden mit Doppelpunkt getrennt. Bei mehreren Values bei einem Key mit Komma trennen


    z.B.: hier musst du die Values mit Komma und nicht Doppelpunkt trennen
    deblock=0:-1:rdoq-level=1


    wird bei ffmpeg zu:
    deblock=0,-1:rdoq-level=1


    die interne lib265 kennt keine no-Parameter


    also no-cutree gibt es nicht, sondern nur das Flag cutree, dass du 1 (on) oder 0 (off) schaltest.
    also cutree=1 oder cutree=0


    Code
    1. deine Parameter:
    2. -x265-params deblock=0:-1:rdoq-level=1:psy-rd=0.40:psy-rdoq=10.0:aq-mode=2:aq-strength=1.2:bframes=6:ref=6:rd=5:tu-intra-depth=4:tu-inter-depth=4:me=3:max-merge=5:subme=6:merange=25:keyint=240:rc-lookahead=80:b-adapt=2:rect:amp:no-sao:no-open-gop:no-cutree:no-tskip:no-tskip-fast:weightp:weightb:no-strong-intra-smoothing
    3. wird zu
    4. -x265-params deblock=0,-1:rdoq-level=1:psy-rd=0.40:psy-rdoq=10.0:aq-mode=2:aq-strength=1.2:bframes=6:ref=6:rd=5:tu-intra-depth=4:tu-inter-depth=4:me=3:max-merge=5:subme=6:merange=25:keyint=240:rc-lookahead=80:b-adapt=2:rect=1:amp=1:sao=0:open-gop=0:cutree=0:tskip=0:tskip-fast=0:weightp=1:weightb=1:strong-intra-smoothing=0


    Hab aber nicht alles getestet. Wollte dir nicht allen Spass abnehmen ;)