A foundational RTMP broadcasting server
Use an RTMP video source like OBS or Atem Mini and broadcast that video live to remote viewers via VLC or web browser or to other remote video producers
RTMP Video Stream Source >-> StookyBill >-> Remote Video Stream Viewer
StookyBill is named after a famous puppet in one of the first TV broadcasts by John Logie Baird in 1926
=> Learn more about TV Broadcast History
- AWS (Alternate cloud hosting to come)
- Terraform
- Docker
- nginx-rtmp Docker Image
docker-compose up
- Coming soon
- the most straightforward way to manually test is with OBS and VLC
- Setup Manual Testing
- Run StookyBill Locally:
docker-compose up
- Validate what OBS sends is what VLC recieves
- StookyBill's default branch is called
monster
becausemain
is boring and it's an excellent excuse to get Monster Mash by Bobby Pickett stuck in your head as yougit pull
from themonster
branch.
- Install Terraform CLI
terraform init
if this is your first run- Make sure you have AWS CLI and that its Configured
- Login to AWS us-west-2 via console: `aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin <MY_AWS_ACCOUNT_ID>.dkr.ecr.us-west-2.amazonaws.com`
You shoud see `Login Succeeded` in the terminal
- Spin up a local image: `docker-compose up`
- Tag the image as stookybill: `docker tag tiangolo/nginx-rtmp:latest stookybill` # what about the ports, dawg?
- Tag stookybill with the aws repo url: `docker tag stookybill <MY_AWS_ACCOUNT_ID>.dkr.ecr.us-west-2.amazonaws.com/stookybill-repo:stookybill`
- [Push the Docker Image to ECR](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html#use-ecr)
`docker push <MY_AWS_ACCOUNT_ID>.dkr.ecr.us-west-2.amazonaws.com/stookybill-repo:stookybill`
- (do something to make sure stookybill gets deployed into ECS - hit a button in the ECS task actions to create) `aws ecs run-task`
- Delete repo (to save on storage costs): `aws ecr delete-repository --repository-name stookybill-repo --region us-west-2 --force`
terraform apply
to provision- Find the task-definition name and revision in the AWS Console under ECS Task Definitions
aws ecs run-task --cluster stookybill-cluster --task-definition build-run-stookybill-task:<MY_CURRENT_REVISION>
to spin upaws ecs stop-task build-run-stookybill-task:<MY_CURRENT_REVISION>
to spin downterraform destroy
to teardown (and save on service costs)
- `terraform init`
- Run tests
- Commit the changes to `.terraform.lock.hcl` along with the infrastructure changes.
- if you're simply updating versions use `terraform init -upgrade` run tests, and submit as an indipendent PR.
- Coming soon