A simple video streaming application made with Dart, JavaScript, HTML, CSS

Overview

streamZ

A simple video streaming application made with Dart, JS, HTML, CSS & ❤️

Show some ❤️ by putting

Recently I wrote an article, explaining how to deploy it using systemd in LAN, which can be found here.

what does it do ?

  • A streaming service, intended to run in small network(s) ( may be in your home network ), which lets you stream movies to any device present in that network & having a standard browser installed ( yeah HTML5 support required )
  • Backend, fully written in Dart, leveraging power of dart:io & dart:isolate
  • Frontend, powered by HTML, CSS & last but not least Javascript ( yeah not using any UI framework )
  • Audio-Video playing is done using HTML5 element, which can play mp4 & webm video(s) generally

how can I use it ?

  • If you're on Linux, then I've already compiled streamZ into an executable binary ( using dart2native compiler ), which can be simply run on any Linux Machine, cause that executable binary is one self-sufficient one ( but not yet platform-agnostic, which will change is near future ).
  • Then download this compressed file, and unzip it into a suitable location on your machine.
  • You'll get a directory tree like below
$ wget https://github.com/itzmeanjan/streamZ/releases/download/v1.0.1/streamZ.zip # consider downloading zip, using wget from terminal
$ cd
$ unzip streamZ.zip # unzipping it
$ cd streamZ # getting into actual directory
$ tree -h
.
├── [4.0K]  final
│   └── [7.8M]  streamZ
└── [4.0K]  frontend
    ├── [4.0K]  images
    │   └── [ 318]  favicon.ico
    ├── [4.0K]  pages
    │   └── [1.0K]  index.html
    ├── [4.0K]  scripts
    │   └── [9.7K]  index.js
    └── [4.0K]  styles
        └── [2.0K]  index.css

6 directories, 5 files
  • Now get into ./final directory & run executable binary, which will start a media streaming server on http://0.0.0.0:8000
$ cd final
$ ./streamZ # running movie steaming server
[+]streamZ_v1.0.0 listening ( streamZ0 ) ...

[+]streamZ_v1.0.0 listening ( streamZ1 ) ...
  • To check, open browser from same machine & type http://localhost:8000 into address bar, you'll get a list of all movies present under ~/Videos/ directory, which is default video storing directory on Linux running machines.
  • You can also access this streaming service by opening _http://x.x.x.x:8000/_,on any device's browser, present in LAN
  • Where x.x.x.x is nothing but Local IP Address of machine, running streamZ

  • If you want to dig deeper, simply fork this repo & clone it in you machine
  • Make sure you've installed Dart SDK & you're on *nix platform
  • Because I gonna use systemd.service to keep this streaming service alive in background, always, even after system restarts it'll auto start itself
  • You need to make sure, you've ~/Videos/ directory present on your system, cause we'll read from that directory ( every 30 minutes ), to ensure all mp4 & webm videos, present in aforementioned directory, are listed in movie playlist
  • If you're having a lot of traffic, consider using multiple Isolates to handle traffic efficiently. Just update int count = 2; on line 100 of ./bin/main.dart to whatever value you intend to use, that many Isolate(s) will be created on boot, they'll distributedly handle whole traffic coming in.
  • I've also written one systemd unit file, which can be used for deploying streamZ, so that it'll keep running always ( autostart after failure & system boot )
  • Consider using so, by modifying this systemd unit file

how does it look like ?

screenCapture_1

screenCapture_2

screenCapture_3

