Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/diego3g/gcloud-node-video-transcoding

📹🔥 Transcode Google Cloud Storage video files with Node.js and FFmpeg
https://github.com/diego3g/gcloud-node-video-transcoding

Last synced: 8 days ago
JSON representation

📹🔥 Transcode Google Cloud Storage video files with Node.js and FFmpeg

Awesome Lists containing this project

README

        




Google Cloud Node.js video transcoder

Use Google Cloud Storage, Pub/Sub and App Engine to transcode videos to many resolutions.

## 🔥 Setup

- Clone the app:
```
git clone https://github.com/diego3g/gcloud-node-video-transcoding.git
```
- Install all dependencies:
```
yarn
yarn lerna bootstrap
```
- Install GCloud CLI following https://cloud.google.com/sdk/docs/quickstarts?hl=pt-br
- Authenticate to Google Cloud:
```
gcloud auth login
```
- Setup a Google Cloud Project;
- Setup `GOOGLE_APPLICATION_CREDENTIALS` environment variable following https://cloud.google.com/docs/authentication/getting-started?hl=pt-br
- Create origin and destination bucket inside Google Cloud Storage;
- Create a topic inside Pub/Sub called `jupiter`;
- Setup Google Cloud Storage notification to new topic, so every file uploaded to bucket will publish a message to the queue:
```
gsutil notification create -t jupiter -f json -e OBJECT_FINALIZE gs://ORIGIN_BUCKET_NAME
```
*Replace ORIGIN_BUCKET_NAME with your origin bucket name :)*
- To see all the notifications:
```
gsutil notification list gs://ORIGIN_BUCET_NAME
```
- Update destination bucket name inside (https://github.com/diego3g/gcloud-node-video-transcoding/blob/master/packages/worker/src/services/transcode.ts#L26)
```
const destinationBucket = storage.bucket('DESTINATION_BUCKET_NAME');
```
- Run main application:
```
yarn dev:main
```
- Run worker application (in another terminal):
```
yarn dev:worker
```
- Upload `.mp4` file to ORIGIN bucket and monitor logs via:
```
gcloud app logs tail -s default
gcloud app logs tail -s worker
```

## 📝 License

This project lives under MIT License. See [LICENSE](LICENSE.md) for more details.