OpenCVで複数の動画を連結する
OpenCVで複数の動画を連結する 複数の動画素材を結合したり、GoProで長時間撮影した時に約4GB毎に分割される動画ファイルを結合して一つの動画を書き出す方法です。 コードはGitHubリポジトリにあげています。 開 […]
Filter by Category
OpenCVで複数の動画を連結する 複数の動画素材を結合したり、GoProで長時間撮影した時に約4GB毎に分割される動画ファイルを結合して一つの動画を書き出す方法です。 コードはGitHubリポジトリにあげています。 開 […]
名前に現在時刻を入れたファイルが連番かどうか判定(後半) 前回からの続きです。 前回は連番になっていたらまとめてリスト化しましたが、今回はまとめたファイルを動画に変換して書き出します。 コードはGitHubリポジトリにあ […]
名前に現在時刻を入れたファイルが連番かどうか判定(前半) なにかアクションがあった際に生成されるファイル名に現在時刻が入ったファイルが、連番になっているかどうかを判別して連番になっていたらまとめてリスト化する方法です。手 […]
フォルダ内のファイルを複数毎にzip形式に圧縮 ファイルをまとめてzip形式に圧縮してしまうと容量が増えてしまうので、メールなどで送るために複数個に分けて圧縮ファイルを作りたいときがあります。ファイル数がそれほど多くない […]
複数の動画素材を結合したり、GoProで長時間撮影した時に約4GB毎に分割される動画ファイルを結合して一つの動画を書き出す方法です。
コードはGitHubリポジトリにあげています。
開発環境
$ python -V
Python 3.9.0
$ tree
├── combine.py
├── combine_output.mp4
└── media
├── cat_001.mp4
├── cat_002.mp4
└── cat_003.mp4
combine.py
import cv2
import glob
def combine_movie():
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
files = sorted(glob.glob('media/*.mp4'))
movie = cv2.VideoCapture(files[0])
fps = movie.get(cv2.CAP_PROP_FPS)
height = movie.get(cv2.CAP_PROP_FRAME_HEIGHT)
width = movie.get(cv2.CAP_PROP_FRAME_WIDTH)
output = cv2.VideoWriter('combine_output.mp4', int(fourcc), fps, (int(width), int(height)))
frame = None
for i in files:
movie = cv2.VideoCapture(i)
if movie.isOpened():
ret, frame = movie.read()
else:
ret = False
while ret:
output.write(frame)
ret, frame = movie.read()
if __name__ == '__main__':
combine_movie()
import cv2
import glob
モジュールのインストール
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
動画のコーデックを指定
files = sorted(glob.glob('media/*.mp4'))
mediaフォルダの拡張子がmp4のファイルを全て指定してfilesに格納
movie = cv2.VideoCapture(files[0])
fps = movie.get(cv2.CAP_PROP_FPS)
height = movie.get(cv2.CAP_PROP_FRAME_HEIGHT)
width = movie.get(cv2.CAP_PROP_FRAME_WIDTH)
フォルダから一つ動画を読み込みプロパティ(属性)を取得
output = cv2.VideoWriter('combine_output.mp4', int(fourcc), fps, (int(width), int(height)))
出力する動画ファイルの情報を
for i in files:
filesに格納された動画ファイルを1ファイルづつ繰り返し追加
api argparse Beautiful Soup black calender Channels charset ChromeDriver datetime Docker enumerate f-string File Watcher flake8 gettext GitHub glob Google Colaboratory GPU Gunicorn i18n Jupyter Matplotlib Nginx OpenCV pandas Pillow pip Pipenv PostgreSQL psycopg2 PyCharm PyCon pyenv PyTorch random Redis ReportLab requests Selenium slack timedelta Ubuntu uWSGI venv
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。
メーリングリストに登録すると株式会社ファントムの最新情報をお届けします
お客様のメールアドレスを共有することはありません
Comments