2017-11-28 4 views
1

Ich versuche, die numerische Darstellung der Phase einer Sounddatei abzuleiten.Wie erhält man die lavfi.aphasemeter.phase Frame Metadaten in FFMPEG?

FFMPEGs Aphasemeter-Filter scheint die Rechnung für die Berechnung dieser Nummer zu übernehmen; Die Dokumentation besagt explizit:

Der Filter exportiert auch die Frame-Metadaten lavfi.aphasemeter.phase, die die mittlere Phase des aktuellen Audioframes darstellt. Der Wert liegt im Bereich [-1, 1]. Der Wert -1 bedeutet, dass der linke und der rechte Kanal vollständig außer Phase sind und 1 bedeutet, dass die Kanäle in Phase sind.

https://ffmpeg.org/ffmpeg-filters.html#aphasemeter

Allerdings kann ich nicht scheinen, um herauszufinden, wie diese Filter zu verwenden, diesen numerischen Wert zu erhalten. Wenn ich mit verschiedenen Befehlen experimentiere, erhalte ich verschiedene Fehlermeldungen. Zum Beispiel ffmpeg -i input_file.wav -f aphasemeter.phase sagt, dass ich eine Ausgabe brauchen, aber ffmpeg -i input_file.wav -f aphasemeter.phase output_file.txt produziert is not a suitable output format \ output_file.txt: Invalid argument

Ich bin für die -1 bis 1 Wert suchen; eine grafische Darstellung davon - obwohl scheinbar der Hauptpunkt dieses Filters - ist nicht das, wonach ich suche.

Irgendwelche Ideen?

Falls es darauf ankommt, benutze ich die WSL, nachdem ich ffmpeg von apt-get installiert habe.

Antwort

1

Auf protokollierte Metadatenwerte kann mit dem Metadatenfilter (a) zugegriffen und exportiert werden.

ffmpeg -i in.wav -af aphasemeter=video=0,ametadata=print:file=inwav-phase.txt -f null - 

Die Textdatei wird die Daten in dem Format hat,

... 
frame:105 pts:107512 pts_time:2.23983 
lavfi.aphasemeter.phase=0.600750 
frame:106 pts:108536 pts_time:2.26117 
lavfi.aphasemeter.phase=0.554201 
... 
+0

Einen Kommentar zu dieser ausgezeichneten Antwort hinzuzufügen ist, dass auf Windows, Pfadinformationen in der Textdatei Teil des Befehls (.. .ametadata = print: Datei = c: \ fake \ Pfad \ inwav-phase.txt zum Beispiel) wird Probleme verursachen. * Nix-Systeme sind damit jedoch in Ordnung. – jsamsf

+0

Sie müssen entkommen und den Pfad angeben: 'file = 'c \: \\ false \\ path \\ inwav-phase.txt'' – Mulvya

Verwandte Themen