【Python-openCV】2つの動画を直列で繋げる方法!

こんにちは、ヒガシです。

 

このページではPython-openCVを使って、以下の2つの動画を

★動画①

★動画②

こんな感じで直列でひとつの動画にまとめる方法をご紹介したいと思います。

※上記の動画はすべてgif形式ですが、プログラムはmp4形式に対応する形で書いています。

 

それではさっそくやっていきましょう!

 

スポンサーリンク

必要なライブラリ

今回使用するのはopenCVのみです。

 

使ったことがない、という方は以下の記事を参考にまずは準備を進めましょう。

【Python-OpenCV】インストール方法、バージョン確認、使用時の注意点

 

スポンサーリンク

実行プログラムのフォルダ構成

以下が今回紹介するプログラムを実行するフォルダの中身です。

プログラムを実行するフォルダの構成

mv_concat.pyというプログラムを実行することで、同じフォルダに置いてあるsample_movei1.mp4とsample_movei2.mp4と直列で結合した動画を作成していきます。

 

スポンサーリンク

動画結合のサンプルコード

それでは前置きはこのくらいにして、冒頭に紹介したような2つの動画を結合するサンプルコードをご紹介します。

#ライブラリインポート
import cv2
movie_list=['sample_movie1.mp4','sample_movie2.mp4']
size=(1000,1000)
fourcc = cv2.VideoWriter_fourcc('m','p','4','v')
save = cv2.VideoWriter('concat_movie.mp4',fourcc,fps=20,frameSize=size,isColor=False)

#動画の結合処理
for movie in movie_list:
    rmovie=cv2.VideoCapture(movie)
    nframe=int(rmovie.get(cv2.CAP_PROP_FRAME_COUNT))
    for i in range(nframe):
        ret,frame=rmovie.read()
        frame=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        if ret==True:
            save.write(frame)
save.release()

 

基本的にあなたがやるべきことは、以下です。

・3行目の動画フォイルリストを使用する動画名に書き換える

・4行目の動画のサイズを指定する

・6行目の保存する際のファイル名を指定する

 

なお、今回のプログラムはモノクロ動画に対して実行するようにしていますので、もしカラー画像に対して適用したい場合は

・6行目のisColor=Trueにする

・14行目のframe=cv2・・・を削除する

という処理をおこなえば対応できるはずです。

※もしできなければコメント欄から教えてください。

 

また、今回は2つの動画しか使っていませんが、movie_listに追加すれば3つでも4つでも対応可能です。

 

スポンサーリンク

サンプルコードの実行結果

最後に先ほどのプログラムを実行してみましょう。

〇プログラム実行前のフォルダ

プログラム実行前のフォルダ

〇プログラム実行後のフォルダ

プログラム実行後のフォルダ

ひとつ動画が生成されていますね。

 

問題なく再生できることを確認できました。

 

スポンサーリンク

おわりに

というわけで今回はpython-openCVを使って、2つの動画を直列で結合する方法をご紹介しました。

動画編集の際などにぜひご活用ください。

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました