【動画連結】OpenCVで動画の連結をやってみた♪
OpenCVで動画連結してみた。
なかなか芽が出ないので、コマ切れになった動画を連結することとした。
やってみると、参考サイトがあり、ここから連結は簡単にできてしかも応用範囲も広そうなので、まとめておこうと思う。
コードは以下に置きました
これは、ほとんど参考のexport_movie.pyのままで、単に複数動画に拡張したものです。
【参考】
・Python + OpenCV で雑コラ動画を作成する③ 雑コラ動画作成
コード解説
OpenCVだけで、やれます。
関数名をcombine_movie()としました。
複数ファイルは列挙しています。
#coding=utf-8
import cv2
def combine_movie():
# 入力する動画と出力パスを指定。
target1 = "kenbikyo_video_hatuga_60-3.mp4"
target2 = "kenbikyo_video4450940952464.mp4"
target3 = "kenbikyo_video4527173059250.mp4"
参考の通り、出力ファイルを定義します。
codecはウワンと同じMP4V,出力の拡張子は参考と同じとしました。
fps, int(width), int(height)を最初の元動画から取得します。
ここで、fpsをfps*2とか、int(fps*0.5)とすると、早回し、スロー再生ができます。
result = "kenbikyo_combine.m4v"
# 形式はMP4Vを指定
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
#動画情報の取得
movie = cv2.VideoCapture(target1)
fps = movie.get(cv2.CAP_PROP_FPS)
height = movie.get(cv2.CAP_PROP_FRAME_HEIGHT)
width = movie.get(cv2.CAP_PROP_FRAME_WIDTH)
print(fps, int(width), int(height))
# 出力先のファイルを開く
out = cv2.VideoWriter(result, int(fourcc), fps, (int(width), int(height)))
ここでは3個の動画を順に読み込み・書き出しをします。
結合動画を意味する'comBined_movie'を重畳します。
# 動画の読み込み
for i in range(1,4):
if i==1:
movie = cv2.VideoCapture(target1)
print(i)
elif i==2:
movie = cv2.VideoCapture(target2)
print(i)
elif i==3:
movie = cv2.VideoCapture(target3)
print(i)
# 最初の1フレームを読み込む
if movie.isOpened() == True:
ret,frame = movie.read()
else:
ret = False
# フレームの読み込みに成功している間フレームを書き出し続ける
while ret:
cv2.putText(frame, 'comBined_movie', (400,400), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0,0,255), 2);
# 読み込んだフレームを書き込み
out.write(frame)
# 次のフレームを読み込み
ret,frame = movie.read()
if __name__ == '__main__':
combine_movie()
思っていたより、案外簡単にできました。
連結動画
・複数の顕微鏡動画を連結してスロー再生、早回し再生などしてみた♪
※画像をクリックするとYouTube動画につながります
まとめ
・OpenCVで動画の連結をやってみた
・fpsの値で再生速度を変更できる
※再生速度変更だけでもできます
・いろいろなバラバラ動画から、まともな動画が作れそうだ
Author And Source
この問題について(【動画連結】OpenCVで動画の連結をやってみた♪), 我々は、より多くの情報をここで見つけました https://qiita.com/MuAuan/items/f63a6dcdd6794b71c072著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .