如何获取 FFMPEG 中的 lavfi.aphasemeter.phase 帧元数据?

How does one obtain the lavfi.aphasemeter.phase frame metadata in FFMPEG?

我正在尝试导出声音文件相位的数字表示。

FFMPEG 的相位计过滤器似乎适合计算这个数字;文档明确地说:

The filter also exports the frame metadata lavfi.aphasemeter.phase which represents mean phase of current audio frame. Value is in range [-1, 1]. The -1 means left and right channels are completely out of phase and 1 means channels are in phase.

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

但是,我似乎无法弄清楚如何使用此过滤器来获取该数值。当我尝试各种命令时,会收到各种错误消息。例如,ffmpeg -i input_file.wav -f aphasemeter.phase 表示我需要一个输出,但 ffmpeg -i input_file.wav -f aphasemeter.phase output_file.txt 产生 is not a suitable output format \ output_file.txt: Invalid argument

我正在寻找 -1 到 1 的值;该过滤器的图形表示——虽然看起来是该过滤器的要点——并不是我要找的。

有什么想法吗?

以防万一,我正在使用 WSL,通过 apt-get 安装了 ffmpeg。

可以使用 (a) 元数据过滤器访问和导出记录的元数据值。

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

文本文件将包含格式为

的数据
...
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
...