设置输入和输出流

设置输入和输出流

是否可以使用 ffmpeg+pyhton 或结合其他解决方案来解决这个问题。我需要一个服务器解决方案,因此 Vmix、obs 等不适合。(例如:我有两个(和/或更多)流

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(+ 覆盖层 -ect 徽标)。

当出现传入流时,有必要将input_stream_2的内容替换为 的input_stream_1内容input_stream_2并发送,当input_stream_2停止时,是否返回input_stream_1

也许它将是 ffmpeg 的组合(如建议的那样此主题以及此主题) 和python 解决方案

各层的逻辑可能是这样的:PIC

答案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 overlay”

使用 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

相关内容