All Projects β†’ jaredpetersen β†’ Raspilive

jaredpetersen / Raspilive

Licence: mit
πŸ“· Stream video from the Raspberry Pi Camera Module to the web

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Raspilive

P2p Cdn Sdk Javascript
Free p2p cdn github javascript sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - πŸš€ Vadootv πŸš€
Stars: ✭ 158 (+31.67%)
Mutual labels:  dash, livestream, hls
Vidgear
A High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features πŸ”₯
Stars: ✭ 2,048 (+1606.67%)
Mutual labels:  raspberry-pi, hls, dash
Nginx Vod Module
NGINX-based MP4 Repackager
Stars: ✭ 1,378 (+1048.33%)
Mutual labels:  dash, livestream, hls
Vime
Customizable, extensible, accessible and framework agnostic media player. Modern alternative to Video.js and Plyr. Supports HTML5, HLS, Dash, YouTube, Vimeo, Dailymotion...
Stars: ✭ 1,928 (+1506.67%)
Mutual labels:  dash, hls
Jarvis Ai
It is an AI assistant which will automate your task like it can send emails also it can control lights using raspberry pi it can inform about weather and many more features
Stars: ✭ 52 (-56.67%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Picroscopy
A Python web-application to turn a Raspberry Pi and PiCam into a microscopy solution
Stars: ✭ 54 (-55%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Video.js
Video.js - open source HTML5 & Flash video player
Stars: ✭ 32,478 (+26965%)
Mutual labels:  dash, hls
Indigo Player
Highly extensible, modern, JavaScript video player. Handles MPEG-Dash / HLS / MPEG-4 and is built on top of the HTML5 video element.
Stars: ✭ 1,173 (+877.5%)
Mutual labels:  dash, hls
Homekitcam
A project to make a Raspberry Pi driven, HomeKit Enabled camera.
Stars: ✭ 69 (-42.5%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Nexplayer unity plugin
Stream videos in HLS & DASH with Widevine DRM using NexPlayer Video Streaming Player SDK for Unity on Android & iOS devices
Stars: ✭ 73 (-39.17%)
Mutual labels:  dash, hls
Mediaelement Files
Sample media files (MP4, WebM, Ogv, MP3, etc.) for the MediaElement.js library
Stars: ✭ 92 (-23.33%)
Mutual labels:  dash, hls
Pi Camera In A Box
Stream your Raspberry Pi Camera Module directly to your web browser
Stars: ✭ 49 (-59.17%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Manifest
Video Manifest Parsers and Generators, supporting multiple formats such as HLS and DASH
Stars: ✭ 44 (-63.33%)
Mutual labels:  dash, hls
Raztot
A simple DIY, browser controlled, RPi + WebRTC video streaming rover
Stars: ✭ 67 (-44.17%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Mediaelement
HTML5 <audio> or <video> player with support for MP4, WebM, and MP3 as well as HLS, Dash, YouTube, Facebook, SoundCloud and others with a common HTML5 MediaElement API, enabling a consistent UI in all browsers.
Stars: ✭ 7,767 (+6372.5%)
Mutual labels:  dash, hls
Raspberry Pi Diy Projects
Collection of Do-It-Yourself Projects on Raspberry Pi 2 / 3 & Zero W with diverse HATs and pHATs.
Stars: ✭ 70 (-41.67%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Abr Broadcaster
A real time encoder for Adaptive Bitrate Broadcast
Stars: ✭ 80 (-33.33%)
Mutual labels:  dash, hls
Picamera
A pure Python interface to the Raspberry Pi camera module
Stars: ✭ 1,339 (+1015.83%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Fotobox
Python based photo-booth script for Raspberry Pi and RPi Camera
Stars: ✭ 22 (-81.67%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Raspberryrobot
εŸΊδΊŽζ ‘θŽ“ζ΄Ύηš„ζ™Ίθƒ½ζœΊε™¨δΊΊ
Stars: ✭ 11 (-90.83%)
Mutual labels:  raspberry-pi, raspberry-pi-camera

raspilive

πŸ“· raspilive is a command-line application that streams video from the Raspberry Pi Camera module to the web

Usage

raspilive streams video from the Raspberry Pi Camera Module to the web

For more information visit https://github.com/jaredpetersen/raspilive

Usage:
  raspilive [command]

Available Commands:
  hls         Stream video using HLS
  dash        Stream video using DASH
  help        Help about any command

Flags:
      --debug             enable debug logging
      --fps int           video framerate (default 30)
      --height int        video height (default 720)
  -h, --help              help for raspilive
      --horizontal-flip   horizontally flip video
  -v, --version           version for raspilive
      --vertical-flip     vertically flip video
      --width int         video width (default 1280)

Use "raspilive [command] --help" for more information about a command.

Commands

HLS

The hls command muxes the video stream into the HLS video streaming format and serves the produced content by starting a static file server.

If you're not familiar with HLS, the technology works by splitting the video stream into small, consumable segments. These segments are arranged into a constantly updating playlist of files. Clients periodically read these playlists, download the listed videos, and queue up the segments to produce a seamless playback experience. Twitch uses it to distribute streaming video to all of its viewers.

Stream video using HLS

Usage:
  raspilive hls [flags]

Flags:
      --port int              static file server port
      --directory string      static file server directory
      --tls-cert string       static file server TLS certificate
      --tls-key string        static file server TLS key
      --segment-type string   format of the video segments (valid ["mpegts", "fmp4"], default "mpegts")
      --segment-time int      target segment duration in seconds (default 2)
      --playlist-size int     maximum number of playlist entries (default 10)
      --storage-size int      maximum number of unreferenced segments to keep on disk before removal (default 1)
  -h, --help                  help for hls

Global Flags:
      --debug             enable debug logging
      --fps int           video framerate (default 30)
      --height int        video height (default 720)
      --horizontal-flip   horizontally flip video
      --vertical-flip     vertically flip video
      --width int         video width (default 1280)

DASH

The dash command muxes the video stream into the DASH video streaming format and serves the produced content by starting a static file server.

DASH effectively utilizes the same mechanism for streaming video as HLS. The video is split into small segments and listed in a changing playlist file. Clients download the playlist and the videos listed in it to piece the video together seamlessly.

Stream video using DASH

Usage:
  raspilive dash [flags]

Flags:
      --port int            static file server port
      --directory string    static file server directory
      --tls-cert string     static file server TLS certificate
      --tls-key string      static file server TLS key
      --segment-time int    target segment duration in seconds (default 2)
      --playlist-size int   maximum number of playlist entries (default 10)
      --storage-size int    maximum number of unreferenced segments to keep on disk before removal (default 1)
  -h, --help                help for dash

Global Flags:
      --debug             enable debug logging
      --fps int           video framerate (default 30)
      --height int        video height (default 720)
      --horizontal-flip   horizontally flip video
      --vertical-flip     vertically flip video
      --width int         video width (default 1280)

Performance Tips

HLS & DASH

HLS and DASH are inherently latent streaming technologies. However, you can still produce some lower latency video streams.

The general recommendations seem to be:

  • Reduce the segment size
  • Increase the number of segments in the playlist to build up a buffer

Experiment with the flags and see what seems to work best for your Pi. We try to provide "sane" defaults but Raspberry Pis are computationally diverse so you may find better performance with some tweaking.

Additionally, you may find that the SD card on the Raspberry Pi is a limitation. Fast disk read/writes are important and SD cards can only perform so many in their lifetime. For better performance and longevity, you may consider setting up a RAM drive so that the files are stored in memory instead.

Installation

raspilive uses raspivid to operate the Raspberry Pi Camera Module. This is already available on the Raspbian operating system and can be enabled via raspi-config.

raspilive also uses Ffmpeg, a prominent video conversion command line utility, to process the streaming video that the Raspberry Pi Camera Module outputs. Version 4.0 or higher is required.

sudo apt-get install ffmpeg

Download the latest version of raspilive from the Releases page. All of the release binaries are compiled for ARM 6 and are compatible with Raspberry Pi.

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].