Skip to content

Spring 2021 Initiatives

benliao1 edited this page Mar 23, 2021 · 2 revisions

Due to the COVID-19 pandemic, PiE held a virtual competition in the spring of 2021. It required a lot of work from all of the projects in PiE to pull off. Runtime's contribution to the effort were the following:

  • Modifying Runtime to use ngrok to expose three ports that were needed for the Dawn-Runtime connection to function properly
    • Port 6101: this is the TCP port on the Raspberry Pi that is normally used by Dawn and Shepherd to connect to it
    • Port 1234: this is the TCP port that is created by the UDP-TCP converter process which ferries messages that would normally go on a UDP connection between Dawn and Runtime onto a TCP connection instead (since ngrok does not support UDP ports)
    • Port 22: this is the ssh port that is used by Dawn to ssh into the Raspberry Pi remotely and upload/download student code
  • Making the video server and supporting infrastructure so that students could see a stream coming from inside of O'Brien 101 while they were driving.
  • Figuring out how to connect stream from a GoPro

The GoPro stream was accomplished with a script copied verbatim from this Github. We had to change line 103 of the script to:

subprocess.Popen("ffmpeg " + loglevel_verbose + " -fflags nobuffer -f:v mpegts -probesize 8192 -i udp://10.5.5.100:8554 -ar 44100 -f flv -vcodec copy rtmp://64.227.109.107:1935/overhead/stream", shell=True)

Essentially, we changed the output location of the ffmpeg command to point at rtmp://64.227.109.107:1935/overhead/stream because that is the input URL of a server that one of our team members set up on DigitalOcean (a service that allows you to host servers on the Internet for a small fee). The server basically ingested an rtmp stream (rtmp is a video streaming media protocol) and converted it to webrtc / ws (for websockets), which is a format that Dawn can understand.