You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在bat文件中获取ffmpeg volumedetect输出并提取mean_volume参数

实现方法

完全可以实现,ffmpeg默认将滤镜日志输出到标准错误流(stderr)而非标准输出流(stdout),因此只需添加流重定向规则即可捕获输出内容,再进行字符串筛选就能把参数存入变量。

完整批处理脚本示例

@echo off
setlocal enabledelayedexpansion

:: 定义待处理视频路径
set "INPUT_VIDEO=C:\Users\Nate\Videos\VideoClips\1080p-47243316.mp4"

:: 执行volumedetect检测,重定向stderr到stdout,筛选目标参数行存入临时文件
ffmpeg -i "%INPUT_VIDEO%" -filter:a volumedetect -f null NUL 2>&1 | findstr /r /c:"mean_volume" /c:"max_volume" > vol_temp.txt

:: 提取平均音量数值存入变量
for /f "tokens=2 delims= " %%a in ('type vol_temp.txt ^| findstr "mean_volume"') do set "mean_volume=%%a"
:: 提取最大音量数值存入变量
for /f "tokens=2 delims= " %%a in ('type vol_temp.txt ^| findstr "max_volume"') do set "max_volume=%%a"

:: 清理临时文件
del vol_temp.txt

:: 测试打印变量,可根据需求修改为其他业务逻辑
echo 平均音量:%mean_volume%
echo 最大音量:%max_volume%

endlocal

关键逻辑说明

  • 流重定向:命令里的2>&1表示将标准错误流的输出重定向到标准输出流,这样后续的文本筛选命令才能捕获到volumedetect的输出内容
  • Windows适配:将原命令中的/dev/null替换为Windows系统对应的空设备NUL,避免路径不存在报错
  • 扩展参数提取:如果需要提取volumedetect输出的其他参数,只需修改findstr的匹配关键词即可

内容的提问来源于stack exchange,提问作者NTProductions

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:51:01