群馬県でPythonを使ったAIやシステムを開発しているファントム

Navigation
群馬県でPythonを使ったAIやシステムを開発しているファントム

群馬県でPythonを使ったAIやシステムを開発しているファントムです。企業の経営課題を最適なテクノロジーで解決します。テックブログではPythonを中心にプログラミングに役立つ情報を発信しています。

投稿を検索する


  • 株式会社ファントム コーポレートサイト

カテゴリー



  • AWS 16
  • Django 45
  • FastAPI 4
  • Flask 8
  • GCP 1
  • Information 37
  • Other 32
  • PHP 2
  • Python 93
  • Pythonista 3
  • Rust 1

タグ


Alembic API argparse Beautiful Soup black Channels charset CodeCommit datetime Django REST framework Docker enumerate f-string git GitHub glob Google Colaboratory i18n IAM Internship Jupyter Lambda Matplotlib Nginx OpenCV pandas PIL Pillow PostgreSQL PyCharm PyCon pyenv PyTorch Redis Rembg ReportLab requests S3 Sentry slack tqdm uWSGI venv Vue.js youtube
このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシーと利用規約が適用されます。

© 2022 Fantom, Inc.

Hydra WordPress Theme by EckoThemes.

Published with WordPress.

Related Articles

Filter by Category

  • Python(93)
  • Django(45)
  • Information(37)
  • Other(32)
  • AWS(16)
  • Flask(8)
  • FastAPI(4)
  • Pythonista(3)
  • PHP(2)
  • GCP(1)
  • Rust(1)

Filter by Author

  • EIGHT (14)
  • hayai017 (2)
  • press (196)
Back to Latest Articles
Python

OpenCVで動画ファイルの最終フレームを取得

OpenCVで動画ファイルの最終フレームを取得 PythonとOpenCVを使用して動画ファイルの最大フレーム数を取得する方法を解説をします。処理の確認用に取得した最大フレーム数とファイル名をソートして表示させます。 コ […]

Posted on 6th 11月 2023 by press

AWS

Amazon Route 53で新規ドメインを登録

Amazon Route 53で新規ドメインを登録 ウェブサイトやウェブサービスを運営する際にドメインは欠かせない要素です。この記事では、Amazon Route 53で新しいドメインを登録する方法について解説します。 […]

Posted on 19th 10月 2023 by press

Other

GitHub CopilotをPyCharmで使用するまでの手順

GitHub CopilotをPyCharmで使用するまでの手順 GitHub Copilotは、プログラミングの効率を飛躍的に向上させるツールで、開発者にとって非常に便利なコーディングのサポートを提供します。本記事では […]

Posted on 17th 10月 2023 by press

Python

PyCharm 2023.2から追加されたBlackによるコード成形

PyCharm 2023.2から追加されたBlackによるコード成形 Pythonのコード成形で人気のBlackがPyCharm 2023.2から環境設定画面で設定可能になりました。従来はpipなどでインストールしていま […]

Posted on 13th 9月 2023 by press

AWS

S3のライフサイクルルールの落とし穴

S3のライフサイクルルールの落とし穴 保存したデータが必要以上に増えないようにライフサイクルルールで指定した日数を経過したデータは削除する設定にしていましたが、後日改めてバケットを確認するとフォルダ、ファイルどちらも削除 […]

Posted on 10th 9月 2023 by press

AWS

S3でストレージクラスを一括で変更

S3でストレージクラスを一括で変更 デフォルトではS3のストレージクラスは「標準」になっていますが、このストレージクラスは頻繁にアクセスするデータを保存するのに適した設定なので、バックアップファイルなどの頻繁にアクセスし […]

Posted on 10th 9月 2023 by press

Django

request.FILES.get(‘file’)とrequest.FILES[‘file’] の違い

request.FILES.get(‘file’)とrequest.FILES[‘file’] の違い この記事は生成AIで作成されました request.FILES.ge […]

Posted on 21st 5月 2023 by press

Other

Twitter APIの移行作業について

Twitter APIの変更に関して 最近、Twitter APIのバージョンがアップデートされ、v1が廃止されました。これに伴い、開発者はv2への移行が必要となります。 Twitter v1の廃止 Twitter v1 […]

