ffmpeg está escribiendo esa información en stderr
, no stdout
. Prueba esto:
ffmpeg -i file.mp4 2>&1 | grep Duration | sed 's/Duration: \(.*\), start/\1/g'
Observe la redirección de stderr
a stdout
:2>&1
EDITAR:
Tus sed
declaración tampoco está funcionando. Prueba esto:
ffmpeg -i file.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d ,
Puedes usar ffprobe
:
ffprobe -i <file> -show_entries format=duration -v quiet -of csv="p=0"
Mostrará la duración en segundos, como:
154.12
Agregando el -sexagesimal
la opción mostrará la duración como horas:minutos:segundos.microsegundos :
00:02:34.12