powershell - 我们可以在ffmpeg ffprobe中声明一个变量吗

标签 powershell variables ffmpeg ffprobe

我是ffmpeg的新手。

我想通过 ffmpeg 获取视频持续时间并将其声明为变量。我可以将值用于不同的功能。我正在使用电源外壳。

这是我的代码:

ffmpeg -i 1aef53e6-92ac-4d28-89f8-4cce28fa0f58.mp4 2>&1 | sed -n 's/Duration: \(.*\), start/\1/gp'

最佳答案

前提是你已经在 Windows PATH 中设置了 ffmpeg 的路径变量如解释 here ,这应该为您提供文件的持续时间值:

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

请注意,在此之后 $duration是一个字符串。
如果您需要创建 TimeSpan这个对象,使用:
$t = [TimeSpan]::Parse($duration)

关于powershell - 我们可以在ffmpeg ffprobe中声明一个变量吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61206537/

相关文章:

java - 在java中通过多个框架使用变量

c++ - 使用 boost.python 从 C++ 将变量导出到 python

javascript - 实时更新 Javascript 变量

ffmpeg fps 低于预期

ffmpeg - 流 m3u8 在开始前停止

Powershell 组对象和总结

powershell - 如何将非默认目录中的客户端授权给 KeyVault

powershell - 即使遇到重新启动,也继续执行 powershell 脚本

regex - Powershell select-string 根据匹配数返回不同的值

python - 如何通过 CUDA 支持将 BGR NumPy 数组直接传递到 FFMPEG