ffmpeg sta scrivendo queste informazioni in stderr
, non stdout
. Prova questo:
ffmpeg -i file.mp4 2>&1 | grep Duration | sed 's/Duration: \(.*\), start/\1/g'
Nota il reindirizzamento di stderr
a stdout
:2>&1
MODIFICA:
Il tuo sed
dichiarazione non funziona neanche. Prova questo:
ffmpeg -i file.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d ,
Puoi usare ffprobe
:
ffprobe -i <file> -show_entries format=duration -v quiet -of csv="p=0"
Produrrà la durata in secondi, ad esempio:
154.12
Aggiunta del -sexagesimal
l'opzione restituirà la durata come ore:minuti:secondi.microsecondi :
00:02:34.12