【问题标题】:ffmpeg - ffprobe duration format changeffmpeg - ffprobe 持续时间格式更改
【发布时间】:2020-07-29 12:28:09
【问题描述】:

我正在使用 ffmpeg 获取一些文件持续时间 下面是我的代码

$filename = '1aef53e6-92ac-4d28-89f8-4cce28fa0f58.mp4'
$duration = if ((ffmpeg -i $filename 2>&1 | Out-String) -match 'Duration:\s+([\d:.]+)') { $matches[1] }

实际输出是这样的 H :M :S :F 00:00:00.00

我需要像这样的输出 00:00:00:00 在秒和帧之间,有一个“.”句号,我需要它是一个“:”

有什么建议吗?

【问题讨论】:

  • 使用 ffprobe,而不是 ffmpeg。 ffmpeg 的输出并不意味着机器解析。请参阅我在上一个问题中的回答:Can we declare a variable in ffmpeg ffprobe,然后使用 Windows 等效的sed. 更改为:,(或者以秒为单位输出持续时间)。
  • @llogan 非常感谢

标签: powershell ffmpeg format duration ffprobe


【解决方案1】:

$matches[1]之后添加.Replace(".",":")

$duration = if ((ffmpeg -i $filename 2>&1 | Out-String) -match 'Duration:\s+([\d:.]+)') { $matches[1].Replace(".",":") }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-10
    • 2016-06-10
    • 2014-08-07
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 1970-01-01
    相关资源
    最近更新 更多