Posted on 6th 5月 2023 by EIGHT

AWS

AWS Rekognitionとは

AWS Rekognitionとは AWS Rekognitionは、画像と動画から情報を抽出するディープラーニング技術を利用した分析サービスです。このサービスは、顔認識、物体検出、シーン分析など、さまざまな分析機能を提 […]

Posted on 5th 5月 2023 by EIGHT

Other

コメント,タイプヒント, ドックストリングの追記とGitHubでのコンフリクト

タイプヒント, コメント, ドックストリングの追記とGitHubでのコンフリクト コメントの記述方法と注意点 タイプヒントの記述方法と注意点 ドックストリングの記述方法と注意点 GitHubのコンフリクト発生時の対処法に […]

Posted on 18th 4月 2023 by hayai017

Other

VSCodeとGitでのコード管理

VSCodeとGitでのコード管理 行ったこと アクセストークンの取得リポジトリのクローン リポジトリのクローン ブランチの作成 ファイルのコミット 同期 ターミナルでのgitbashの利用(windows) 作業用のブ […]

Posted on 18th 4月 2023 by hayai017

Other

vue createで作成する際に.gitが生成されないようにする

vue createで作成する際に.gitが生成されないようにする Vue.jとDjangoのプロジェクトをGitで管理しようとしたところ、vue createで生成したディレクトリだけが追加されていないことがわかりまし […]

Posted on 3rd 4月 2023 by press

Django

Vue.jsとDjango REST Frameworkで画面が真っ白になる原因〜2〜

Vue.jsとDjango REST Frameworkで画面が真っ白になる原因〜2〜 Django REST Frameworkと組み合わせたVue.jsで、ビルド後にバックエンドの開発サーバー(8000ポートなど)で […]

Posted on 3rd 4月 2023 by press

Django

Vue.jsとDjango REST Frameworkで画面が真っ白になる原因〜1〜

Vue.jsとDjango REST Frameworkで画面が真っ白になる原因〜1〜 画面が真っ白になる原因 Vue.jsとDjangoの組み合わせで開発中にnpm run serveで起動した開発サーバーでページを確 […]

Posted on 3rd 4月 2023 by press

Django

Vue.jsとDjango REST FrameworkでSPA構築〜後半〜

Vue.jsとDjango REST FrameworkでSPA構築〜後半〜 前半に続き、後半はフロントエンド側(Vue.js)の実装を進めていきます。 コードはGitHubリポジトリにあげています。 開発環境 PC: […]

Posted on 2nd 4月 2023 by press

Django

Vue.jsとDjango REST FrameworkでSPA構築〜前半〜

Vue.jsとDjango REST FrameworkでSPA構築〜前半〜 Vue.jsとFlaskの連携に続き、今回はVue.jsとDjango(Django REST Framework)の連携を解説します。チュー […]

Posted on 2nd 4月 2023 by press

Other

.gitignoreには書かずに自分の環境だけファイルを管理から外す

.gitignoreには書かずに自分の環境だけファイルを管理から外す Gitでは管理から外すファイルを指定するには、.gitignoreファイルを使用します。これは、Gitが無視するべきファイルやディレクトリのリストを書 […]

Posted on 1st 4月 2023 by press

Flask

Flaskで開発サーバーを起動する時のTips

Flaskで開発サーバーを起動する時のTips Flaskで開発中にflask runコマンドでサーバーを起動した際に以下の表示が出る場合があります。この表示は.envもしくは.flaskenvがあってもpython-d […]

Posted on 1st 3月 2023 by press

Python

PyCharmで.envから環境変数を読み込む

PyCharmで.envから環境変数を読み込む 環境変数を.envに書いて読み込ませる理由 Pythonの開発では、セキュリティや環境毎の設定、柔軟性などの理由から.envファイルに環境変数を書いて読み込ませる方法が推奨 […]

Posted on 1st 3月 2023 by press

Rust

PythonからRustへ!スクレイピングツール開発で感じた驚きと苦労

