受大卫·亨特(David Hunt)的博客文章的启发,该文章展示了如何将带有树莓派相机的Raspberry Pi Zero用作USB网络摄像头,以及justinschuldt的要旨,我希望让Raspberry Pi做同样的事情,但要自动化,并且将所有脚本打包在一起版本控制,因为博客文章在某些方面有些含糊。
该Ansible剧本可在任何Raspberry Pi上运行,并将其设置为USB OTG网络摄像头。
它可以在Mac,Windows以及到目前为止我测试过的所有Linux版本上运行。它甚至可以在另一个Raspberry Pi上运行(我已经在Pi 4和Pi 400上对其进行了测试)。
我在2020年11月发布了一个视频,详细介绍了如何使用此项目设置Pi网络摄像头。单击下面的缩略图以查看它:
该剧本旨在在Raspbian的全新安装上运行,该安装没有通过raspi-config或任何其他工具进行任何配置更改,尽管它可以与现有安装正常运行。
注意:这会修改您的启动配置,因此,您不应该在MicroSD或其他启动卷上运行此剧本,您还没有准备好重新格式化和刷新!
无论您是先设置软件还是硬件都没有关系,只需要同时安装这两个功能就可以使用网络摄像头。
您可以购买许多不同的组件来代替这些组件,但这是我在“官方”版本中使用的组件的列表,这些组件经过了充分测试,并且在Mac和Windows笔记本电脑上经常使用:
在YouTube上查看我的视频,以获取详细的组装和设置指南:Raspberry Pi Zero是一款PRO HQ网络摄像头,价格不到100美元!
HQ相机包括一个凹型三脚架插槽,因此任何三脚架或安装臂都可以使用。我根据目的使用了多种安装座,例如:
SmallRig球头钳安装座:将凸轮安装在显示器上方的显示器臂上
Joby GorillaPod 5K支架和球头:坚如磐石,高一点,但这绝对过高
25英寸灵活的鹅颈式网络摄像头台式安装架:可以通过这种方式以任何方式安装摄像头,特别适合自顶向下拍摄
您可以通过两种方式运行此自动设置。您可以在Raspberry Pi本身上运行所有内容(例如,如果您插入键盘,鼠标和显示器),也可以从另一台计算机上运行它。
专家提示:如果您想为网络摄像头使用Pi Zero,并且不想等待半小时才能运行所有这些自动化操作,则可以将闪存的microSD卡放入更新的Pi(例如Pi 4)中并在那里完成所有工作,然后将其拉出并将其弹出到Pi Zero中。
将Raspbian加载到卡上后,将卡插入您的Pi中,然后插入您的Pi即可启动它。
遵循设置向导,如果您希望以后能够轻松登录到Pi,请连接到WiFi网络,然后运行raspi-config工具并启用SSH。
Raspberry Pi应该要求重新启动。继续并立即重新启动,并等待其重新启动。
安装Ansible:sudo apt更新&& sudo apt install -y python3-dev python3-pip libyaml-dev libffi-dev && sudo pip3 install --no-binary pyyaml ansible(警告:这可能需要一段时间,特别是在速度较慢的Pis上!) 。
将最新的Raspberry Pi OS的microSD卡刷新。确保已将ssh文件添加到启动卷中,以便在首次启动时启用SSH。
将Raspbian加载到卡上之后,并且启动卷中包含ssh文件,将卡插入Pi中,然后插入Pi中以进行启动。
确保您可以通过SSH登录到Pi。理想情况下,使用ssh-copy-id将SSH密钥添加到Pi。如果不这样做,请确保稍后将-k参数添加到ansible-playbook命令,以便您可以输入SSH密码。
更新清单中的IP地址以使其与Raspberry Pi的IP地址或主机名匹配。
您可以在此时关闭Pi(通过SSH登录,然后立即sudo关闭)。
您可以早些完成此操作,但如果尚未完成,请使用适当的相机连接器将相机模块插入Raspberry Pi。
此时,应该(假设一切正常)将其设置为USB网络摄像头。
您所需要做的就是抓住USB电缆并将Pi插入计算机上的任何USB端口。但是您要在Pi上插入哪个端口?好吧,我这里有一张方便的小桌子:
插入后,您需要等待30秒钟左右,然后才能启动Pi并准备就绪,然后可以打开任何视频录制/会议软件,进入摄像机选择,然后单击BOOM!选择“ PI4 USB设备”。
如果需要,并且仍启用WiFi,或者Pi已连接到网络,则可以通过SSH登录到该网络,然后立即运行sudo shutdown干净地关闭电源。
但是我喜欢生活在边缘……这不像是向microSD卡写入大量数据。将其用作网络摄像头后,只需拔下它的电源即可。就那么简单。
如果由于某种奇怪的原因而最终损坏了,我可以重新运行该自动化程序以重新设置它。没什么大不了的!我还没有发生过。
嗯...大多数已知问题与该项目所依赖的其他项目有关:
如果您未使用Mac,则可能需要调整uvc-gadget.c文件中的亮度设置,然后手动重新编译。我正在寻找一种更好的方法来对其进行配置。
提供uvc-gadget应用程序的上游存储库当前默认为720p分辨率,这对于大多数用例而言非常有用。尽管Pi Zero和较旧的Pis可能会以该分辨率丢帧,但您可以以1080p进行流式传输。遵循此问题可以使解决方案更容易配置。
当您尝试使用USB OTG并出于某种原因启用网络摄像头时,Pi 4 B型目前会锁定。您可以运行2020-02-07 Raspbian版本来暂时解决此错误。请遵循此问题以解决此错误的进度。
这些东西有点复杂,因此将来的Raspberry Pi OS和内核更新可能会引起问题。我不会在控制呼吸机或类似功能的Raspberry Pi上运行此程序。
Yadda,Yadda的标准说法是“如果出现问题不要怪我”。到目前为止,在对Pi进行测试时,我对Pi所做的最糟糕的事情是意外断开了相机电缆的锁定连接器。哎呀。