Here are some thoughts on various technical parts of the project:
Inside the display panels
I would imagine a SBC like a Raspberry Pi or a Beaglebone board would do OK. Raspberry pi seems to be better at decoding video(it can decode 1080p), so I think we will opt for it, maybe with active cooling since it must run outside for long periods of time.
For the display, a standard 50" HDMI display will do, we must be able to shut it down from the SBC. It can be useful -and sometimes legally required- to shut down the display at night, and we can use a PIR/Ulstrasound sensor to only activate the screen when someone passes by.
The server should have a watchdog to reboot in case of problem. They should be able to display images if there is a connectivity problem.
When I checked modern 50" TVs, I noticed that a lot of them offer an Ethernet port and run Android with sometimes up to 2Go of RAM! It means I wouldn't have to use a Pi, but I don't trust TV manufacturers to provide good support for their Android stack, and setting up something like VPN on them might be tricky.
Sending images
We can have a dedicated ethernet webcam or we can plug a regular USB webcam on the SBC.
It will be cheaper to have an USB webcam, also it is easier to update. We will have to see if a standard consumer webcam can run for hours, they may not be designed for this and overheat a bit.
Another possibility would be to plug a DSLR to the Pi, it would allow us to focus on the person in front of the panel and to have only a blurry view of the crowd. In some countries, the law doesn't allow you to film people without their consent, so it could be useful.
On the software side FFMPEG can stream a webcam stream using UDP or RTSP, we may build a custom application based on it if needed.
Network
I think it is better to use a client-server architecture rather than a p2p one. Sending the video streams to a server will allow to process the video instead of just forwarding it.
Also it will be useful to have a VPN, it will be safer and it will also allow us to use multicast if needed.
Server
I see 2 different kind of servers:
- Video playing server
I want to use an open source solution, like Nginx for example which has a RTSP plugin, it will allow us to serve the video to the SBC requesting it.The server should also be able to play prerecorded streams if there is some connectivity problem
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.