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.
Hello,
I have 10 years of experience in network and server configuration, including Apache and Janus Gateway.
I propose to configure Apache as a reverse proxy to support streaming from your Raspberry devices using UV4L and Janus Gateway.
I will ensure simultaneous access to multiple streams through a single web interface.
I will provide clear documentation for replication and future use.
Let's collaborate to ensure all technical requirements are fully addressed.
Regards,
VishnuLal NB
With my extensive 8-year background in Linux system administration and expertise across various platforms like Ubuntu, I can offer you the knowledge and skills needed to implement your desired solution. My familiarity with Apache, URL reverse- proxying, and handling multimedia streaming on Linux would be particularly useful for configuring your Janus Gateway and UV4L effectively
I have extensive experience working on similar projects involving live streaming and server configurations.
1. Technical Approach:
- Set up Janus Gateway on the Ubuntu PC with Apache and reverse proxy configurations.
- Connect UV4L on Raspberry Pi to Janus Gateway for streaming video and audio.
- Configure remote access via nomachine for Ubuntu PC and VNC for Raspberrys.
- Implement necessary modifications to ensure simultaneous streaming from multiple Raspberrys.
2. Technologies & Tools:
- Janus Gateway, UV4L, Apache, Ubuntu, Raspberry Pi, WebRTC, JavaScript, Python.
3. Testing & Integration Plan:
- Conduct thorough testing to ensure seamless streaming on multiple tabs.
- Integrate documentation outlining the setup, configurations, and troubleshooting steps.
4. Performance & Scalability:
- Optimize configurations for low latency streaming.
- Implement scalable solutions to accommodate future expansion or additional Raspberrys.
5. Proposal Oversight:
- The total cost for the project will be calculated based on the scope of work and deliverables.
- Deliverables include a fully functional setup with detailed documentation for replication.
Working on this project will involve meticulous planning, precise configurations, and comprehensive testing to meet your streaming requirements seamlessly.
Greetings! I'm Adel, an experienced Python developer with expertise in multimedia streaming and WebRTC technologies. I'm excited about your project and confident in delivering a robust solution that meets your requirements.
With my in-depth knowledge of Janus Gateway, UV4L, and GStreamer, I can seamlessly integrate these components to enable simultaneous streaming from multiple Raspberry Pis. I'll optimize the configuration files and leverage the power of WebRTC for low-latency audio/video transmission.
I understand the importance of clear documentation and will provide detailed tutorials on the implemented solution, ensuring you can replicate and maintain it effortlessly. My goal is not just to make it work but to empower you with a deep understanding of the system.
Before diving into the implementation, I'd like to clarify a few points to ensure a successful outcome:
1. Could you provide more details on the specific codecs and resolutions required for the video streams?
2. Are there any specific performance requirements or constraints we should consider?
3. Would you prefer a web-based interface or a dedicated application for accessing the streams?
With your feedback and my expertise, I
Hello, Greetings of the day (Expert in Linux/AWS/IBM/AZURE/Digital Ocean/cloudflare)
We are Rococo (Mumbai, India) a leading next generation software development and service company and we are experts in Cloud services/ System admin/Linux/ AWS/Digital Ocean services/WHM/CPANEL/Azure/AWS SES Services etc. Please come on chat and give us one chance to serve our services .
Thanks & Regards,
Pramod M.
Un gusto hablarte y conocerte gladiadordecielo, Después de leer en detalle los requisitos de su proyecto y concluir que coinciden con mis áreas de conocimiento y habilidades, me gustaría presentarme.
Mi nombre es Anthony Muñoz y soy el ingeniero principal de la agencia de TI DS Pro. He trabajado durante más de 10 años en Backend y desarrollo de software y he realizado con éxito múltiples trabajos. Será un placer trabajar juntos para hacer realidad tu proyecto.
Por favor no dude en ponerse en contacto conmigo. Estoy deseando trabajar con usted. Realmente aprecio su tiempo y quedo atento a cualquier solicitud o pregunta.
Saludos
Buenos días, soy Adrián. Somos una empresa de desarrollo de software de Castellón. Nos gustaría concretar más detalles acerca del proyecto. ¿Podríamos concertar una reunión y comentar con más detalle? Un saludo Tenemos amplia experiencia demostrable en proyectos similares.