【问题标题】:CMD equivalent of linux wc -l command within a call to FFPROBE? [closed]在对 FFPROBE 的调用中相当于 linux wc -l 命令的 CMD? [关闭]
【发布时间】:2021-11-26 03:25:38
【问题描述】:

这个答案可以解决我的很多问题,但依赖 wc -l 来统计 ffprobe 输出的音频通道数。

How do I use ffmpeg to merge all audio streams (in a video file) into one audio channel?

我使用的是 Windows 批处理文件,所以我需要另一种方法在 CMD 中完成以下操作:

-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=$(ffprobe -loglevel error -select_streams a -show_entries stream=codec_type -of csv=p=0 input.mov | wc -l),atempo=24000/24024[audio]"

有什么帮助吗?我的编程经验很少。这个问题似乎在问同样的问题,但我似乎无法将其建议调整到 ffprobe 调用中,最终结果只是返回一个数字。

What is the windows equivalent of Linux command wc -l?

【问题讨论】:

    标签: windows batch-file cmd ffmpeg


    【解决方案1】:

    这是未经测试的,因为我没有安装您的程序。但本质上,您需要做的是使用FOR /F 命令捕获 ffprobe 的输出。您将 FFPROBE 的输出通过管道传送到 FIND 命令以获取非空行数。

    FOR /F "delims=" %%G in ('ffprobe -loglevel error -select_streams a -show_entries stream^=codec_type -of csv^=p^=0 input.mov ^| find /v /c ""') do set "count=%%G"
    

    然后您可以将变量 %count% 与您的 FFMPEG 命令一起使用。

    【讨论】:

    • 这很有魅力——非常感谢!现在我可以调整它并使用 ffprobe 生成各种数据,然后根据文件属性决定进一步处理。惊人的。你让我很开心!
    • ^ 是一个转义字符。当 FOR /F 命令的 IN 子句中包含特殊字符时需要它。
    • 谢谢!我发现他们总是在“=”之前,所以怀疑可能是这种情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2018-12-01
    • 2010-09-20
    • 2011-05-04
    • 2015-03-30
    • 1970-01-01
    相关资源
    最近更新 更多