duc*_*ck. 5 ffmpeg video nginx video-encoding
(对问题标题表示歉意,不太确定如何措辞)
因此,我正在为本地 LAN 派对开发交钥匙流媒体解决方案/服务器,使用出色的nginx-rtmp处理来自我们主 PC 的传入 RTMP 流,并(希望)向 Twitch 和其他此类流媒体服务提供不间断的信号。
我想实现的主要目标之一是,如果我们不向其发送任何内容,则将服务器切换到本地网络摄像头(或其他流),这将完善我正在使用的零停机时间方法把目标放在。我已经研究过为此使用 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
Run Code Online (Sandbox Code Playgroud)
但是 ffmpeg 拒绝开始输出,除非它同时接收两个输入,如果丢失一个,则完全停止。
问题是我想不出任何替代方案,除了:
如果有人有任何想法,无论多么愚蠢,我都会很感激,因为我很难过!
小智 2
据我所知,您的工作流程无法在 FFmpeg 中完成。该工作流程可以在 Wowza Streaming Engine 的服务器端使用名为“循环直到直播”的模块来完成。
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
Run Code Online (Sandbox Code Playgroud)
音频和视频来自一个源,但输出到多个输出。我在博客上的一篇文章中对此进行了介绍。
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 代表的赏金。
归档时间: |
|
查看次数: |
3715 次 |
最近记录: |