Python + Moviepy 5行のコードを使用して、2つのビデオのシーケンシャルスプライシングを実現します

☞░LaoYuanPythonブログ投稿ディレクトリ:https: //blog.csdn.net/LaoYuanPython░

ここに画像の説明を挿入します

I.はじめに

最近、「n行のPythonコード...」に似たブログ投稿をいくつか見ました。見た目はかなり良く、簡潔で実用的です。知識を広め、読書量を増やしました。古い猿の心を動かし、フォローすることにしました。スーツとプッシュ1。「PythonコードシリーズのN行」の記事。

今日、私は2つのビデオを1つのビデオに順番につなぎ合わせるというミニマリストの実装を作成します。その他の「n-linePythonコードシリーズ」の記事については、無料のコラム「https://blog.csdn.net/laoyuanpython/category_10858655.htmln-linePythonコードシリーズ」を参照してください

2、5行のコード2ビデオシーケンスステッチ

from  moviepy.editor import *

clipVideo1 = VideoFileClip(r"F:\video\WinBasedWorkHard_src.mp4")
clipVideo2 = VideoFileClip(r"F:\video\seeWindAndCloudWithSmile.mp4")
video = concatenate_videoclips([clipVideo1,clipVideo2],'compose')
video.write_videofile(r'f:\video\concatenateVideo2.mp4')

上記の5行のコードは、最初にmoviepy関連モジュールをロードし、次に2つのビデオファイルを読み込んでステッチし、最後に結果ファイルに出力して、2つのビデオファイルが順番にステッチされるようにします。実際、上記の5行のコードは、次の2行に組み合わせることができます。

from  moviepy.editor import *

concatenate_videoclips([VideoFileClip(r"F:\video\WinBasedWorkHard_src.mp4"),VideoFileClip(r"F:\video\seeWindAndCloudWithSmile.mp4")],'compose').write_videofile(r'f:\video\concatenateVideo2.mp4')

ただし、これは読み取り可能ではないため、次のような3行のコードを使用する方が適切です。

from  moviepy.editor import *
clips =[VideoFileClip(r"F:\video\WinBasedWorkHard_src.mp4"),VideoFileClip(r"F:\video\seeWindAndCloudWithSmile.mp4")]

concatenate_videoclips(clips,'compose').write_videofile(r'f:\video\concatenateVideo2.mp4')

3.背景知識

3.1、映画の紹介

ビデオをアニメーションに変換するために、OldApeはmoviepyライブラリを使用します。

MoviePyは、ビデオ編集用のPythonモジュールであり、基本的なビデオ操作(切り取り、結合、タイトル挿入など)、ビデオ合成(ノンリニア編集とも呼ばれます)、ビデオ処理、または高度な効果の作成に使用できます。

GIFを含む最も一般的なビデオ形式の読み取りと書き込みが可能です。MoviePyが処理できるビデオはffmpeg形式です。Laoyuanは、サポートされているファイルタイプに少なくとも* .mp4 * .wmv * .rm * .avi * .flv * .webm * .wav * rmvbが含まれていることを理解しています。

MoviePyのインストールは非常に簡単です。pipを使用してインストールする場合は、サイトを国内のミラーサイトにポイントしてください。そうしないと、ダウンロードが遅くなるか、ダウンロードできなくなります。老猿は清華のミラーを使用します。手順は次のとおりです。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple moviepy

Moviepyの詳細については、Laoyuanの無料コラム「https://blog.csdn.net/laoyuanpython/category_9991887.htmlPyQt+moviepyオーディオおよびビデオ編集の戦闘を参照してください

3.2、関連機能

上記のコードに関連する関数には、VideoFileClip、concatenate_videoclips、およびwrite_videofileが含まれます。

  • VideoFileClipは、実際にはビデオファイルからビデオを読み取るために使用されるクラスであり、write_videofileメソッドはビデオクリップをファイルに出力するために使用されます。これらの2つの機能は前回のブログ投稿で紹介されているため、ここでは繰り返しません。
  • concatenate_videoclipsclips関数は、複数のビデオを1つのビデオにマージして、順番に再生することをサポートします

呼び出し構文

