ffmpeg schreibt diese Informationen in stderr
, nicht stdout
. Versuchen Sie Folgendes:
ffmpeg -i file.mp4 2>&1 | grep Duration | sed 's/Duration: \(.*\), start/\1/g'
Beachten Sie die Umleitung von stderr
bis stdout
:2>&1
BEARBEITEN:
Ihr sed
Aussage funktioniert auch nicht. Versuchen Sie Folgendes:
ffmpeg -i file.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d ,
Sie können ffprobe
verwenden :
ffprobe -i <file> -show_entries format=duration -v quiet -of csv="p=0"
Es wird die Dauer in Sekunden ausgegeben, wie zum Beispiel:
154.12
Hinzufügen des -sexagesimal
Option gibt die Dauer als Stunden:Minuten:Sekunden.Mikrosekunden aus :
00:02:34.12