A simple video streaming server written in Go that converts uploaded videos into HLS and DASH formats for adaptive streaming.
- Video upload with drag-and-drop support
- Automatic conversion to HLS and DASH streaming formats
- Web-based video player with HLS and DASH playback
- Support for multiple video formats (mp4, avi, mov, mkv, wmv, flv, webm)
- Modern responsive UI using Tailwind CSS
- Real-time upload progress tracking
- Video library management
- Go 1.16 or later
- FFmpeg
- Fork and Clone the repository:
git clone https://github.com/yourusername/go-streamer.git
cd go-streamer- Install FFmpeg:
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install ffmpeg
# macOS
brew install ffmpeg- Install Go dependencies:
go mod download- Start the server:
go run main.go- Open your browser and navigate to:
http://localhost:5000
- Upload videos using the web interface and they will be automatically converted to HLS and DASH formats.
go-streamer/
├── main.go # Main server code
├── templates/ # HTML templates
│ ├── index.html # Upload and video list page
│ └── player.html # Video player page
├── uploads/ # Temporary storage for uploaded files
└── streams/ # Converted video streams
This project is licensed under the MIT License - see the LICENSE file for details.