Inspiration
Less than three days ago, an idea was born. Seeing an app called AmpMe, which allowed users to play music in sync with each other, we asked, what if you could do the same with video. Imagine, rather than the small screen of your phone, the combined power of multiple phones playing video. According to a study by IAB last year, 50% of respondents viewed content on their mobile device and 36% watch videos of over 5 minutes. Yet this project almost did not happen. Due to a lot of creative thinking, fast learning, a wide skill set, and a little insanity, our team was able to realize our dream. Thus, our idea went to a reality, and the app Stretch was born.
What it does
Stretch currently allows users come together and play a video on a larger screen by placing their phones together. When the app first opens, the users are prompted to either host a Stretch or join a Stretch. After entering a 4 letter code corresponding to the host room and the host chooses a video, a play video button can be pressed to start the video playing, part of it on each screen. The app is dynamic, allowing currently for either 2 or 3 users to join. The video adjusts to the size of the screens to provide a distortion-free image across the phones.
How we built it
First, we set up a node.js server, which uses FFmpeg to split the videos and send it to clients. We used Andriod studio to create activities and layouts for the app and connected it to the server using Socket.io, which helped reduce latency. The algorithm for phone screens was then added in, and the design was finalized. Finally, we designed more into the app to improve user interface and functionality.
Challenges we ran into
Some of the biggest challenges were the algorithms for the phones, as there was a lot of math involved. Also, bridging the gap between Local android app development and remote server development. These were things we did not have experience with before the
Accomplishments that we're proud of
Not only are we proud of Stretch as a whole, we particularly proud of the low latency, design, and its easy functionality.
What we learned
None of our team had ever coded an Android app, allowing us to learn much about that process. We also learned more about algorithm design and video processing.
What's next for Stretch
For the future of Stretch, we wish to implement algorithms to include more than 3 phones. The app will also display the best positions of the phones. Also, we would love to make this a cross-platform app, allowing anyone to Stretch along with us.
Built With
- exoplayer
- ffmpeg
- java
- javascript
- node.js
- socket.io
Log in or sign up for Devpost to join the conversation.