Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/2hgo/grpc-streaming
media streaming using grpc and grpc-web
https://github.com/2hgo/grpc-streaming
golang grpc grpc-go grpc-web grpc-webtext julia julialang mp4-video mp4box streaming
Last synced: 3 months ago
JSON representation
media streaming using grpc and grpc-web
- Host: GitHub
- URL: https://github.com/2hgo/grpc-streaming
- Owner: 2HgO
- Created: 2020-07-05T20:05:38.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T19:49:17.000Z (about 2 years ago)
- Last Synced: 2023-03-03T03:05:50.860Z (almost 2 years ago)
- Topics: golang, grpc, grpc-go, grpc-web, grpc-webtext, julia, julialang, mp4-video, mp4box, streaming
- Language: JavaScript
- Homepage:
- Size: 31 MB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 14
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# Media streaming with gRPC and gRPC-web
This is a pet project using gRPC and gRPC-web to stream media (audio and video) over HTTP/2 using gRPC.
The project uses Go (golang) to implement the video streaming service and as an added feature, an authentication server, implemented in Julia (julialang) to authenticate requests to the video server.
The client uses gRPC-web through an envoy-proxy to perform auth operations on the auth server as well as stream media from the video server.
## Requirements
- Docker
- docker-compose
- A browser
- python3## Installation
To run this application, just pull the source from this repo using the following command
```bash
git pull https://github.com/2HgO/grpc-streaming
```To start up the services, run the following command from the root directory of the project
```bash
docker-compose up --build
```*Note: It takes a while to instantiate the auth server because the julia package registry has to be downloaded and installed in the built image*
In a separate terminal window, run the following command to start up a static page where you can stream the video
```bash
make static-gateway
```