concatenate_videoclips(clips, method="chain", transition=None, bg_color=None, ismask=False, padding = 0)
文法の定義:
  • クリップ:複数のビデオクリップのリスト。リスト内の各要素は、VideoClipタイプのオブジェクトです。
  • 方法:スプライシング方法、2つの値があります
  1. 「チェーン」:クリップが同じサイズ(解像度)であるかどうかに関係なく、クリップの複数の連続するフレームを修正せずに出力するだけのクリップを生成します。パラメータリストのどのクリップにもマスクがない場合、最後にステッチされたクリップにもマスクがありません。それ以外の場合、最後のクリップはすべてのパラメータクリップマスクのステッチになります。対応するパラメータでマスクのないクリップが指定されている場合、完全に不透明なクリップが使用されます。マスクとして。パラメータに対応する複数のクリップのサイズが異なり、ステッチされたクリップをファイルに直接出力する場合は、「作成」方法を使用する必要があります。
  2. 「作成」:パラメータに対応するクリップの解像度が同じでない場合、最終的な解像度は、すべてのクリップのサイズを変更する必要がない解像度になります。したがって、最終的なクリップは、パラメータリストで最も高いクリップの高さと最も​​広いクリップの幅を持ちます。小さいクリップはすべて中央に表示されます。mask = Trueの場合、境界線は透明です。それ以外の場合は、「bg-color」で指定された色です。すべての入力クリップの中で最も高いFPSは、最後に接続されたクリップのFPSです。
  • トランジション:トランジションは、リスト内の2つのクリップごとに再生されるクリップを指定します。つまり、結果のクリップは、クリップに対応するパラメーターをスプライスするだけでなく、2つのクリップ間のトランジションによって指定されたトランジションクリップも挿入します。
  • bg_color:method = "compose"の場合にのみ使用され、背景色を設定します。透明なクリップが必要な場合は[なし]に設定します。それ以外の場合は、黒の場合は(0,0,0)などのRGB色を表すトリプルです。つまり透明色
  • パディング:method = "compose"の場合にのみ使用されます。このパラメーターが割り当てられている場合、次のクリップと前のクリップの再生がしばらく重なることに注意してください。この負のパディングパラメーターは徐々に暗くなり、次のクリップから抜ける効果。ゼロ以外のパディング値は、メソッドを自動的に「作成」に設定します
  • 戻り値:最終的にステッチされたクリップ

Moviepyの関数と関数の詳細については、「https://blog.csdn.net/LaoYuanPython/article/details/108184832Pythonオーディオおよびビデオ編集ライブラリMoviePy1.0.3中国語チュートリアルガイドと実行可能ツールのダウンロードのガイドを参照してください。ガイド付き紹介。

4、まとめ

この記事では、Python + Moviepyの5行のコードを使用して、2つのMP4ビデオファイルを順番に再生されるビデオにマージする方法を紹介し、関連する処理の主要な機能と構文を紹介します。MoviepyはMP4形式のビデオファイルを処理できるだけでなく、しかし実際には、すべてのFFmpegMoviepyはすべての形式のビデオファイルを処理できます。

ブログは簡単ではありません、サポートしてください:

この記事を読んで何かを得た場合は、いいね、コメント、ブックマークを付けてください。ご支援ありがとうございます。

記事の内容について質問がある場合は、ブログのコメント領域にメッセージを残すか、Lao Yuan PythonWeChatパブリックアカウントに従ってメッセージを送信して相談してください。

moviepyの詳細については、Pythonオーディオおよびビデオ編集ライブラリMoviePy1.0.3中国語チュートリアルガイドと実行可能ツールのダウンロード」のガイド付き紹介を参照してください

ブログは簡単ではありません、サポートしてください:

この記事を読んで何かを得た場合は、いいね、コメント、ブックマークを付けてください。ご支援ありがとうございます。

記事の内容について質問がある場合は、ブログのコメント領域にメッセージを残すか、Lao Yuan PythonWeChatパブリックアカウントに従ってメッセージを送信して相談してください。

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

  1. 有料のコラム「PyQtを使用したグラフィカルインターフェースPythonアプリケーションの開発」では、Pythonに基づくPyQtグラフィカルインターフェース開発の基本的なチュートリアルを具体的に紹介しています。対応する記事ディレクトリは「PyQtを使用してグラフィカルインターフェースPythonアプリケーションのコラムディレクトリを開発する」です。
  2. 有料コラム「moviepyオーディオとビデオの開発コラム」では、moviepyオーディオとビデオの編集と合成の関連方法と、関連する編集と合成シーンを処理するための関連方法の使用について詳しく説明しています。対応する記事ディレクトリは「moviepyオーディオとビデオの開発」です。列記事ディレクトリ";
  3. 有料のコラム「OpenCV-Python初心者のための難しい質問」は「OpenCV-Pythonグラフィックスと画像処理」のコンパニオンコラムです。これは、OpenCV-Pythonグラフィックスと画像の学習で遭遇するいくつかの問題に対する著者の個人的な認識の統合です。関連情報は基本的に古い猿による繰り返しの研究の結果であり、OpenCV-Pythonの初心者がOpenCVをより深く理解するのに役立ちます。対応する記事のディレクトリは「OpenCV-Pythonの初心者の難しい質問の列ディレクトリ」です。
  4. 有料コラム「Pythonクローラー入門」では、クローラー紹介の基礎知識や、CSDN記事情報、ブロガー情報、いいね、記事へのコメントなど、インターネットフロントエンド開発者の視点からクローラー開発の内容を紹介しています。そして他の実際のコンテンツ。

最初の2つの列は、特定のPythonの基礎はあるが、関連する知識がない初心者の読者に適しています。3番目の列は、「OpenCV-Pythonグラフィックスと画像処理ですべての人が学習して使用するためのものです

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

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

記事の内容について質問がある場合は、ブログのコメント領域にメッセージを残すか、Lao Yuan PythonWeChatパブリックアカウントに従ってメッセージを送信して相談してください。

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

☞░古い類人猿PythonBowenディレクトリへ

おすすめ

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