All Projects → itzmeanjan → streamZ

itzmeanjan / streamZ

Licence: MIT license
A simple video streaming application made with Dart, JavaScript, HTML, CSS & ❤️

Programming Languages

dart
5743 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to streamZ

Fluid Player
Fluid Player - an open source VAST compliant HTML5 video player
Stars: ✭ 359 (+1182.14%)
Mutual labels:  html5-video, video-streaming
rtsp2html5
A small and simple PHP-script to convert RTSP-stream from IP-cameras to HTML5-video (with switch to MJPEG on failure)
Stars: ✭ 15 (-46.43%)
Mutual labels:  html5-video, video-streaming
wimpy.deploy
Ansible role to automate immutable infrastructure scheduling one docker container on one EC2 instance
Stars: ✭ 21 (-25%)
Mutual labels:  systemd
opentok-react-native
React Native live video streaming demo app using Open-Tok
Stars: ✭ 36 (+28.57%)
Mutual labels:  video-streaming
one-script-wsl2-systemd
The one-script variant of the systemd hack for WSL2
Stars: ✭ 196 (+600%)
Mutual labels:  systemd
voronoi-video
Fragmented HTML5 using the Voronoi diagram
Stars: ✭ 13 (-53.57%)
Mutual labels:  html5-video
logback-journal
systemd journal appender for Logback
Stars: ✭ 25 (-10.71%)
Mutual labels:  systemd
SSffmpegVideoOperation
This is a library of FFmpeg for android... 📸 🎞 🚑
Stars: ✭ 261 (+832.14%)
Mutual labels:  video-streaming
amd-disable-c6
Systemd service to automatically disable the C6 power saving state on AMD Zen (Ryzen / Epyc) processors
Stars: ✭ 28 (+0%)
Mutual labels:  systemd
dewdle
A remote video-feed drawing tool (telestrator) for streaming and broadcast environments.
Stars: ✭ 29 (+3.57%)
Mutual labels:  video-streaming
buddy-linux
Do you remember "Wubi Ubuntu Installer"? This project is both a replacement and an improvement of Wubi. You will be able to install your Debian (or derived) distribution on a PC without repartitioning it, simply by using a secondary/external boot device (like a USB drive).
Stars: ✭ 17 (-39.29%)
Mutual labels:  systemd
fuck systemd
A library to bring the joys of non-systemd users to systemd users
Stars: ✭ 19 (-32.14%)
Mutual labels:  systemd
service-systemd
Setup a node.js app as systemd service.
Stars: ✭ 35 (+25%)
Mutual labels:  systemd
ZoomableVideo
PinchZoom on TextureView while playing your videos
Stars: ✭ 17 (-39.29%)
Mutual labels:  video-streaming
go-systemd-time
📅 Go implementation of systemd relative time adjustments
Stars: ✭ 21 (-25%)
Mutual labels:  systemd
android-tether
Autostart Android USB tethering with udev + systemd + adb
Stars: ✭ 30 (+7.14%)
Mutual labels:  systemd
SACK
System Abstraction Component Kit
Stars: ✭ 18 (-35.71%)
Mutual labels:  video-streaming
gentoo-project-gnome-without-systemd
GNOME Without Systemd
Stars: ✭ 89 (+217.86%)
Mutual labels:  systemd
balena-wpe
Fullscreen WebKit browser with hardware accelerated CSS, WebGL, and HTML5 video for the RaspberryPi 3.
Stars: ✭ 372 (+1228.57%)
Mutual labels:  html5-video
ocaml-systemd
OCaml module for native access to the systemd facilities
Stars: ✭ 22 (-21.43%)
Mutual labels:  systemd

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 <video> 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 ... 😉

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].