1

我正在修补我的两个 Raspberry Pi,并希望执行以下操作:

两个 Pis 通过摄像头记录并通过 cvlc 将其流式传输到网络。然后其中一个使用两个流生成一个流,每 30 秒在两个源之间交替。我的设置如下:

Pi 3 (192.168.0.158) 和 Pi 4 (192.168.0.87) 都使用以下命令将摄像机源流式传输到我的本地网络:

raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000 | cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264

然后 Pi 4 使用

ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -f concat -safe 0 -i stream_list.txt -c copy output.mp4

stream_list.txt 的内容为:

file http:\/\/192.168.0.87:8090
duration 00:00:02.00
file http:\/\/192.168.0.158:8090
duration 00:00:02.00

我使用 output.mp4 作为测试,这将是一个 twitch 服务器或类似的东西。当前持续时间为 2 秒,仅用于测试。我将添加一个循环 -1 来保持切换。我的问题是该过程在 4 秒后没有停止。它会一直“录制”直到我 CTRL+C 然后 output.mp4 只包含 stream_list.txt 中第一个提到的流的摄像头馈送。它不会在 2 秒后停止切换到另一个流,然后再过 2 秒后停止,正如我预期的那样。

有什么我本质上做错了,或者我至少在某种程度上是正确的吗?

4

0 回答 0