Feel free to check source code to dig deeper ( it's pretty well documented )

Hope it helps ... 😉

You might also like...

Official Flutter SDK for LiveKit. Easily add real-time video and audio to your Flutter apps.

LiveKit Flutter SDK Official Flutter SDK for LiveKit. Easily add real-time video and audio to your Flutter apps. This package is published to pub.dev

Dec 14, 2022

Better video player for Flutter, with multiple configuration options. Solving typical use cases!

Better video player for Flutter, with multiple configuration options. Solving typical use cases!

Better video player for Flutter, with multiple configuration options. Solving typical use cases!

Jan 2, 2023

video call with WebRTC and Flutter

video call with WebRTC and Flutter

Video Call Flutter App 📱 Description: This is sandbox video call application using Flutter and WebRTC, you can call from browser to browser, phone to

Nov 9, 2022

Base on Vap to play alpha video animation

Base on Vap to play alpha video animation

Backdrop Transparent video animation is currently one of the more popular implementations of animation. Major manufacturers have also open source

Dec 27, 2022

Open source geo based video sharing social app created with Flutter, Supabase and lots of love 💙💙💙

Open source geo based video sharing social app created with Flutter, Supabase and lots of love 💙💙💙

Spot Take a virtual journey around the world with Spot. Spot is a geo-tagged video sharing app, meaning every video recorded in Spot is saved on a loc

Jan 3, 2023

A cloudinatry video url sample project

cloudinary_media_sample A new Flutter project for Cloudinary video url. Getting Started This project is a starting point for a Flutter application. A

Nov 4, 2021

Video call with WebRTC and Flutter

Video call with WebRTC and Flutter

This is sandbox video call application using Flutter and WebRTC, you can call from browser to browser, phone to phone, browser to phone and opposite.

Nov 9, 2022

Flutter plugin for use Video.js in flutter web

Flutter plugin for use Video.js in flutter web

Flutter Video.js player Flutter plugin for use Video.js in flutter web Installation Add it to your package's pubspec.yaml file dependencies: video_j

Oct 17, 2022

Advanced video player based on video_player and Chewie for flutter

Advanced video player based on video_player and Chewie for flutter

Better Player Advanced video player based on video_player and Chewie. It's solves many typical use cases and it's easy to run. Introduction This plugi

Dec 22, 2021
Releases(v1.0.1)
  • v1.0.1(Nov 18, 2019)

    streamZ v1.0.1

    • Used dart2native compiler for compiling into a single executable binary, which can be run without Dart VM
    • Works pretty fast
    • dart2native isn't yet platform agnostic, so if you want to use it on some other platform, you need to recompile it
    • Download this zip
    • Unzip into a suitable location your machine
    • Get into ./streamZ/final directory
    • And run executable present on that directory, named streamZ
    • Open browser on same machine, and type http://localhost:8000/
    • You'll get a list of streamable movies present under ~/Videos/ directory
    • From other devices, present under same LAN, consider opening http://x.x.x.x:8000, where x.x.x.x is nothing but a local IP address of machine, running streamZ

    :wink:

    Source code(tar.gz)
    Source code(zip)
    streamZ.zip(2.78 MB)
Owner
Anjan Roy
Learning :)
Anjan Roy
Apps For streaming audio via url (Android, iOS & Web ). Developed with Dart & Flutter ❤

Flutter Sleep App (Dicoding Submission : Learn to Make Flutter Apps for Beginners) Stream Great collection of high-definition sounds that can be mixed

Utrodus Said Al Baqi 13 Nov 29, 2022
YoYo Video Player is a HLS(.m3u8) video player for flutter.

YoYo Video Player YoYo Video Player is a HLS(.m3u8) video player for flutter. The video_player is a video player that allows you to select HLS video s

Ko Htut 89 Dec 23, 2022
Red5Pro Streaming & Player

red5pro Red5Pro Streaming & Player Red5Pro Plugin that supports Red5Pro Streaming & Player. Installation add red5pro to your pubspec.yaml Add the foll

null 2 Nov 19, 2021
Flutter plugin for playing or streaming YouTube videos inline using the official iFrame Player API.

Flutter plugin for playing or streaming YouTube videos inline using the official iFrame Player API. The package exposes almost all the API provided by iFrame Player API. So, it's 100% customizable.

Sarbagya Dhaubanjar 558 Jan 2, 2023
WaVe - an audio streaming platform which gives the best user experience without any compromise in the audio quality

WaVe is an audio streaming platform which gives the best user experience without any compromise in the audio quality, and there is even space for the users to explore their creativity. And makes it more efficient with the AI features.

OmarFayadhd 1 May 31, 2022
This is a flutter package of video player. it's a very simple and easy to use.

This is a flutter package of video player. it's a very simple and easy to use.

初冬 184 Nov 18, 2022
Fleo - A video calling application developed using flutter🤠

Fleo ?? Video Calling Application developed using flutter Light and Dark Modes ?? Join using Room Codes ?? One room can accomodate upto 4 persons Powe

Madhav Pruthi 41 Dec 25, 2022
Sandbox video call application using Flutter and WebRTC

Video Call Flutter App ?? Description: This is sandbox video call application using Flutter and WebRTC, you can call from browser to browser, phone to

Dao Hong Vinh 21 Nov 9, 2022
The video player for Flutter with a heart of gold

chewie The video player for Flutter with a heart of gold. The video_player plugin provides low-level access to video playback. Chewie uses the video_p

Brian Egan 1.6k Jan 7, 2023
Flutter video trimmer package

A Flutter package for trimming videos Features Customizable video trimmer Video playback control Retrieving and storing video file Also, supports conv

Souvik Biswas 349 Jan 3, 2023