で MP3 ファイルの長さを検索しようとしていますavprobe
。これは機能します(いくつかの奇妙な警告がありますが):
$ avprobe somefile.mp3
...
[mp3 @ 0x657b20] max_analyze_duration reached
[mp3 @ 0x657b20] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from 'somefile.mp3':
Duration: 00:03:38.10, start: 0.000000, bitrate: 128 kb/s
Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s
ただし、逆に STDIN 経由でファイルをパイプすると、次のような問題が発生します。
cat somefile.mp3 | avprobe -
...
[mp3 @ 0x255db20] max_analyze_duration reached
[mp3 @ 0x255db20] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from 'pipe:':
Duration: N/A, start: 0.000000, bitrate: 128 kb/s
Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s
期間は「N/A」と報告されます。STDIN からの読み取り時に期間を把握できないのはなぜですか?