• Stars
    star
    1,076
  • Rank 42,767 (Top 0.9 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 9 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A live h264 player for the browser (ideal for raspberrypi / raspicam )

Motivation

This is a very simple h264 video player (that can run on live stream) for your browser. You might use this with raspicam raw h264 stream. This is a player around Broadway Decoder, with very simple API. NAL unit (h264 frames) are split on the server side, transported using websocket, and sent to the decoded (with frame dropping, if necessary)

Version License

History

  • I was targetting a real-time camera video feedback (no audio/surveillance cam) in the browser
  • There is no solution for "real time" mp4 video creation / playback (ffmpeg, mp4box.js, mp4parser - boxing takes time)
  • Media Source Extension is a dead end (mp4 boxing is far too hard to re-create on the client side)
  • Broadway provide the crazy emscripten/asm build of a h264 decoder accelerated by webGL canvas
  • Here is all the glue we need, enjoy ;-)

Installation/demo

git clone [email protected]:131/h264-live-player.git player
cd player
npm install

node server-rpi.js    # run on a rpi for a webcam demo
node server-static.js # for sample video (static) file delivery
node server-tcp.js    # for a remote tcp (rpi video feed) sample
node server-ffmpeg    # usefull on win32 to debug the live feed (use ffmpeg & your directshow device / webcam) 

# browse to http://127.0.0.1:8080/ for a demo player

Recommendations

  • Broadway h264 Decoder can only work with h264 baseline profile
  • Use a SANE birate
  • Browserify FTW
  • Once you understand how to integrate the server-side, feel free to use h264-live-player npm package in your client side app (see vendor/)
  • Use uws (instead of ws) as websocket server

Credits

Keywords / shout box

raspberry, mp4box, h264, nal, raspivid, mse, media source extension, iso, raspicam, bitrate, realtime, video, mp4, ffmpeg, websocket, ws, socket.io "Let's have a beer and talk in Paris"

More Repositories

1

node-winapi

Native windows api binding for nodejs
C#
56
star
2

dispatcher

Process forwarder (stdin/stdout/stderr)
C#
51
star
3

node-tld

Nodejs TLD extract
JavaScript
43
star
4

screen-recorder

Desktop video screen capture
JavaScript
37
star
5

sql-template

Nodejs template string for SQL queries
JavaScript
15
star
6

icloud-api

iCloud / cloudkit API
JavaScript
14
star
7

trayicon

node system tray trayicon helper
C#
12
star
8

npm-mirror

JavaScript
9
star
9

discify

A browserify plugin to analyse bundle statistics
JavaScript
8
star
10

clap-trigger

Nodejs clap detector
JavaScript
8
star
11

vlc-player

Player VLC through nodejs
JavaScript
7
star
12

xterm2

xterm, for the browser
JavaScript
6
star
13

nyks

nodejs Exupery's style.
JavaScript
6
star
14

whiptail

whiptail wrapper for nodejs
JavaScript
5
star
15

ssh-agent-js

JavaScript
5
star
16

stream-split

Stream split transform
JavaScript
5
star
17

ubk

micro message broker for nodejs
JavaScript
5
star
18

node-openssl

Node openssl wrapper
JavaScript
4
star
19

libcloudfs

A cloud based filesystem
JavaScript
4
star
20

cnyks

Command line runner for nodejs
JavaScript
4
star
21

cloudfs

JavaScript
4
star
22

swift

Openstack swift API
JavaScript
4
star
23

mitm-ca

mitm ssl ca (dynamic cert generator)
JavaScript
4
star
24

mitm-proxy

Mitm https proxy
JavaScript
3
star
25

phar-stream

Nodejs PHP archive PHAR library
JavaScript
3
star
26

zabbix.js

Zabbix sender (via zabbix trapper protocol)
JavaScript
3
star
27

htmltar-to-pdf

Convert HTML tar archives to PDFs
JavaScript
3
star
28

reflection

JavaScript
2
star
29

docker-dspp

A docker stack compiler
JavaScript
2
star
30

headfull

JavaScript
2
star
31

mas4h

Massive ssh bouncing server
JavaScript
2
star
32

osqlite

sqlite3 database on an object storage backed
JavaScript
2
star
33

casfs

local content-addressable file system
JavaScript
2
star
34

ar

Animation Recorder
JavaScript
2
star
35

ubase64

Minimal footprint for base64 (nothing fancy here)
JavaScript
2
star
36

socketwrap

JavaScript
2
star
37

netsh

JavaScript
2
star
38

autounattend

A autounattend.xml helper for windows os deployments
JavaScript
2
star
39

sqlfs

A sqlite powered inode table (for cloudfs, mostly)
JavaScript
2
star
40

docker-pdns

A container with powerdns auth & recursive services bundled
Dockerfile
2
star
41

bufferfile

npm fd wrapper with Buffer API signature
JavaScript
1
star
42

wsl-notes

Batchfile
1
star
43

docker-dsexec

Remote docker socket exec
JavaScript
1
star
44

umod

Micro data model for nodejs
JavaScript
1
star
45

phar-fs

phar-stream wrapper for fs
JavaScript
1
star
46

ssh-keychain

RSA keychain (mosly)
JavaScript
1
star
47

udom

micro DOM helpers
JavaScript
1
star
48

msi-utils

JavaScript
1
star
49

docker-shellwin

A simple sshd server for windows
Dockerfile
1
star
50

docker-keepalived

Dockerfile
1
star
51

doubleplayer

JavaScript
1
star
52

random-read-http

Continuous reading from a http(s) url using random offsets and lengths
JavaScript
1
star
53

eventemitter-async

JavaScript
1
star
54

gitlab-runner-windows

Gitab runner windows host
Dockerfile
1
star
55

tar-serve-http

expose a tar contents as an http server
JavaScript
1
star
56

omx-spawn

omxplayer for nodejs
JavaScript
1
star
57

castor

Content addressable storage for nodejs
JavaScript
1
star
58

pg-aa

postgres wrapper with ES6 generator API (pg/co)
JavaScript
1
star
59

debug

debug
JavaScript
1
star
60

httpaddr

Filter http remote address through proxies & CIDR masks
JavaScript
1
star
61

dispatcher-tests

JavaScript
1
star