Skip to content

Cdaprod/live-streaming-setup

Repository files navigation

🎥 Cdaprod's Awesome Live Streaming Setup

Development Setup


🚀 My ultimate local streaming command center! Bringing together pro camera gear, mobile streams, and local storage into one sleek, Dockerized package.

✨ What's This All About?

Ever wanted to run a professional multi-camera streaming setup from your local network? That's exactly what I built! This system handles everything from my Nikon Z7 to iOS devices, all while keeping high-quality recordings safely stored on my NAS.

🎮 Cool Features

  • 📹 Multi-device streaming (because one camera is never enough!)
  • 💾 Pristine local recordings (no quality loss here!)
  • 📊 Real-time quality monitoring (catch issues before your viewers do)
  • 🌐 Slick web dashboard (built with React + Tailwind)
  • 🎬 Smart device management (everything just works™)
  • 📦 Docker-powered (containers all the way down)

🏗 Architecture

🔧 The Stack

graph TD
    A[Main Camera] --> B[RTMP Server]
    C[iOS Devices] --> B
    B --> D[NAS Storage]
    B --> E[Web Dashboard]
    F[Device Manager] --> B
    G[API Router] --> B
Loading

🎯 Core Services

  • 🚀 RTMP Server: The streaming heart of the operation
  • 🎮 Device Manager: Keeps everything talking nicely
  • 🌐 API Router: Traffic control for our services (Go-powered!)
  • 🖥 Web Dashboard: Your command center for everything

🚀 Getting Started

📋 Prerequisites

You'll need:

  • 💻 Docker + Docker Compose on your laptop (192.168.0.187)
  • 💾 NAS (cda_ds.local, that's 192.168.0.19 for the DNS-challenged)
  • 📸 Nikon Z7 + capture card (the good stuff)
  • 📱 iOS devices running Prism Live Studio (for those sweet mobile angles)

🏃‍♂️ Quick Start

  1. Clone this bad boy:

    git clone https://github.com/Cdaprod/live-streaming-setup.git
    cd live-streaming-setup
  2. Set up your env (the easy way):

    cp .example.env .env
    # Customize .env to your heart's content
  3. Launch everything:

    docker-compose up -d
    # Grab a coffee while Docker does its thing

🎥 Setting Up Your Streams

Main Camera (The Nikon Z7 Beauty)

Stream URL: rtmp://192.168.0.187:1935/live
Stream Key: main_camera
Quality: As high as your network can handle! (4K? Why not!)

Mobile Streams (The iOS Squad)

Stream URL: rtmp://192.168.0.187:1935/live
Keys:
  - Main iOS: ios_main
  - B-Roll iOS: ios_secondary

🛠 Development & Testing

🧪 Running Tests

# Get your test on
pip install -r tests/requirements-test.txt
pytest tests/

# Or if you're feeling brave
pytest tests/ -v --show-capture=no

📝 Recording Management

Your streams are automatically saved to:

\\cda_ds.local\volume1\video\LiveStreamed-Broadcasts\

(Where the magic gets archived! 🎬)

🔍 Advanced FFmpeg Magic

Check out the separate FFmpeg configuration at:

ffmpeg-streamer/docker-compose.ffmpeg-streamer.yaml

🎩 Pro tip: This is where the real streaming wizardry happens!

🩺 Troubleshooting

🚑 When Things Go Sideways

  1. Stream Issues?

    # Check those RTMP stats
    curl http://localhost:8080/stat
  2. NAS Acting Up?

    # Is your NAS even mounted, bro?
    df -h | grep cda_ds.local
  3. Need the Logs?

    # The whole shebang
    docker-compose logs -f

👋 Connect with Cdaprod

🎥 This project is part of my content creation tech stack! Watch me build and use it on YouTube

🌟 About This Project

This streaming setup powers my tech content creation across various platforms. From coding sessions to tech reviews, this is the backbone of my live streaming infrastructure. Want to see it in action? Check out my:

📺 YouTube Channel - Live coding and tech tutorials
🐦 Twitter - Daily tech insights and updates
📝 Blog - In-depth articles and guides
💼 LinkedIn - Professional updates
🎮 Twitch - Live coding sessions

🚀 Support My Work

Buy Me A Coffee Sponsor on GitHub

Building cool stuff for developers and content creators!


Built with ❤️ by Cdaprod

🎬 "Because every stream deserves to be awesome!"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published