私は新しいコーデック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
そうしますが、明らかに私が間違っていました。
この問題をどのように解決できますか?
ご協力ありがとうございます!
答え1
解決策
以下を追加する必要があります。追加次のパラメータ-x265-params log-level=xxxxx
ffmpeg -i /input/file -c:v libx265 -c:a copy -loglevel Quiet-x265-params loglevel=quiet\ /output/file.mp4 <>/dev/null 2>&1
FFmpegオプションは、-loglevel
x25オプションはですlog-level
。-
x265log
を参照。level
コマンドラインオプション文書。
説明する
ユーザーが作成するFFmpegコマンドしなければならないすでに作業しています(参照:ffmpeg ドキュメント)しかし、FFmpegは、FFmpegに使用するように指示したログレベルを使用するようにx265エンコーダに指示しないようです。
したがって、FFmpegコマンド全体が自動的に実行されることを望むと仮定した場合(つまり、デフォルトのFFmpegプログラムとx265エンコーダのメッセージを抑制する)、ログレベルオプションを明示的に設定する必要があります。
同様に、次のFFmpegコマンドがある場合:
ffmpeg -loglevel エラー -stats -i "inputfile.xyz" -c:v libx265 -x265-paramsパラメータ1=値:パラメータ2=値出力ファイル.xyz
log-level=error
次のように、x265パラメータリストにこのオプションを追加できます。
ffmpeg -loglevel エラー -stats -i "inputfile.xyz" -c:v libx265 -x265-params loglevel=エラー:パラメータ1=値:パラメータ2=値…
答え2
<>/dev/null
には標準入力と出力のみを接続して適用します/dev/null
。2>&1
後ろに <>/dev/null
、実際には何もしません。
に変更すると、
>/dev/null 2>&1
好きなようになります。