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 ikke1>&2
men alligevel .. det virker 🙂