Python 从json使用unixtime从视频创建多个子嘴唇?

Python 从json使用unixtime从视频创建多个子嘴唇?,python,ffmpeg,video-processing,moviepy,pyffmpeg,Python,Ffmpeg,Video Processing,Moviepy,Pyffmpeg,问题: 我想根据json数据的开始时间和结束时间修剪视频文件。有多个开始和结束时间,需要修剪视频,然后添加最终部分 我尝试使用MoviePy,将unix时间戳分配给var,然后使用datetime转换为MM:SS 我如何为多个值执行此操作,例如脚本将遍历所有DICT并根据数据修剪视频 MoviePY是否足够胜任这项工作,或者是否有其他有效的方法 我尝试的是: from moviepy.editor import * import datetime start_time = int(datet

问题: 我想根据json数据的开始时间和结束时间修剪视频文件。有多个开始和结束时间,需要修剪视频,然后添加最终部分

我尝试使用MoviePy,将unix时间戳分配给var,然后使用datetime转换为MM:SS

我如何为多个值执行此操作,例如脚本将遍历所有DICT并根据数据修剪视频

MoviePY是否足够胜任这项工作,或者是否有其他有效的方法

我尝试的是:

from moviepy.editor import *
import datetime


start_time = int(datetime.datetime.fromtimestamp(int("1456229360")).strftime('%S'))
end_time =  int(datetime.datetime.fromtimestamp(int("1456229334")).strftime('%S'))
print start_time
print end_time


my_clip = VideoFileClip("sample.mp4")

#Trims the video as per the processed timestamps
clip1 = my_clip.subclip(start_time,end_time) #and select the subclip 00:00:00 - 00:00:00

#Append the trimmed parts.

#final_video = concatenate([clip1,clip2,clip3]) #How to do this ?

processed_vid = clip1.write_videofile("final_sample.mp4")

with open('output.json', 'r') as f:
    timestamps = json.load(f)
示例Json数据:

[
    {
        "accl": 1.5899999999999999, 
        "duration": 19, 
        "end_time": 1434367730, 
        "start_time": 1434367711
    }, 
    {
        "accl": 0.7670000000000012, 
        "duration": 14, 
        "end_time": 1434368618, 
        "start_time": 1434368604
    }, 
    {
        "accl": 0.7129999999999992, 
        "duration": 11, 
        "end_time": 1434368692, 
        "start_time": 1434368681
    }, 
    {
        "accl": 0.5970000000000013, 
        "duration": 13, 
        "end_time": 1434367605, 
        "start_time": 1434367592
    }
]
更新: 我试着做一些其他的事情,我正在达到目的,但我需要帮助大规模转换这些时间戳,因为moviepy只接受HH:MM:SS而不接受unixtime,并在此基础上创建子唇

from moviepy.editor import *
import datetime
import json

clips_array = []

video= VideoFileClip('sample.mov')


with open('output.json', 'r') as f:
    timestamps = json.load(f)
    for timestamps in f:
        clip = full_vid.subclip(start_time, end_time)
        clips_array.append(clip)

下面是我如何修复的,我希望有一天它能帮助其他人:)

with open('output.json', 'r') as f:
    timestamps = json.load(f) 
for i in timestamps:
    starttime = int(datetime.datetime.fromtimestamp(i["start_time"]).strftime('%S')) 
    endtime = int(datetime.datetime.fromtimestamp(i["end_time"]).strftime('%S'))
    clip = video.subclip(starttime, endtime)
    clips_array.append(clip)
final_clip = concatenate_videoclips(clips_array)
final_clip.write_videofile("Out_File.mp4")