こんにちは、ヒガシです。
このページではpython-openCVを使って、以下の動画を
別のこの動画の中に
こんな感じでサイズを変えて指定箇所に挿入する方法をご紹介していきます。
上記の動画は再生の手間を省くためにgif形式に変換していますが、実際に紹介するプログラムはmp4形式の動画に対応する形で書いていきます。
いろいろな場面で使えるスキルだと思いますのでぜひご活用ください。
使用するライブラリ
今回もいつもおなじみのopenCVを使っていきます。
使ったことがない方は、まずは以下の記事を参考にインストール作業を進めましょう。
【Python-OpenCV】インストール方法、バージョン確認、使用時の注意点
プログラム実行フォルダの中身の紹介
今回実行するプログラムのフォルダの中身は以下の通りです。
sample_movie1.mp4をsample_movie2.mp4の中にサイズを小さくして挿入していきます。
動画内に動画を挿入するサンプルコード
それでは冒頭に紹介したような、動画内に別の動画を挿入するサンプルコードをご紹介していきます。
#ライブラリインポート
import cv2
#挿入する動画ファイル名を指定
insert_movie='sample_movie1.mp4'
#ベースの動画ファイル名を指定
base_movie='sample_movie2.mp4'
#ベース動画のサイズを指定
bsize=(1000,1000)
#挿入する動画のサイズを指定
isize=(500,500)
#ベース動画のどこに挿入するか指定(挿入動画の左上の位置を指定する)
ins_pos=[0,500]
#動画結合処理開始
fourcc=cv2.VideoWriter_fourcc('m','p','4','v')
save=cv2.VideoWriter('insert_movie.mp4',fourcc,fps=20,frameSize=bsize,isColor=False)
imovie=cv2.VideoCapture(insert_movie)
bmovie=cv2.VideoCapture(base_movie)
nframe=int(bmovie.get(cv2.CAP_PROP_FRAME_COUNT))
for i in range(nframe):
iret,iframe=imovie.read()
bret,bframe=bmovie.read()
iframe=cv2.cvtColor(iframe, cv2.COLOR_BGR2GRAY)
iframe=cv2.resize(iframe,dsize=isize)
bframe=cv2.cvtColor(bframe, cv2.COLOR_BGR2GRAY)
bframe[ins_pos[0]:ins_pos[0]+isize[0],ins_pos[1]:ins_pos[1]+isize[1]]=iframe
if bret==True:
save.write(bframe)
save.release()
基本的にあなたがやることはプログラム前半部分の使用する動画ファイル名の指定、ベース動画&挿入動画サイズの指定、挿入動画の挿入位置の指定のみです。
アレンジするにはどこをどう変えたら良いのか最初はよくわからないと思いますので、いろいろと数値を変えながら変化をみていくのがわかりやすいと思います。
サンプルコードの実行結果
それでは先ほどのコードを実行してみましょう。
★実行前のフォルダの中身
★実行後のフォルダの中身
問題なく新たにinsert_movie.mp4という動画ファイルが生成されていますね。
おわりに
というわけで今回はpython-openCVを使って、動画内に別の動画を挿入する方法をご紹介しました。
動画編集の際などにぜひご活用ください。
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント