Skip to content

curiousan/Streamz

Repository files navigation

Stream web app - Adaptive bitrate media streaming service

stream web app is an adaptive bitrate streaming service that allows user to upload any media (both video and audios) and stream them adaptively. It leverages the power of aws elastic transcoder to encode media into multipul format. [https://stream-transcoder.herokuapp.com/] - The app link

Web application

Login is optional in to get access to the dozons of medias already available. Howver, if you want to add your your own video user should be logged in. Stream supports both local authentication or third party facebook authorization. Once user is logged in they can upload any media files they want and to CRUD operations on those files.

implementation details

stream is expressJs application that make use of passportjs for local and facebook authorization for the authentication service. File uploading services is provided by express-multer.

Once user uploades that media on server, that file will automatically uploaded to the aws s3-bucket. The event handler that is attached while file is uploaded to AWS bucket calls the lamda function whose job is to transcode the media into hundreds of small files with different format and quality and thumbnails. it has nice bitmovin player for streaming the media on the web pages.

Media Quality

currently it supports media upto 4k resolution and generate following different streaming protocol and media quality

MEPG_DASH

This streaming protocol is supported all of the devices accept few apple devices. The uploaded video will be transocoded to following resolution and bitrate.

  1. 4800k Bitrate 1280 720
  2. 2400k Bitrate 854 480
  3. 600k Bitrate
  4. 128k Bitrate audio
  5. Thumbnails 600 600

HLS

Http live streaming developed by apple. It supports few devices that are not supported by dash. The uploaded video will be transcoded to following resolution and bitrate

  1. 1872k Bitrate 1024 768
  2. 1372k Bitrate 960 640
  3. 900k Bitrate 640 480
  4. 600k Bitrate 480 320
  5. 160k HSL audio

Api and documentation

Stream has pulic API with nice documentation. [https://stream-transcoder.herokuapp.com/api] - The api endpoints [https://stream-transcoder.herokuapp.com/apidocs] - The api documetation

Installing

just clone the project, install all the dependecies using npm install. provide all the Environental variables and your run npm start. Your app should be listening on port 3000 unless specified on env.PORT.

npm start or node app.js

End with an example of getting some data out of the system or using it for a little demo

Running the tests

npm test

Deployment

optimized to deploy in heroku

Built With

Contributing

Versioning

Authors

License

Acknowledgments

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •