私の目標は、zenity--progressを使用してHandBrakeCLIの出力でgtkプログレスバーを作成することです。私はいくつかの障害に遭遇しました、そして誰かがより良い方法を知っているか、または私が現在していることで私を助けることができるかどうか疑問に思っています。
通常の出力:
HandBrakeCLI -i infile -o outfile --preset=iPad
ディスプレイ
エンコーディング:タスク1の1、11.97%(72.81 fps、平均86.78 fps、ETA 00h00m43s)
HandBrakeはtrおよびcutコマンドにパイプされているので、zenityが期待するパーセンテージしかありません。
HandBrakeCLI -i infile -o outfile --preset=iPad 2>&1 | tr -s '\r' '\n' | cut -b 24-28
私が期待する結果:
1.05
1.06
1.10
1.10
ただし、出力が大幅に遅れ、表示されない場合もあります。tr式のみを使用すると、各行に上記の出力が表示されますが、これは「Encoding:task......」を含む出力全体です。
これは、cutコマンドがHandbrakeの標準に追いつけないようなものです。名前付きパイプを使用して読み上げ、パイプを作成してHandBrakeの出力をパイプに送信し、別の端末でパイプを介してtr and cutコマンドを試したところ、同じ遅延が発生しました。
awkのprintサブストリングを使用しても、同じ遅延が発生します。
私はそれを理解することはできません。HandBrakeジョブがMythTVジョブとして呼び出され、進行状況バーをポップアップして、エンコードがいつ進行中であるかを確認したいので、zenity--progressインジケーターを探しています。