Jag skulle vilja använda den nya codec x265 (libx265) för att koda min videosamling.

För detta skapade jag ett härligt bash-skript under Linux som fungerar i allmänhet mycket bra! Men något är konstigt:

Jag förbjuder att utdata från ffmpeg kan echo på mitt eget sätt. Med x264 (den ”gamla” ) allt fungerar bra. Men så snart jag använder x265 får jag alltid den här typen av utdata 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 

Så här kodar jag min video med ffmpeg:

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

Jag trodde att

<>/dev/null 2>&1 

och

-loglevel quiet 

kommer att göra detta men tydligen tar jag fel.

Hur kan jag lösa detta problem?

Tack för din hjälp!

Svar

Det ser ut som att ffmpeg inte säger till x265-kodaren att använda den loglevel du säger till ffmpeg att använda sig av. Så om du vill att ffmpeg och x265-kodaren i ffmpeg ska vara tysta, måste du ställa in loggnivåalternativ för dem båda.

Om du har ett ffmpeg-kommando som ser ut så här:

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

Du kan lägga till log-level = error-alternativet i listan över x265-params så här:

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

Kommentarer

  • Tack för ditt svar. Det är lösningen jag sökte efter! Även om mitt svar kommer lite för sent antar jag ^^
  • Min personliga preferens är att se framsteg och viktiga fel om det finns några. Eftersom jag ' exporterar till x265 behöver jag dessutom denna extra flagga. Jag personligen anser att detta är ett fel, och loglevel borde gälla allt, men det ' är riktigt trevligt att veta att undertrycka det effektivt och korrekt. Tack!

Svar

<>/dev/null ansluter bara standardingången och utdata till /dev/null, och 2>&1 tillämpas efter <>/dev/null, gör ingenting effektivt.

Om du ändrar det till >/dev/null 2>&1 gör du vad du vill.

Kommentarer

  • Tack! Det löser problemet. Men du har ett misstag i ditt svar: Jag skrev 2>&1 och inte 1>&2 men hur som helst .. det fungerar 🙂

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *