Challenge Overview
Competition Task Overview
In this challenge we'd like to extend the NGINX module we built in the previous challenge.
The module utilizes the VideoLAN libVLClibrary to transcode a source stream to a specified output format through VLC.
Requirements
- The current service gives back "application/octet-stream" for the http header content type. Fix the content-type for the HLS from "application/octet-stream" to "application/x-mpegurl".
- Add in parameters to pass to the libVLC library. We'd like this to be dynamic than fixed params if possible, for example a single param called "options" that we can just pass through or parse and interpret for libVLC when calling it.
- options to support are: venc, vcodec, vb, scale, fps, hurry_up, deinterlace, width, height, maxwidth, maxheight, filters, aenc, acodec, ab, alang, channels, samplerate, audio_sync, afilters
- see this link for explanation of the options
- Add in support for pseudo-HLS (direct "Transport Stream" delivery)
- the path for retireving this should be "/pseudo-hls"
- the header content-type is "video/mp2t"
- Please note it should just return the transport stream, the TS file, directly to the calling client instead of returning the m3u8 file. Calling to the /pseudo-hls path would set that option to return just the transport stream
- Make sure the updated code still works on both Ubuntu and Heroku
- Deploy a working instance on Heroku's Cedar-14 stack. This is the equivalent of Ubuntu 14.04
Versions & Environments
- NGINX Version: 1.5.7
- VLC version 2.1.5
- Ubuntu 14.04
- Deployable to Heroku Cedar-14 stack
Reading Material
Setup
- Send an email to lazybaer or wendell or post in the forums to request to be added to the Operation NGINX team on gitlab if you are not already a member
- Once added to the team, fork the repository, if you haven’t already, and work off of the 30047606-transcoderModule2 branch
- Add wendell and lazybaer as members of your forked repository.
Final Submission Guidelines
Submission Deliverables
- Your code changes must be pushed to your private gitlab repo
- Submit a zipped version of your repo to Online Review
- Make sure your submission includes a clear guide to deploy and test / verify your submission
- Once picked as the winner and done with fixes, you're expected to submit a merge request to the specified branch
Final Submission
For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.