bash:ffmpeg libx265が出力をブロックします。

bash:ffmpeg libx265が出力をブロックします。

私は新しいコーデック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オプションは、-loglevelx25オプションはです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/null2>&1後ろに <>/dev/null、実際には何もしません。

に変更すると、 >/dev/null 2>&1 好きなようになります。

関連情報