从树莓派录制视频并保存到外部硬盘
我有一个树莓派B型号,还有一个树莓派摄像头模块。
我还拥有一个3TB的外部硬盘或者一个苹果的时间胶囊。
我想要的是能够远程录制视频(通过SSH发命令),然后希望它可以无限制地录制,直到我发出停止录制的命令。我希望视频能够直接流式传输并保存到时间胶囊上,如果可以的话。
简单来说,我想要的步骤是:
- 我插上树莓派,然后通过SSH连接到它。
- 告诉树莓派以1080p和30帧每秒开始录制视频。
- 在录制视频的同时,视频直接保存到时间胶囊上。
- 在我的Mac上有一个实时预览,这样我可以看到录制时是否需要调整什么。
- 发出停止命令来结束录制。
存储空间对我来说不是问题。
这是我可以使用的设备:
- 树莓派B型号
- 8GB的SD卡
- 类似这个的东西(我不确定是不是完全一样) http://www.amazon.co.uk/Time-Capsule-500GB-Hard-Drive/dp/B00132B0MG
- 一个网络卡:Edimax EW-7811UN 150Mbps无线纳米USB适配器
- Mac或PC
这是我第一次真正提问,我一直在寻找答案,所以如果我做错了什么或者没有提供足够的细节,请多多包涵。
1 个回答
2
树莓派论坛上有一些关于如何实现这个功能的信息(注意,这里所有的例子都是在树莓派上运行的,前提是软件安装正确等)。
你可以用以下命令来进行视频直播,并在你的Mac上使用一个脚本来获取和保存数据。
raspivid -t -0 -w 1280 -h 720 -fps 25 -b 2000000 -o - | ffmpeg -i - -vcodec copy -an -f flv -metadata streamName=myStream tcp://0.0.0.0:6666
如果你研究一下“tee”这个命令,就能让摄像头同时把数据传输到一个文件和直播流中。这个问题中有个答案解释了tee的用法:
echo "foo bar" | sudo tee -a /path/to/some/file
所以,把这两个结合起来,可能会对你有用:
raspivid -t -0 -w 1280 -h 720 -fps 25 -b 2000000 -o - |tee -a /home/pi/my_big_hard_drive/my_video.h264 | ffmpeg -i - -vcodec copy -an -f flv -metadata streamName=myStream tcp://0.0.0.0:6666
现在,你把这一行放到一个脚本里,这样你就可以远程启动它,像这样(如果你先把ssh密钥传过去,就更简单了,这样你就不需要输入密码):
ssh -f pi@my_pi:/home/pi/bin/my_awesome_streamer.sh
然后可以用另一个脚本来在需要的时候终止raspivid,像这样简单的命令:
sudo killall -QUIT raspivid
应该可以结束这个程序。
如果你想直接在Mac上玩这个直播流,你可以查阅ssh的手册,找到一些复杂的标志组合,这样你就可以通过ssh连接直接将数据流传输到Mac上。