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