入力ストリームと出力ストリームを設定する

入力ストリームと出力ストリームを設定する

ffmpeg+pyhton または他のソリューションと組み合わせてこの問題を解決することは可能ですか。サーバーソリューションが必要なので、Vmix、obs などは適していません。(例: 2 つ (および/またはそれ以上) のストリームがあります

rtmp://host/live/input_stream_1
rtmp://host address/live/input_stream_2
 ect

ストリームの「ルーティング」を整理することは可能ですか(優先ライブビデオストリームを選択し、ロジックに従ってレイヤーを適用します)。

デフォルトでローカルですinput_stream_1が、ネットワーク フォルダーのビデオは ffmpeg 経由でパックされ、rtmp://host address/live/output_stream_1A(オーバーレイ レイヤーなどのロゴ) に送信されます。

着信ストリームが現れたときに、 の内容を の内容にinput_stream_2置き換えて送信し、 が停止したときに を返す必要がありますか?input_stream_1input_stream_2input_stream_2input_stream_1

おそらく、ffmpeg(このスレッドそしてこのスレッド) そしてPython ソリューション

レイヤーのロジックは次のようになります。写真

答え1

import subprocess

入力ストリームと出力ストリームを設定する

input_stream_1 = "rtmp://host/live/input_stream_1" input_stream_2 = "rtmp://host/live/input_stream_2" output_stream = "rtmp://host/live/output_stream"

デフォルトの入力ストリームを設定する

現在の入力ストリーム = 入力ストリーム1

ストリームに適用するオーバーレイレイヤーを設定する

overlay_layers = "-i logo.png -filter_complex オーバーレイ"

whileループを使用してストリームを継続的に読み取り、ルーティングします。

while True: # FFmpeg を使用して現在の入力ストリームを読み取り、出力ストリームを書き込みます ffmpeg_command = f"ffmpeg -i {current_input_stream} {overlay_layers} -c copy {output_stream}" subprocess.run(ffmpeg_command, shell=True)

# Check for incoming streams and switch to them if necessary
if incoming_stream_2_is_active():
    current_input_stream = input_stream_2
else:
    current_input_stream = input_stream_1

関連情報