以下の内容はhttps://takuya-1st.hatenablog.jp/entry/2017/07/12/103000より取得しました。


pv pipe viewer をcaptureする

プロセスの進捗を見る pv で

pv はプロセスパイプを通過したバイト数をみて、進捗を見ることが出来るのですが。

pv の出力をスクリプトから取りたい

pv の output は stderr に書かれるのだけれど、それをキャプチャリングしたいなと思ったら。。。結構面倒くさいのです。

pv は プロセスの起動をアレコレしているっぽくて、ターミナルのFdに直接書いてるわけではなさそうなのです. たぶん tty とかに直接かいてるんじゃないかな。

-f オプションを使う。

オプションを使うことでstderr に書き出す事ができる。

pv -f hdd.img | lzop ...  2> out.log

ruby とかで spawn / fork するには

r,w= IO.pipe
cmd = 'pv -f  IMG_3200.MOV | cat - > /dev/null'
puts cmd
pid =  Process.fork do
  r.close
  STDERR.reopen w
  Process.exec cmd
end
s = ''
w.close
while s = r.read(100) do
  puts s
end

Process.waitpid pid

こうすれば、進捗を変数に取り出すことが出来た。あーこれはハマるわ。。。 ffmpeg の進捗をもっと簡単に取る方法ないのかな。。。。

関連資料

http://takuya-1st.hatenablog.jp/entry/2017/03/06/172644

参考資料

http://www.ivarch.com/programs/quickref/pv.shtml




以上の内容はhttps://takuya-1st.hatenablog.jp/entry/2017/07/12/103000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14