5 POINTS TO CONSIDER
1 - I would like to know how much the total cost of the fully completed work is, so that it does not become a surprise.
2 - I will consider the work as finished when in one tab of a browser I can see and listen to the streaming from a Raspberry, while at the same time, that is, simultaneously, in another tab the streaming from another is accessed, any other option that does not achieve this, which is my objective, would be considered as unfinished.
If the objective is not met, I would ask the platform for a refund. I am only looking for a fair deal for both parties.
3 - I have a PC with Ubuntu 24 and I will provide remote access to it through the application called “nomachine”. Likewise, I will provide remote access to two Raspberrys through VNC. Using nomachine or VNC is basically indifferent, I use nomachine on Ubuntu and VNC on Raspberry for convenience. Configuration has to be done on my machines using the remote control provided for that purpose.
4 - I want practical and direct documentation on what has been achieved and how it works, because it is not just about making it work, but about being able to replicate it in the future and for that I need to understand as best as possible what was failing and how it works now and how to replicate it. Personally, when I learn something I usually create tutorials at a basic level as if designed for idiots. Both for my future self and to share them.
5 - Do you have any experience with Janus Gateway and UV4L? Could you tell me, of all the Janus Gateway configuration files, which ones need to be modified for this case? If Gstreamer were truly compatible with WebRTC and could replace UV4L with the same latencies, I wouldn't care about one solution or another, as long as it works.
TECHNICAL DETAILS
I want the webcam image and the sound from the USB microphones of at least two Raspberrys to be accessible from the Internet simultaneously.
To do this, the Raspberry software called UV4L must connect to a Janus Gateway server that is on a Ubuntu PC with Apache and a reverse proxy. I have tried to configure it, but it does not work. As I mentioned before, it would give remote access to both the PC and the Raspberrys. They will all be within the same local network.
I do not see any errors when running Janus Gateway. I access the “cd /opt/janus/bin” folder and run “./janus” with no apparent error. Janus has been compiled to support the h264 codec.
On the Apache web server I have a web page with JavaScript that serves as a client.
Within that web page I have a “play” button to start streaming video and audio.
I press the “play” button but it does not work.
I don't know why it doesn't work, as I don't get any error messages.
The last thing I did was reinstall Janus Gateway and compile it to support the h264 codec.
UV4L is able to set up a web server and through its own server it renders web, displaying a video and audio stream. Unfortunately, I can't use multiple web servers at once.
If I configure a DMZ on the router pointing to the local IP of the Raspberry and on the Raspberry I have a UV4L web server, then I can access the video and audio of a Raspberry from the Internet, but I can't assign a DMZ to each Raspberry.
UV4L uses WebRTC technology, thanks to which it has very low audio and video latencies, but WebRTC uses many and unpredictable communication ports with TCP and UDP traffic, which doesn't allow me to restrict some ports in order to be able to share the available ports between several streams.
I found a solution, but it's not very good. What I do is use multiple Internets. Most Internet companies don't allow me in Spain (my country) to have more than one Internet connection per address. What I do is install a computer on another Internet connection.
That computer doesn't have to be a PC, it can be a Raspberry or even an Orange PI. The idea is that those computers are VPN servers and their clients are my Raspberrys. You see, the idea is to race small robotic cars that use a Raspberry and that these can be controlled from the Internet.
In my botched solution, that is, the bad solution that I am using for each small car with a Raspberry I have a web server on the Raspberry itself, an Internet connection and a computer that acts as a VPN server.
I use IPTABLES to reassign the data traffic between the real card and the virtual VPN card.
The end result is that I can access my Raspberrys through a friend's or my parents' Internet connection, while the Raspberry stays next to me connected to my Wifi, but using someone else's Internet through my own Internet. This forces me to pay for several Internet and to have a computer, even if it is an Orange Pi Zero 3 that costs less than 30 euros for each car.
Being able to use Janus Gateway to manage all the video and audio streaming of all the Raspberrys in all the small cars would be a better, more elegant, cheaper (in the long run) and better performing solution.
The Raspberrys are connected to an intermediate circuit to control motors and servomotors through the GPIO port. Each one controls 4 motors and 2 servomotors. I am sold some kits to assemble the small cars, although you have to buy the Raspberry, the USB microphone and the batteries separately. The manufacturer of the Kits provides me with some classes programmed in Python to manage motors and servomotors.
I have created a Python application that leaves a communications port listening waiting to receive a JSON. In the web server that allows mounting UV4L I have incorporated a JavaScript that controls the key press event of the keyboard, when you press a key I send a JSON to a certain communications port of a certain Internet IP corresponding to a connection in which there is a Raspberry connected and I have configured a DMZ in the router pointing to the local IP of that Raspberry. In this way, when we send the JSON from JavaScript there is a Python program listening to it. Obviously I program that every time the Raspberry integrated in the stroller is turned on the Python program is loaded to leave that communications port listening.
I don't think that remote control is a problem, since I can actually do it independently and simultaneously through a single communications port, which makes things much easier. Therefore, I only want to be able to simultaneously view several video and audio streams, from two or more Raspberrys at the same time from a web page, and I understand that this must necessarily be done through integration with a Janus Gateway server.
In any case, if I could achieve the same thing through another means working under the same and only Internet connection where both the small cars with Raspberry and a PC with Ubuntu that acts as a server would be, then, it would also be worth it to me.
I am a highly skilled and experienced full stack developer with over 7 years of expertise in delivering innovative and customized solutions across various fields.
My expertise spans across a wide range of technologies and skills, including Apache, Ubuntu and Linux, which enable me to tackle complex challenges and deliver robust, scalable, and efficient solutions.
I am available to start immediately and am excited about the opportunity to contribute to your project's success.
Thank you for considering my proposal.
Best regards, Afaq Ali
€295 EUR en 6 días
4,9
(2 comentarios)
2,1
2,1
2 freelancers están ofertando un promedio de €398 EUR por este trabajo