【发布时间】:2021-12-12 12:02:06
【问题描述】:
我有一个用户定义的函数 (return_times),它接受 json 文件并返回两个类似日期时间的字符串。
time_1, time_2= return_times("file.json")
print(time_1, time_2) # outputs: 00:00:11.352 00:01:51.936
我的意思是类似于日期时间的字符串00:00:11.352,它适合'%H:%M:%S.%f' 格式。但是,当我尝试将它们转换为毫秒时,我得到了负值。
from datetime import datetime
dt_obj_1 = datetime.strptime(time_1, '%H:%M:%S.%f')
start_ms = dt_obj_1.timestamp() * 1000
dt_obj_2 = datetime.strptime(time_2, '%H:%M:%S.%f')
end_ms = dt_obj_2.timestamp() * 1000
print(start_ms, end_ms ) # outputs: -2209019260648.0 -2209019160064.0
如果我成功了,我想使用以下命令修剪视频:
from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
ffmpeg_extract_subclip("long_video.mp4", start_ms, end_ms, targetname="video_trimmed.mp4"), so just delete ` * 1000` part.
注意ffmpeg_extract_subclip 要求其t1 和t2 参数以秒为单位,而不是我最初认为的以毫秒为单位。
由于这些负整数,我无法成功运行修剪过程。
我搜索了主要讨论年,月和日的几种格式的网络,但没有'%H:%M:%S.%f'。
我可能会忽略什么?
【问题讨论】:
-
这能回答你的问题吗? stackoverflow.com/a/59200108/2681662
-
这看起来更像是一个时间,而不是日期和时间。还是您的意思是 timedelta,即持续时间?
-
如果你碰巧使用
pandas:pd.to_timedelta("00:00:11.352").total_seconds()*1000
标签: python string datetime timedelta