ffmpeg zapisuje tyto informace do stderr , nikoli stdout . Zkuste toto:
ffmpeg -i file.mp4 2>&1 | grep Duration | sed 's/Duration: \(.*\), start/\1/g'
Všimněte si přesměrování stderr až stdout :2>&1
UPRAVIT:
Vaše sed ani výpis nefunguje. Zkuste toto:
ffmpeg -i file.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d ,
Můžete použít ffprobe :
ffprobe -i <file> -show_entries format=duration -v quiet -of csv="p=0"
Vypíše dobu trvání v sekundách, například:
154.12
Přidání -sexagesimal volba vypíše trvání jako hodiny:minuty:sekundy.mikrosekundy :
00:02:34.12