Jeg vil gerne bruge den nye codec x265 (libx265) til at kode min videosamling.

Til dette skabte jeg et dejligt bash-script under linux, der fungerer generelt meget godt! Men noget er mærkeligt:

Jeg forbyder output af ffmpeg at ekko på min egen måde. Med x264 (den “gamle” ) alt fungerer fint. Men så snart jeg bruger x265, får jeg altid denne slags output på min terminal:

x265 [info]: HEVC encoder version 1.7 x265 [info]: build info [Linux][GCC 5.1.0][64 bit] 8bpp x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64 x265 [info]: Main profile, Level-2.1 (Main tier) x265 [info]: Thread pool created using 2 threads x265 [info]: frame threads / pool features : 1 / wpp(5 rows) x265 [info]: Coding QT: max CU size, min CU size : 64 / 8 x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 2 x265 [info]: Keyframe min / max / scenecut : 25 / 250 / 40 x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2 x265 [info]: b-pyramid / weightp / weightb / refs: 1 / 1 / 0 / 3 x265 [info]: AQ: mode / str / qg-size / cu-tree : 1 / 1.0 / 64 / 1 x265 [info]: Rate Control / qCompress : CRF-28.0 / 0.60 x265 [info]: tools: rd=3 psy-rd=0.30 signhide tmvp strong-intra-smoothing x265 [info]: tools: deblock sao 

Dette er den måde, jeg koder min video på med ffmpeg:

ffmpeg -i /input/file -c:v libx265 -c:a copy -loglevel quiet /output/file.mp4 <>/dev/null 2>&1 

Jeg troede, at

<>/dev/null 2>&1 

og

-loglevel quiet 

vil gøre dette, men tilsyneladende tager jeg fejl.

Hvordan kan jeg løse dette problem?

Tak for din hjælp!

Svar

Det ser ud til, at ffmpeg ikke fortæller x265-koderen at bruge det loglevel, du fortæller ffmpeg til brug. Så hvis du vil have ffmpeg og x265-koderen i ffmpeg til at være stille, skal du indstille logniveauindstillinger for dem begge.

Hvis du har en ffmpeg-kommando, der ser sådan ud:

ffmpeg -loglevel error -stats -i "inputfile.xyz" -c:v libx265 -x265-params parameter1=value:parameter2=value outputfile.xyz 

Du kan tilføje log-level = fejlindstillingen til listen med x265-params som denne:

ffmpeg -loglevel error -stats -i "inputfile.xyz" -c:v libx265 -x265-params log-level=error:parameter1=value:parameter2=value .... 

Kommentarer

  • Tak for dit svar. Det er den løsning, jeg søgte efter! Selvom mit svar kommer lidt for sent, antager jeg ^^
  • Min personlige præference er at se fremskridt og vigtige fejl, hvis der er nogen. Da jeg ' eksporterer til x265, har jeg desuden brug for dette ekstra flag. Jeg betragter dette personligt som en fejl, og loglevel bør vedrøre alt, men det ' er rigtig rart at vide at undertrykke det effektivt og korrekt. Tak!

Svar

<>/dev/null forbinder kun standardindgang og output til /dev/null, og 2>&1 anvendes efter <>/dev/null gør effektivt ingenting.

Hvis du ændrer det til >/dev/null 2>&1, gør du, hvad du vil.

Kommentarer

  • Tak! Det løser problemet. Men du har en fejl i dit svar: Jeg skrev 2>&1 og ikke 1>&2 men alligevel .. det virker 🙂

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *