gpt4 book ai didi

windows - 将 TIMECODE 转换为帧号的批处理

转载 作者:可可西里 更新时间:2023-11-01 10:21:57 24 4
gpt4 key购买 nike

在批处理中有一个名为 %timecode% 的环境变量,如果存在并定义了时间码,则输出这种类型的字符串:

HH:MM:SS:FF

例如 01:32:21:05

在PAL模式下,25fps,我想把这个时间码转换成他对应的帧号,对于01:32:21:05情况下的rxample是138530

所以转换处理应该输出138530

Another examples: 00:00:00:00 ----------------> 0
00:00:00:01 ----------------> 1
........
00:00:00:24 ----------------> 24
00:00:01:00 ----------------> 25
00:00:01:01 ----------------> 26

等等我该怎么办?

最佳答案

@echo off
setlocal enableextensions disabledelayedexpansion
set "frameRate=25"

set "timecode=01:32:21:05"

for /f "tokens=1-4 delims=:" %%a in (
"100%timecode::0=: %"
) do set /a "frame=((%%a %% 100)*3600 + (%%b0)*60/10 + (%%c0)/10) * %frameRate% + (%%d0)/10"

echo %frame%

此代码使用冒号作为分隔符来拆分时间码变量内容。为了解决零前缀字段(以八进制形式考虑并且在 0809 的情况下有问题),丢失或格式错误的数据,使用了一些“技巧”。

要更正小时部分,输入数据以 100 为前缀,该字段将以 100 为模进行处理。

为了处理有问题的零前缀字段,输入数据中的冒号后跟零被替换为相同的冒号后跟空格。

为了处理缺失字段的问题,在进行计算时,所有提取的数据都以零作为后缀(乘以 10),并且该字段中的运算结果除以 10

关于windows - 将 TIMECODE 转换为帧号的批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26268335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com