他人の作ったライブラリを効率的に扱うことができました。入力や出力の型が決まっているので定義ジャンプすればそれがどんな型なのか、どんな関数が用意されてるのか見ることができます。ソースコードも非常に読みやすいです。 trai […]

Posted on 28th 2月 2023 by EIGHT

View Latest Posts
Python

OpenCVで動画ファイルの最終フレームを取得


press
OpenCVで動画ファイルの最終フレームを取得
Posted on 6th 11月 2023 by press
2024年度 インターンシップ 募集開始

OpenCVで動画ファイルの最終フレームを取得

PythonとOpenCVを使用して動画ファイルの最大フレーム数を取得する方法を解説をします。処理の確認用に取得した最大フレーム数とファイル名をソートして表示させます。

コードはGitHubリポジトリにあげています。

開発環境

PC: MacBook Pro (14, 2021)
OS: macOS Monterey 12.0.1
Python: 3.9.1
opencv-python: 4.8.0.76

import cv2
import os


def get_max_frame_count(video_file):
    cap = cv2.VideoCapture(video_file)
    if not cap.isOpened():
        print(f"Error opening video file: {video_file}")
        return 0

    frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
    cap.release()
    return frame_count


def main(directory_path):
    video_info_list = []

    for filename in os.listdir(directory_path):
        if filename.endswith(".mp4"):
            video_file = os.path.join(directory_path, filename)
            max_frame_count = get_max_frame_count(video_file)
            video_info_list.append(
                {"filename": filename, "max_frame_count": max_frame_count}
            )

    sorted_video_info = sorted(video_info_list, key=lambda x: x["filename"])

    for video_info in sorted_video_info:
        filename = video_info["filename"]
        max_frame_count = video_info["max_frame_count"]
        print(f"{filename}, Max Frame Count: {max_frame_count}")


if __name__ == "__main__":
    video_directory = "video"
    main(video_directory)

結果

600.mp4, Max Frame Count: 17983
1200.mp4, Max Frame Count: 17989
1800.mp4, Max Frame Count: 17983
2400.mp4, Max Frame Count: 11805

解説

動画の最終フレームを取得する関数

def get_max_frame_count(video_file)

cap = cv2.VideoCapture(video_file)
動画ファイルを開く

if not cap.isOpened():
動画ファイルが正常に開けなかった場合はエラーを表示

frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
最大フレーム数を取得

cap.release()
動画ファイルを閉じる

ディレクトリ内の動画ファイルから最大フレームを取得

def main(directory_path)

video_info_list = []
動画ファイルを格納する空リスト用を生成

for filename in os.listdir(directory_path):
ディレクトリからファイルをリストアップして1っ件づつ処理

if filename.endswith(".mp4"):
ファイル名が.mp4で終わる場合のみ処理

max_frame_count = get_max_frame_count(video_file)
先述の関数で最大フレーム数を取得

video_info_list.append({"filename": filename, "max_frame_count": max_frame_count})
ファイル名と最大フレーム数の辞書をリストに追加

sorted_video_info = sorted(video_info_list, key=lambda x: x["filename"])
リストをファイル名でソート

for video_info in sorted_video_info:
ファイル名と最大フレーム数を一件づつ表示

ファントムYouTubeチャンネル

株式会社ファントムへのお問い合わせ

群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




    press
    • OpenCV
    • Share Article:
    • Twitter
    • Facebook
    • Pinterest
    • LinkedIn
    • Reddit

    Related Articles

    Python

    Pythonでディレクトリ内のファイルを取得する

    globモジュールを使いディレクトリ内にあるファイルを取得する方法です。 ディレクトリ構造 まずはディレクトリ内のjpgを全て取得します。 directory = (os.getcwd())で現在のディレクトリのパスを取 […]

    Posted on 26th 4月 2019 by press
    AWS

    AWSのCloud9を使ってPythonのプログラミング研修を開催

    AWSのCloud9を使ってPythonのプログラミング研修を開催 2022年11月から2023年2月までの期間で、群馬県庁職員を対象にしたDXを促進するためのPythonによるプログラミング研修を開催しました。現在、群 […]

    Posted on 4th 2月 2023 by press