新しいコーデックx265(libx265)を使用してビデオコレクションをエンコードしたい。

このために、Linuxで素敵なbashスクリプトを作成しました。これは、一般的に非常にうまく機能します。しかし、何か奇妙なことがあります。

ffmpegの出力を自分の方法でエコーすることを禁止します。x264(「古い」もの) )すべて正常に動作しますが、x265を使用するとすぐに、端末で常に次のような出力が得られます。

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 

これがビデオのエンコード方法です。 ffmpegを使用:

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

<>/dev/null 2>&1 

-loglevel quiet 

これを実行しますが、明らかに私は間違っています。

この問題を解決するにはどうすればよいですか?

ありがとうございますヘルプ!

回答

ffmpegは、ffmpegに指示しているログレベルを使用するようにx265エンコーダーに指示していないようです。使用する。したがって、ffmpegとffmpeg内のx265エンコーダーを静かにしたい場合は、両方のログレベルオプションを設定する必要があります。

次のようなffmpegコマンドがある場合:

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

次のように、log-level = errorオプションをx265-paramsのリストに追加できます。

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

コメント

  • ご回答ありがとうございます。それが私が探していた解決策です!私の答えが少し遅すぎたとしても、私は推測します^^
  • 私の個人的な好みは、進行状況と重要なエラーがある場合はそれを表示することです。さらに、私は' x265にエクスポートしているので、この追加のフラグが必要です。私は個人的にこれをバグと考えており、ログレベルはすべてに関係しているはずですが、'効果的かつ正確に抑制することを知っておくと本当に便利です。ありがとう!

回答

<>/dev/nullは標準入力のみを接続します/dev/nullに出力され、2>&1後に <>/dev/null、事実上何もしません。

>/dev/null 2>&1に変更すると、必要な処理が実行されます。

コメント

  • ありがとう!それは問題を解決します。しかし、あなたの答えには間違いがあります。私は2>&1と書きました。1>&2ではありませんが、とにかく..動作します:)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です