Aș dori să folosesc noul codec x265 (libx265) pentru a codifica colecția mea de videoclipuri.

Pentru aceasta am creat un script bash minunat sub Linux care funcționează în general foarte bine! Dar ceva este ciudat:

Interzic ieșirea ffmpeg să răsune în propriul meu mod. Cu x264 (cel „vechi”) ) totul funcționează bine. Dar de îndată ce folosesc x265 primesc întotdeauna acest tip de ieșire pe terminalul meu:

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 

Acesta este modul în care îmi codific videoclipul cu ffmpeg:

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

Am crezut că

<>/dev/null 2>&1 

și

-loglevel quiet 

va face acest lucru, dar se pare că mă înșel.

Cum pot rezolva această problemă?

Vă mulțumim pentru ajutor!

Răspuns

Se pare că ffmpeg nu îi spune codificatorului x265 să utilizeze nivelul Google pe care îi spuneți ffmpeg utilizare. Deci, dacă doriți ca ffmpeg și codificatorul x265 din ffmpeg să fie liniștiți, trebuie să setați opțiuni de nivel jurnal pentru ambele.

Dacă aveți o comandă ffmpeg care arată astfel:

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

Puteți adăuga opțiunea log-level = error la lista de parametri x265 astfel:

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

Comentarii

  • Vă mulțumim pentru răspuns. Aceasta este soluția pe care am căutat-o! Chiar dacă răspunsul meu vine un pic prea târziu, cred că ^^
  • Preferința mea personală este să vizualizez progresul și erorile importante, dacă există. În plus, întrucât ' export în x265, am nevoie de acest flag suplimentar. Personal consider că acest lucru este o eroare, iar nivelul de nivel ar trebui să se refere la toate, dar este foarte plăcut să știi că îl suprimăm în mod eficient și corect. ' Mulțumesc!

Răspuns

<>/dev/null va conecta doar intrarea standard și ieșirea la /dev/null și 2>&1 se aplică după <>/dev/null, efectiv, nu faceți nimic.

Schimbându-l în >/dev/null 2>&1 veți face ceea ce doriți.

Comentarii

  • Mulțumesc! Asta rezolvă problema. Dar ai o greșeală în răspunsul tău: am scris 2>&1 și nu 1>&2 dar oricum .. funcționează 🙂

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *