2011-01-26 8 views
7

どのようにして、ビデオのシンプルな帽子を作ることができますか?小さなビデオのサムネイルCAPをプログラムで生成

Ideia:9でも(タイムライン上)に置い回9つのスナップショットを取り、その後に変位JGP

私はこれをどのようにしたらよいでしょうか?

PILは唯一の方法ですか? (右、私がやりたいことは容易ではないだろう?)

は、任意のモジュール(のpythonがalmoust何のためのGREAT modelesを持っているseens、または私は運の外にしています)

例がありません。

Movie lenght = 10 min 
T1= snapshot of 1 min 
T2= snapshot of 2 min 
...... 
T9= snapshot of 9 min 
    | | 
T1| T2| T3 
---+---+--- 
T4| T5| T6 
---+---+--- 
T7| T8| T9 
    | | 

答えて

7

これは私がフル親指の画像を作成するために、フレーム抽出とPILのためのffmpegを使用して、いくつかの時間前にやった何かへの迅速な変更です。

import os, sys 
from PIL import Image 

# Use "ffmpeg -i <videofile>" to get total length by parsing the error message 
chout, chin, cherr = os.popen3("ffmpeg -i %s" % sys.argv[1]) 
out = cherr.read() 
dp = out.index("Duration: ") 
duration = out[dp+10:dp+out[dp:].index(",")] 
hh, mm, ss = map(float, duration.split(":")) 
total = (hh*60 + mm)*60 + ss 

# Use "ffmpeg -i <videofile> -ss <start> frame<nn>.png" to extract 9 frames 
for i in xrange(9): 
    t = (i + 1) * total/10 
    os.system("ffmpeg -i %s -ss %0.3fs frame%i.png" % (sys.argv[1], t, i)) 

# Make a full 3x3 image by pasting the snapshots 
full = None 
for y in xrange(3): 
    for x in xrange(3): 
     img = Image.open("frame%i.png" % (y*3+x)) 
     w, h = img.size 
     if full is None: 
      full = Image.new("RGB", (w*3, h*3)) 
     full.paste(img, (x*w, y*h)) 

# Save result 
full.save("thumbs.png") 
+0

私は今夜テストします。うわー、あなたのコードをコメントしてください(ありがとう:)) –

関連する問題