Moviepyオーディオおよびビデオ編集:マスクを使用してビデオオーバーレイの透明効果を実現

☞░GoLaoYuanPythonはhttps://blog.csdn.net/LaoYuanPythonブログ

I.はじめに

Moviepyオーディオおよびビデオ編集:マスククリップ、マスク編集の役割、マット、マスクおよびその構成コンテンツ」:「マスクは、グレー値のピクセルで構成されるフレームで構成されるクリップです。その機能は、マスクされたクリップが他のクリップと組み合わされたときに、マスクされたクリップの対応するピクセルが表示されるかどうかを確認することです。」

この記事では、マスクマスク編集を使用して、重ね合わせたビデオの透明効果を実現します。

第二に、プログラムが実現されます

このケースでは、回転するビデオまたは回転する画像をビデオに重ね合わせることができる一般的な方法を実装し、コンテンツサイズが異なる2つのビデオの重ね合わせをサポートします。重ね合わせたオブジェクトを画像としてサポートするには、画像を動画に変換する必要があります。画像の内容をできるだけ強調するために、画像を動画に変換する前に、画像の背景色を黒に変換します。
関連するプログラムには、次の機能が含まれます。

  1. ridPicBackground:convertPicToVideoによって呼び出される画像の背景色を削除します
  2. convertPicToVideo:videoOverlyObjMaskによって呼び出される画像をビデオに変換します
  3. videoOverlyObjMask:ビデオとオーバーレイオブジェクトをオーバーレイします

上記の関数の主要な関数はvideoOverlyObjMaskです。この関数は、ビデオの回転とオーバーレイのメインプログラムコードです。関連するプログラムコードは次のとおりです。


    
def videoOverlyObjMask(videoFName,objType='self',obj=None):
    """
    剪辑自身叠加一个该剪辑旋转的层,旋转层带自身转换的遮罩剪辑
    :param videoFName: 剪辑来源视频文件
    :return: 参数视频剪辑自身叠加一个该剪辑旋转层剪辑
    """
    clip = VideoFileClip(videoFName, audio=True)
    objClip = clip
    if objType == 'img':
        objClip = convertPicToVideo(obj, duration=clip.duration, createMask=False).set_fps(clip.fps)
    elif objType == 'video':
        if isinstance(obj, str):
            objClip = VideoFileClip(obj, audio=False)
        else:
            objClip = obj

    rotateClip = objClip.rotate(angleF,expand=True).fx(vfx.resize,clip.size)
    maskclip = rotateClip.to_mask()
    rotateClip = rotateClip.set_mask(maskclip)

    clipVideo = CompositeVideoClip([clip, rotateClip])
    return clipVideo
    
if __name__=='__main__':
	#实现剪辑和自身旋转剪辑叠加
    result2 = videoOverlyObjMask(r"F:\video\WinBasedWorkHard_src.mp4")
    result2.write_videofile(r"F:\video\WinBasedWorkHard_mask_self.mp4", threads=8)
    #实现剪辑和图片构造的旋转剪辑叠加
    result3 = videoOverlyObjMask(r"F:\video\WinBasedWorkHard_src.mp4",'img',r'F:\pic\Lotus.JPG')
    result3.write_videofile(r"F:\video\WinBasedWorkHard_mask_pic.mp4", threads=8)
     #实现剪辑和另一个旋转剪辑叠加
    result4 = videoOverlyObjMask(r"F:\video\mydream.mp4", 'video',r"F:\video\WinBasedWorkHard_src.mp4")
    result4.write_videofile(r"F:\video\WinBasedWorkHard_mask_video.mp4", threads=8)

有料欄の記事と区別するために、他のマイナーな機能のコードはここでは提供されていません。この記事に対応する有料の列は、「Moviepyオーディオおよびビデオ編集:マスク編集を使用したオーバーレイ透明効果の詳細な説明」です。

3.ケース効果

3.1。関連資料の紹介

  • WinBasedWorkHard_src.mp4:ZhouXingchiの「勝つために戦うのが大好き」MVビブラトビデオ
  • mydream.mp4:ZhangJianyingの「MyDream」ビブラトビデオ
  • Lotus.jpg:蓮の絵
    ここに写真の説明を挿入

3.2。クリッピングと自己回転クリップオーバーレイ効果

ここに写真の説明を挿入

3.3。ビデオと画像の構成の回転クリップオーバーレイ

ここに写真の説明を挿入

3.4。クリップと別の回転クリップオーバーレイ効果

ここに写真の説明を挿入

4、まとめ

この記事では、マスクマスク付きのクリップをムービーで設定した後、上層のクリップと下層のクリップを重ね合わせ、他のクリップを重ね合わせ、上層のクリップの背景色を下層のクリップコンテンツに置き換える方式を紹介します。この実現事例の紹介により、マスク編集の役割を理解し、この方法を使用して、複数の編集特殊効果でビデオ特殊効果を作成することができます。

この記事が大丈夫だと思うなら、ラオス元はみんなに好きでお気に入りを追加するように頼みます、ありがとう!

映画の紹介については、「PyQt + moviepyオーディオおよびビデオ編集記事ディレクトリ」または「Moviepyオーディオおよびビデオ開発コラムを参照してくださいこれら2つの列の内容に関するガイダンスについては、「Pythonオーディオおよびビデオ編集ライブラリMoviePy1.0.3中国語チュートリアルガイドおよび実行可能ツールのダウンロードを参照してください

この記事に対応する有料の列は、「Moviepyオーディオおよびビデオ編集:マスク編集を使用したオーバーレイ透明効果の詳細な説明」です。

古い猿についての有料コラム

Lao Yuanの有料コラム「PyQtを使用したグラフィカルインターフェイスPythonアプリケーションの開発https://blog.csdn.net/laoyuanpython/category_9607725.html」では、PythonベースのPyQtグラフィカルインターフェイス開発の基本的なチュートリアル、有料コラム「moviepyオーディオおよびビデオ開発コラムhttps://blog.csdn.net/laoyuanpython/category_9607725.html」を具体的に紹介しています。 : //blog.csdn.net/laoyuanpython/category_10232926.html "映画のようなオーディオとビデオの編集と合成の関連する方法と、関連する編集と合成のシーンを処理するための関連する方法の使用を詳細に紹介します。これらはすべて、特定のPythonの基礎を持っているが、関連する知識がない人に適しています。初心者の読者は学びます。これらの2つの有料の列には対応する無料の列がありますが、有料の列の記事はより具体的で、より詳細で、より多くのケースがあります。

有料コラム記事カタログ:「Moviepyオーディオおよびビデオ開発コラム記事ディレクトリ」、「PyQtを使用してグラフィカルインターフェイスPythonアプリケーションコラムディレクトリを開発する」。

Moviepyオーディオおよびビデオ開発の内容についてはPythonオーディオおよびビデオクリップライブラリMoviePy1.0.3中国語チュートリアルガイドおよび実行可能ツールのダウンロード」のガイド付き紹介を参照しください

Pythonの基礎が不足している場合は、Lao Yuanの無料のコラム「コラム:Python基本チュートリアルディレクトリhttps://blog.csdn.net/laoyuanpython/category_9831699.html」からPythonを最初から学ぶことができます

Old Apeの読者に興味があり、喜んでサポートする場合は、有料のコラムを購入することを歓迎します。

古い猿からPythonを学びましょう!

☞░LaoYuanPythonブログ投稿ディレクトリhttps://blog.csdn.net/LaoYuanPython/article/details/98245036に移動します

おすすめ

転載: blog.csdn.net/LaoYuanPython/article/details/109210784