终端关闭时如何保持 FFmpeg 流运行;nohup 不起作用

终端关闭时如何保持 FFmpeg 流运行;nohup 不起作用

我制作了一个鸟箱,包括一个 Raspberry Pi 和 Raspberry Pi 摄像头。它通过 Wi-Fi 连接到我的路由器,我希望它能将视频流式传输到我的 YouTube 频道。

项目部分raspberrypi.org建议使用以下命令行:

raspivid -o - -t 0 -w 1280 -h 720 -fps 25 -b 4000000 -g 50 | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/<key goes here>

只要我不关闭终端会话,这几乎完美。如何在不保持终端会话处于活动状态的情况下开始流式传输?

我读过相关内容,nohup <command line> &但是没有用。

答案1

断开 SSH 会话以继续流式传输raspivid上述命令会启动流式传输,但如果您通过 SSH 连接,则断开连接时流式传输将关闭。您肯定不能让您的 PC 一直运行,只是为了让 Pi 继续流式传输吧?

幸运的是,有一个答案:screen。这是您可以安装的软件,它会在您断开连接后保持 SSH 会话继续运行。

首先结束流(Ctrl+ X),然后安装屏幕:

sudo apt install screen

等待安装,然后重新启动 Raspberry Pi:

sudo reboot

通过 SSH 重新连接,登录,然后输入命令来运行屏幕:

screen

这实际上为您创建了一个单独的环境来运行 raspivid 命令,当您断开连接时,该环境仍会保留。只需按上述方式运行 raspivid,然后在您准备断开连接时按Ctrl+ A

关闭 SSH 窗口,流将继续。

相关内容