flask+opencv: リアルタイム ライブ ビデオ ストリーミング プラットフォームのデモ

はじめに: ストリーミングとは、パッケージ化されたコンテンツを収集段階でサーバーに送信するプロセスを指します。実際、これはライブビデオ信号をネットワークに送信するプロセスです。オンライン調査、対話とインタビュー、オンライントレーニング、その他のコンテンツは、現場のインターネット上に掲載されます。直感、スピード、形式の良さ、豊富なコンテンツ、強力な双方向性、制限のない地域、分割可能な視聴者などのインターネットの特性を活用し、イベント会場のプロモーション効果を強化します。ライブ ブロードキャストの終了後、読者はいつでもリプレイやオンデマンド ブロードキャストを提供し続けることができるため、ライブ ブロードキャストの時間と空間が効果的に拡張され、ライブ ブロードキャスト コンテンツの価値が最大化されます。

歴史襲撃者:

sanic: API インターフェースを介してコンピューターのスクリーンショットまたはビデオを撮影します。

Python+ADB スクリーンショット、画面記録、ログキャプチャ

依存ライブラリをインストールします。

pip install flask opencv-python

手順:

1. 新しいファイルを作成します:app.py

# -*- coding: utf-8 -*-
# time: 2023/4/26 10:28
# file: app.py
# 公众号: 玩转测试开发
from flask import Flask, render_template, Response
import cv2

app = Flask(__name__)

camera = cv2.VideoCapture(0) # 使用默认摄像头

def gen_frames():
    while True:
        success, frame = camera.read()
        if not success:
            break
        else:
            ret, buffer = cv2.imencode('.jpg', frame)
            frame = buffer.tobytes()
            yield (b'--frame\r\n'
                   b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')

@app.route('/video_feed')
def video_feed():
    return Response(gen_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')

@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

2. 新しいディレクトリ: templatesを作成します。

3. 新しいファイルindex.htmlをテンプレートに作成します。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>实时视频推流</title>
</head>
<body>
    <h1>实时视频推流</h1>
    <img src="{
    
    { url_for('video_feed') }}" alt="实时视频">
</body>
</html>

4. 次のコマンドを実行して Flask サーバーを起動します。

python app.py

ブラウザで http://127.0.0.1:5000/ を開くと、リアルタイムのビデオ ストリームが表示されます。

写真

リアルタイム ビデオ ストリームを表示するには、プレーヤーを使用することをお勧めします。オープン ソースの HTML5 ビデオ プレーヤーである video.js を使用するか、CDN を使用できます。

注: この例は、ローカル開発環境でのみ機能します。実稼働環境にデプロイする場合は、ニーズに合わせて設定を調整してください。

写真

おすすめ

転載: blog.csdn.net/hzblucky1314/article/details/130396361