All Projects → n1ckyrush → wyzecam-hls

n1ckyrush / wyzecam-hls

Licence: other
Converts MP4 files from WyzeCam NFS to HLS stream. Much more stable alternative to RTSP firmware.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to wyzecam-hls

docker-wyze-bridge
RTMP/RTSP/LL-HLS bridge for Wyze cams in a docker container
Stars: ✭ 1,146 (+1875.86%)
Mutual labels:  rtsp, hls, wyze, wyzecam
Rtsp Stream
Out of box solution for RTSP - HLS live stream transcoding. Makes RTSP easy to play in browsers.
Stars: ✭ 349 (+501.72%)
Mutual labels:  rtsp, hls
Monibuca
🧩 Monibuca is a Modularized, Extensible framework for building Streaming Server
Stars: ✭ 307 (+429.31%)
Mutual labels:  rtsp, hls
Fastocloud
Self-hosted IPTV/NVR/CCTV/Video service (Community version)
Stars: ✭ 464 (+700%)
Mutual labels:  rtsp, hls
streamer
Go Package built around spinning up streaming processes
Stars: ✭ 37 (-36.21%)
Mutual labels:  rtsp, hls
Rtspallthethings
Deprecated RTSP media server -- Use github.com/aler9/rtsp-simple-server instead.
Stars: ✭ 258 (+344.83%)
Mutual labels:  rtsp, cctv
Easyplayer Rtsp Android
An elegant, simple, fast android RTSP/RTMP/HLS/HTTP Player.EasyPlayer support RTSP(RTP over TCP/UDP)version & Pro version,cover all kinds of streaming media!EasyPlayer是一款精炼、高效、稳定的流媒体播放器,分为RTSP版和Pro版本,支持各种各样的流媒体音视频播放!
Stars: ✭ 437 (+653.45%)
Mutual labels:  rtsp, hls
video-server
Server which connects to set of existing RTSP's and provides HLS/MSE-based streams.
Stars: ✭ 12 (-79.31%)
Mutual labels:  rtsp, hls
Ffmpeg
Mirror of https://git.ffmpeg.org/ffmpeg.git
Stars: ✭ 27,382 (+47110.34%)
Mutual labels:  rtsp, hls
V4l2rtspserver
RTSP Server for V4L2 device capture supporting HEVC/H264/JPEG/VP8/VP9
Stars: ✭ 1,092 (+1782.76%)
Mutual labels:  rtsp, hls
Media Server
RTSP/RTP/RTMP/FLV/HLS/MPEG-TS/MPEG-PS/MPEG-DASH/MP4/fMP4/MKV/WebM
Stars: ✭ 1,363 (+2250%)
Mutual labels:  rtsp, hls
wsa
WSA(Websocket Streaming Agent) is a stream server target for mp4/h264 streaming over websocket
Stars: ✭ 35 (-39.66%)
Mutual labels:  rtsp, hls
WebRTCCTV
WebRTCCTV is a signaling server & webapp able to stream from RTSP cameras using WebRTC
Stars: ✭ 32 (-44.83%)
Mutual labels:  rtsp, cctv
Zlmediakit
WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181 server and client framework based on C++11
Stars: ✭ 5,248 (+8948.28%)
Mutual labels:  rtsp, hls
smart rtmpd
RTMP server, smart, compact, high performance(c, c++), high concurrency, easy to maintain, easy to deploy, (supports multiple operating systems Windows and Linux, ARM, FreeBSD)
Stars: ✭ 159 (+174.14%)
Mutual labels:  rtsp, hls
Rapidvms
rapidvms(open source VMS/NVR Video Management System/ Network Video Recorder) mail to [email protected] for latest version
Stars: ✭ 370 (+537.93%)
Mutual labels:  rtsp, hls
Jmuxer
jMuxer - a simple javascript mp4 muxer that works in both browser and node environment.
Stars: ✭ 222 (+282.76%)
Mutual labels:  rtsp, hls
rrtsp client
Rust high level RTSP client
Stars: ✭ 12 (-79.31%)
Mutual labels:  rtsp, nvr
ZLMediaKit
WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT server and client framework based on C++11
Stars: ✭ 7,790 (+13331.03%)
Mutual labels:  rtsp, hls
Lal
🔥 Golang live stream lib/client/server. support RTMP/RTSP/HLS/HTTP[S]-FLV/HTTP-TS, H264/H265/AAC, relay, cluster, record, HTTP API/Notify, GOP cache. 官方文档见 https://pengrl.com/lal
Stars: ✭ 480 (+727.59%)
Mutual labels:  rtsp, hls

WyzeCam HLS support

This tool will allow you to convert MP4 files from WyzeCam into HLS stream. Then you can feed this stream to Shinobi, motioneye, or any other CCTV/NVR solution.

Why?

WyzeCam support RTSP streams via separate official firmware which is much outdated comparing to the latest firmware. Also, it's well-known for instability and weird glitches. That's why this repo was born.

This tool will create a live stream from your Wyze cameras without RTSP. You will need to install WyzeHacks. This "hack" will make your camera record MP4 file every minute into NFS share instead of SD card. Then the script will pick these files to create a live HLS stream. Well, it will have a delay of 60-80 seconds because camera writes a current minute file in the beginning of next minute.

You can read whole story about my misery with RTSP and WyzeCam in my personal blog post.

How to configure?

There is a file config.js with all the configuration. Just open it with any text editor and adjust settings that you need.

Essentially, you will have to add your cameras in cameras array, it's just a path to camera NFS folder.

Here is an example:

export const cameras = [
  {
    NAME: 'cam1',
    NFS_PATH: '/mnt/cams/WyzeCams/1ABC2D3456E7'
  }
]

How to run?

I would suggest using a process manager. For example, pm2.

Here is some quick example how to run it:

# install dependencies
npm install

# add your cameras to the config
vi config.js

# install pm2
npm install pm2

# run the script via pm2
pm2 start pm2.config.js

# enable automatic startup on boot
pm2 startup
pm2 save

# add logrotate to pm2
pm2 install pm2-logrotate

# check logs 
pm2 logs wyzecam-hls

NFS cleanup feature

This script can also clean old files from your NFS folder. For example, you can keep files only for past 24 hours. It will make sense because your long term archive should be maintained by Shinobi or other software which consumes an HLS stream from this script. Be default this feature is disabled, you can enable it by changing variable NFS_CLEANUP_OLD_DAYS variable in config.js.

Also, make sure that user under which you run this script has permissions in NFS folder. For example, I run this script on the same machine where I host NFS, so I've added my user into a group and added uid and gid to exports file.

$ adduser --system nfs
$ usermod -a -G nfs nfs
$ usermod -a -G nfs <MY_USER>
$ cat /etc/exports
/mnt/cams 192.168.0.0/24(rw,sync,no_subtree_check,anonuid=113,anongid=<NFS_GROUP_ID>)

Known bugs

Script is not compatible with ffmpeg3

ffmpeg3 can consume HLS stream from the script, but it throws a lot of warnings about DST timestamps, and output video has a weird FPS and basically is not playable. I've tried to fix it using different options during generating both of my playlists, but nothing helped. Maybe some day somebody will solve it... ffmpeg4 works completely fine though.

Any ideas or suggestions?

Feel free to open a pull request or create an issue.

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