GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo extraer el tiempo de duración de la salida ffmpeg?

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

Linux
  1. Cómo rotar videos usando FFMpeg desde la línea de comandos

  2. ¿Cómo extraer registros entre dos marcas de tiempo?

  3. ¿Cómo hacer que `date` genere la hora de una zona horaria diferente?

  4. ¿Cómo redirigir la salida del comando de tiempo a un archivo en Linux?

  5. ¿Cómo extraer texto con OCR de un PDF en Linux?

Cómo extraer direcciones de correo electrónico de un archivo de texto en Linux

¿Cómo ver la salida de un script PHP?

extraer tiempo promedio de ping -c

¿Cómo canalizar la salida de grep a cp?

Cómo extraer un valor (en una fila y columna específicas) de un archivo y asignarlo a una nueva variable

¿Cómo aplicar un filtro a la salida en tiempo real de `tail -f`?