(对问题标题表示歉意,不太清楚该怎么说)
因此,我正在为本地局域网聚会开发一个交钥匙流解决方案/服务器,使用奇妙的nginx-rtmp处理来自我们的主PC的传入的RTMP流,并(希望)不间断地向to和其他类似的流服务发送一个信号。
我想要实现的主要目标之一是,如果我们不发送任何内容的话,让服务器切换到一个本地摄像头(或另一个流),这将完善我所瞄准的零停机方法。我已经研究了如何使用ffmpeg来实现这一点,并在以下方面进行了论证:
ffmpeg -i "rtmp://127.0.0.1/in/stream" -i "rtmp://127.0.0.1/webcam/stream" -vcodec copy -acodec copy rtmp://127.0.0.1/out/stream但是ffmpeg拒绝开始输出,除非它同时接收到两种输入,如果失去了输入,它就会完全停止。
问题是,我想不出任何替代办法,只有:
如果有人有任何想法,不管有多傻,我都会很感激的,因为我很困惑!
发布于 2017-04-12 17:14:06
据我所知,您的工作流不能在FFmpeg中完成。该工作流可以在Wowza流引擎上使用称为循环直到Live的模块在服务器端完成。
https://www.wowza.com/docs/how-to-loop-a-pre-roll-until-a-live-stream-starts-loopuntillive
基本逻辑。
我还没有在FFmpeg中找到这种逻辑。
请注意,当从一个流切换到另一个流时,理想的情况是所有流都是相同的。
视频:编解码器,宽度,高度,FPS,关键帧距离(GOP)和比特率。音频:编解码器、频道、频率和比特率。
FFmpeg是一个顺序相关的过滤器链,它接受输入,修改它,然后产生输出。您可以输入图像或视频,并输出图像或视频。音频是类似的,因为您可以在其中放置一个编解码器,修改它,并以您选择的音频格式将其转储出去。
您可以有多个输入和多个输出。在多个输入的情况下,这些输入可以被屏蔽到单个输出流中。
音频和视频来自不同的来源,以创建一个输出。
ffmpeg -i video.input -i audio.input -[modifications] -output音频和视频来自一个来源,但要到多个输出。我在博客上的一篇文章中提到了这一点。
https://videoblerg.wordpress.com/2016/08/16/how-to-create-abr-content-with-ffmpeg-in-one-pass/
FFmpeg在设计上很简单,我在代码中没有发现任何可以支持您的工作流的东西。但这并不意味着我没有错过。
我知道这不是您想要的答案,但是您可以向FFmpeg添加代码以支持此功能,或者创建一个工具在FFmpeg之外执行此功能。创建的任何代码都应该是中立的,支持RTSP、RTMP、MPEG-TS、RTP/SDP、HLS和循环文件。因为这不能解决你的问题,我没有期望得到你的赏金+50代表。
https://unix.stackexchange.com/questions/115806
复制相似问题