私はオーディオクリップのメタ情報を取得するためにffmpegを使用しています。しかし、私はそれをキャッチすることはできません。
$ ffmpeg -i 01-Daemon.mp3 |grep -i Duration
FFmpeg version SVN-r15261, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --prefix=/usr --bindir=/usr/bin
--datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib
--mandir=/usr/share/man --arch=i386 --extra-cflags=-O2
...
確認すると、このffmpeg出力がstderrに渡されます。
$ ffmpeg -i 01-Daemon.mp3 2> /dev/null
そのため、grepは一致する行をキャッチするためにエラーストリームを読み取ることができないと思います。 grepからエラーストリームを読み取るにはどうすればよいですか?
使用ニッククラフトリンクを介して標準エラーストリームを標準出力ストリームにリダイレクトし、grepが機能しました。
$ ffmpeg -i 01-Daemon.mp3 2>&1 | grep -i Duration
Duration: 01:15:12.33, start: 0.000000, bitrate: 64 kb/s
しかし、stderrをstdoutにリダイレクトしたくない場合はどうすればよいですか?
ベストアンサー1
bash
匿名パイプを使用しない理由は、基本的にphuneheheが言ったことを省略したことです。
ffmpeg -i 01-Daemon.mp3 2> >(grep -i Duration)