Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

* failed to open vchiq instance

I try to play sound from a php script to my raspberry pi 3 via the audio jack. I use in the php script the following code:

<?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);
?>

I got the file from a local ip adress and save it to the pi. Then I play the sound via the omxplayer command. On the real shell (over SSH in Putty), the Pi will output the sound without any problems. When I try the script, I got the following error message when I use the omxplayer command.

* failed to open vchiq instance

I searched then in forums for this error. They mean that it will be something with the missing permission of the file. For that I set the whole directory to the permission level 777 and the fileowner, as you can see in the script, to upload.

Unfortunately, this didn't work. Does anyone have another solution to get an output from the pi?

Thanks for every responses.

like image 687
Julian Schmuckli Avatar asked Mar 03 '17 16:03

Julian Schmuckli


2 Answers

Omxplayer is a video and audio player. Your user needs to be in the video group, even though you only want to playback audio.

Don't use the 777 mode on the /dev/vchiq because it's not secure! A better solution is to add your user to the system group called video. For example: To add user testuser in your Linux system to the video group, use this command:

usermod -aG video testuser
like image 138
Alex Avatar answered Sep 22 '22 08:09

Alex


Finally I found a solution for that problem, after I searched again. The problem was with a directory in the /dev. I hit the following command in the command line and it works great.

sudo chmod 777 /dev/vchiq
like image 27
Julian Schmuckli Avatar answered Sep 19 '22 08:09

Julian Schmuckli