GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie extrahiere ich die Dauer aus der ffmpeg-Ausgabe?

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

Linux
  1. Wie extrahiere ich einen einzelnen Byteblock aus einer Datei?

  2. Wie kann die Ausgabe des Zeitbefehls in eine Datei unter Linux umgeleitet werden?

  3. Wie extrahiert man Text mit OCR aus einem PDF unter Linux?

  4. So extrahieren Sie Untertitel aus MP4- und MKV-Filmen

  5. Befehlszeile:Substring aus der Ausgabe extrahieren

So extrahieren Sie E-Mail-Adressen aus einer Textdatei unter Linux

Wie kann man die Ausgabe eines Php-Skripts sehen?

Extrahiere die durchschnittliche Zeit aus ping -c

Wie kann ich die Ausgabe von grep an cp weiterleiten?

Wie sortiere ich die ps-Ausgabe nach der Startzeit des Prozesses?

Wie wendet man einen Filter auf die Echtzeitausgabe von `tail -f ` an?