Ich möchte den neuen Codec x265 (libx265) zum Codieren meiner Videosammlung verwenden.
Dafür habe ich ein schönes Bash-Skript unter Linux erstellt, das im Allgemeinen sehr gut funktioniert! Aber etwas ist seltsam:
Ich verbiete die Ausgabe von ffmpeg, auf meine eigene Weise zu widerhallen. Mit x264 (dem „alten“) ) alles funktioniert gut. Aber sobald ich x265 benutze, bekomme ich immer diese Art von Ausgabe auf meinem 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
So codiere ich mein Video mit ffmpeg:
ffmpeg -i /input/file -c:v libx265 -c:a copy -loglevel quiet /output/file.mp4 <>/dev/null 2>&1
Ich dachte, dass die
<>/dev/null 2>&1
und die
-loglevel quiet
wird dies tun, aber anscheinend irre ich mich.
Wie kann ich dieses Problem lösen?
Vielen Dank für Ihre Hilfe!
Antwort
Es sieht so aus, als ob ffmpeg dem x265-Encoder nicht sagt, dass er die Google-Ebene verwenden soll, die Sie ffmpeg mitteilen benutzen. Wenn Sie also möchten, dass ffmpeg und der x265-Encoder in ffmpeg leise sind, müssen Sie Optionen für die Protokollebene für beide festlegen.
Wenn Sie einen Befehl ffmpeg haben, der folgendermaßen aussieht:
ffmpeg -loglevel error -stats -i "inputfile.xyz" -c:v libx265 -x265-params parameter1=value:parameter2=value outputfile.xyz
Sie können die Option log-level = error zur Liste der x265-Parameter wie folgt hinzufügen:
ffmpeg -loglevel error -stats -i "inputfile.xyz" -c:v libx265 -x265-params log-level=error:parameter1=value:parameter2=value ....
Kommentare
- Vielen Dank für Ihre Antwort. Das ist die Lösung, nach der ich gesucht habe! Selbst wenn meine Antwort etwas zu spät kommt, denke ich ^^
- Meine persönliche Präferenz ist es, Fortschritte und wichtige Fehler zu sehen, falls es welche gibt. Da ich ' nach x265 exportiere, benötige ich außerdem dieses zusätzliche Flag. Ich persönlich halte dies für einen Fehler, und die Google-Ebene sollte sich auf alles beziehen, aber ' ist wirklich schön zu wissen, um sie effektiv und korrekt zu unterdrücken. Danke!
Antwort
<>/dev/null
verbindet nur die Standardeingabe und Ausgabe an /dev/null
und 2>&1
wird nach <>/dev/null
, effektiv nichts tun.
Wenn Sie es in >/dev/null 2>&1
ändern, wird das getan, was Sie wollen.
Kommentare
- Danke! Das löst das Problem. Aber Sie haben einen Fehler in Ihrer Antwort: Ich habe
2>&1
geschrieben und nicht1>&2
, aber trotzdem … es funktioniert 🙂
/ ul>