![终端关闭时如何保持 FFmpeg 流运行;nohup 不起作用](https://linux22.com/image/1613768/%E7%BB%88%E7%AB%AF%E5%85%B3%E9%97%AD%E6%97%B6%E5%A6%82%E4%BD%95%E4%BF%9D%E6%8C%81%20FFmpeg%20%E6%B5%81%E8%BF%90%E8%A1%8C%EF%BC%9Bnohup%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我制作了一个鸟箱,包括一个 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 窗口,流将继续。