2

問題: json データの開始時間と終了時間に基づいてビデオ ファイルをトリミングしたいと考えています。複数の開始時間と終了時間があり、ビデオをトリミングしてから最終部分を追加する必要があります。

Unix タイムスタンプを var に割り当ててから、datetime を使用して MM:SS に変換することで、MoviePy を使用してみました。

スクリプトがすべての辞書を通過し、データに従ってビデオをトリミングするように、複数の値に対してこれを行うにはどうすればよいですか?

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)
4

1 に答える 1