Windows CMD中调用FFPROBE时替代Linux wc -l命令的实现方法
Windows CMD 批处理实现方案
Windows CMD 中使用find /c /v ""可以替代Linux的wc -l统计输出行数,再通过批处理变量存储音频流数量,传递给ffmpeg参数即可。
完整批处理代码(.bat文件直接可用)
:: 统计输入视频的音频流数量,替换input.mov为你的实际文件路径 for /f %%a in ('ffprobe -loglevel error -select_streams a -show_entries stream=codec_type -of csv=p=0 input.mov ^| find /c /v ""') do set AUDIO_COUNT=%%a :: 调用ffmpeg执行转码,替换最后的output.mp4为你的输出路径 ffmpeg -i input.mov -filter_complex "[0:v]scale=w=1920:h=1080:force_original_aspect_ratio=1,pad=1920:1080:(ow-iw)/2:(oh-ih)/2[video];[0:a]amerge=inputs=%AUDIO_COUNT%,atempo=24000/24024[audio]" -map "[video]" -map "[audio]" output.mp4
注意事项
- 如果你是直接在CMD窗口手动执行命令,不是写.bat批处理文件,把代码里的
%%a改成%a即可。 - 确保ffmpeg、ffprobe所在目录已经加入系统环境变量PATH,否则要写全两个程序的完整路径。
内容的提问来源于stack exchange,提问作者BrainNoWerk
相关产品推荐
相关产品推荐

