Nodejs service om overlay.png te maken
- Installeer nodejs op de pi
- cd in deze directory en doe
npm install
- start het script met
npm start
- dit runt in de CLI
ffmpeg commands
Capture Local:
ffplay udp://127.0.0.1:1234
Stream with overlay:
ffmpeg -f avfoundation -framerate 30 -i "1" -f image2 -re -stream_loop -1 -i output/overlay.png -filter_complex overlay -preset ultrafast -vcodec libx264 -tune zerolatency -b 900k -f mpegts udp://127.0.0.1:1234
UDP input data
Wanneer de service runt, dan kun je sensor / input data via UDP sturen om te gebruiken in de overlay. Onderstaand Python script toont hier een voorbeeldje van. Let op dat de doorgestuurde string valid JSON is (dus geen trailing commas). Je kan uiteraard die udp socket "open" laten en op een timed interval data doorsturen.
import socket
import sys
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
send_data = """
{
"Sensors": {
"Pressure":{"Min": 800, "Max": 1500, "Value": 1200},
"Temperature":{"Min": 5, "Max": 30, "Value": 15},
"Humidity":{"Min": 0, "Max": 100, "Value": 30},
"CO2":{"Min": 200, "Max": 3000, "Value": 900},
"Battery":{"Min": 0, "Max": 100, "Value": 70},
"RSSI":{"Min": 0, "Max": 100, "Value": 70}
},
"RoverInput":{
"TotalVotingTime": 15,
"RemainingVotingTime": 2,
"VotesLeft": 10,
"VotesRight": 20,
"VotesForward": 30
}
}
"""
s.sendto(send_data.encode('utf-8'), ("127.0.0.1", 41234))
s.close()