我需要编写一个 FFmpeg 命令,以 x 秒为单位记录一段视频流。这些片段应使用 UTC 日期和时间 (UTC+0) 命名,而不是我本地 PC 时间。或者,我希望+hhmm
在文件名中添加时区偏移量,文件名目前包含我 PC 的日期和时间。
我尝试使用z
和大写Z
选项,但它们输出时区缩写而不是时区偏移量。
这是我一直在使用的 FFmpeg 命令:
ffmpeg -i udp://127.0.0.1:8032 -c:v libx264 -f segment -segment_time 3600 -strftime 1 mpegts %Y%m%d_%H:%M:%s%z.ts
关于如何将文件名写为 UTC 时间或写时区偏移量,有什么建议吗?
答案1
strftime
选项依赖于系统对同名 C 函数的实现。在 ffmpeg 本身中你对此无能为力。
参考:
- 拒绝 ffmpeg 错误报告
- 更多信息, 还这里,至于为什么
%z
在 Windows 中不可用(在 Python 中,但理由是一样的)
您只能通过脚本(例如使用 PowerShell)以静态插值形式实现此目的。例如:
$offset = Get-Date -Format " K"
将以空格开头的偏移量存储为一个变量,您可以将其插入为"%Y%m%d_%H:%M:%s$offset.ts"
。