ffmpeg はその情報を stderr
に書き込んでいます 、 stdout
ではありません .これを試してください:
ffmpeg -i file.mp4 2>&1 | grep Duration | sed 's/Duration: \(.*\), start/\1/g'
stderr
のリダイレクトに注意してください stdout
まで :2>&1
編集:
あなたの sed
ステートメントも機能していません。これを試してください:
ffmpeg -i file.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d ,
ffprobe
を使用できます :
ffprobe -i <file> -show_entries format=duration -v quiet -of csv="p=0"
次のように、秒単位で期間が出力されます。
154.12
-sexagesimal
を追加する オプションは、期間を 時間:分:秒.マイクロ秒 として出力します :
00:02:34.12