【问题标题】:* failed to open vchiq instance* 未能打开 vchiq 实例
【发布时间】:2023-04-05 10:30:01
【问题描述】:

我尝试通过音频插孔将声音从 php 脚本播放到我的树莓派 3。我在 php 脚本中使用了以下代码:

<?php
$fetch = 'wget "http://192.168.1.127/sound.mp3" -O sound.mp3 --no-check-certificate';
$play = 'omxplayer -o local sound.mp3';
echo shell_exec($fetch);
echo shell_exec("sudo chown upload sound.mp3");
echo shell_exec($play);
?>

我从本地 IP 地址获取文件并将其保存到 pi。然后我通过omxplayer 命令播放声音。在真正的 shell 上(通过 Putty 中的 SSH),Pi 将毫无问题地输出声音。当我尝试脚本时,我在使用 omxplayer command 时收到以下错误消息。

* failed to open vchiq instance

然后我在论坛中搜索了此错误。他们的意思是这将是缺少文件权限的东西。为此,我将整个目录设置为权限级别 777,并将文件所有者(如您在脚本中看到的)设置为 upload

很遗憾,这不起作用。有没有人有另一种解决方案来从 pi 中获取输出?

感谢您的每一个回复。

【问题讨论】:

    标签: php shell audio raspberry-pi


    【解决方案1】:

    Omxplayer 是一个视频和音频播放器。您的用户需要在 video 组中,即使您只想播放音频。

    不要在/dev/vchiq 上使用777 模式,因为它不安全!更好的解决方案是将您的用户添加到名为video 的系统组中。例如: 要将 Linux 系统中的用户 testuser 添加到 video 组,请使用以下命令:

    usermod -aG video testuser
    

    【讨论】:

    • 这应该是 usermod -aG video testuser 否则 testuser 将被从其他组中删除
    【解决方案2】:

    在我再次搜索之后,我终于找到了解决该问题的方法。问题在于/dev 中的目录。我在命令行中点击了以下命令,效果很好。

    sudo chmod 777 /dev/vchiq
    

    【讨论】:

    • 非常感谢它为我节省了很多
    • 与其在系统范围内进行更改,不如针对特定用户进行更改。 sudo usermod -a -G 视频用户名。这个答案可以在这个地方找到,比如这里:raspberrypi.stackexchange.com/questions/19436/…
    • /dev/vchiq 的“777”模式是安全漏洞!特别是在使用摄像机时使用它很重要。使用“视频”组代替适当的用户。
    • 不要这样做,它允许任何系统用户对设备进行写访问,如上调整个人用户设置
    【解决方案3】:

    实际上很多用户都被带到了这个问题,因为他们尝试了raspistill并返回了这个错误。

    无论如何,错误通常是因为您忘记添加sudo,所以sudo raspistill -o output.jpg 应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      • 2023-03-27
      • 2015-09-07
      • 2010-10-10
      • 1970-01-01
      相关资源
      最近更新 更多