# NodeJS-Video-Streamer A simple web video streamer built on the MEVN stack. ![Video Player](https://raw.githubusercontent.com/jslightham/NodeJS-Video-Streamer/master/images/Video.png) ### Features - Automatic transcoding through Handbrake - Video.js video player - Video streaming from NodeJS backend - Automatic thumbnail generation through FFmpeg - Store video metadata in MongoDB - Video uploader - Video search tool - Video comments and likes ### Installation #### Backend The backend code is found in the `API` directory. You will need to have NodeJS and FFmpeg installed and properly configured on your system before proceeding. Start by installing all backend dependencies ``` npm install ``` Change the DB settings to your MongoDB database in the `API/DB.js` file ``` module.exports = { DB: 'mongodb://127.0.0.1:27017/videoStreamer' // Connection to DB } ``` Run the backend server ``` node index.js ``` Or, if you want to run the backend development server instead ``` nodemon run ``` The backend will automatically run on port 8000, if you want to change this you can edit the port on line 29 of the `index.js` file. #### Frontend Run in the root directory of the project to install all frontend dependencies ``` npm install ``` You will now need to edit line 9 of the `main.js` file found in `src/main.js`. Set this to the IP and port of your backend server. ``` Vue.prototype.$apiIp = "http://127.0.0.1:8000" ``` Building the application for production minifies all the files, and removes unnecessary checks. To build the app run ``` npm run build ``` The generated files will be placed in the ```dst``` directory, these can be run on any static file server. Or, to run the development server, you can run ``` npm run serve ``` ###Interface ![Transcoding](https://raw.githubusercontent.com/jslightham/NodeJS-Video-Streamer/master/images/Transcoding.png) ![Home](https://raw.githubusercontent.com/jslightham/NodeJS-Video-Streamer/master/images/Home.png)