GNU/Linux >> Linux Esercitazione >  >> Linux

Come estrarre il tempo di durata dall'output di ffmpeg?

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

Linux
  1. Come ottenere l'output da gdb.execute in PythonGDB (GDB 7.1)?

  2. estrarre il tempo medio da ping -c

  3. Come reindirizzare l'output del comando time su un file in Linux?

  4. Come estrarre i sottotitoli dai film MP4 e MKV

  5. Come ordinare l'output di ps in base all'ora di inizio del processo?

Come estrarre indirizzi e-mail da file di testo in Linux

Come vedere l'output di uno script PHP?

Come reindirizzare l'output da grep a cp?

Come estrarre il testo con OCR da un PDF su Linux?

Riga di comando:estrai la sottostringa dall'output

Come estrarre un valore (in una specifica riga e colonna) da un file e assegnarlo a una nuova variabile