gpt4 book ai didi

ffmpeg 为什么不打印元数据

转载 作者:行者123 更新时间:2023-12-04 22:58:37 24 4
gpt4 key购买 nike

在将音频流编码为 flac 文件时,我想捕获与音频流的音量相关的实时元数据。最终我想嵌入这一切是一个基于 nodejs 的 web 应用程序。不久前,我使用 showvolume 过滤器问了一个问题,并让所有这些都与流视频一起工作,将 ffmpeg 作为子进程运行。我想用基于文本的输出重复此操作,例如我相信您可以使用 -astats 过滤器。

这是我尝试过的命令:-

ffmpeg -hide_banner -nostats -f alsa -acodec pcm_s16le -ac:0 2 -ar 480000 -i hw:CARD=Microphone -af astats=metadata=1:length=1:reset=1 -af ametadata=mode=print:key=lavfi.astats.Overall.Peak_level_dB:file=- -acodec flac test.flac 2>log.txt

我希望在标准输出上看到统计信息,但什么也没看到。 flac 文件很好,日志文件没有显示任何问题。

我以为我了解了 astats 的工作原理。按照配置,它应该将元数据添加到 1 秒音频样本的音频流中。第二个监视流中的元数据,当看到峰值电平 dB 时,它应该将其输出到称为标准输出的文件。

显然我误解了一些东西,并没有真正找到任何可以检查的例子。有人可以帮忙吗

最佳答案

应在同一个 -af 内应用多个过滤器用逗号分隔。此外,默认情况下,元数据将等待其缓冲区填满,然后再写出数据。添加 direct=1强制实时输出。但是这个选项只在当前的 git 版本中可用。

利用ffmpeg -hide_banner -nostats -f alsa -acodec pcm_s16le -ac:0 2 -ar 480000 -i hw:CARD=Microphone -af astats=metadata=1:length=1:reset=1,ametadata=mode=print:key=lavfi.astats.Overall.Peak_level_dB:file=-:direct=1 -acodec flac test.flac 2>log.txt

关于ffmpeg 为什么不打印元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60676123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com