# rtsp-stream-hls

> node-rtsp-stream-hls module

Latest version **1.0.7** (published 2023-04-03) · ISC license · 0 weekly downloads

## Install

```sh
npm install rtsp-stream-hls
pnpm add rtsp-stream-hls
yarn add rtsp-stream-hls
bun add rtsp-stream-hls
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.7 |
| Published | 2023-04-03 |
| First published | 2023-03-30 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 5.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | pl9429 |

## Links

- npm: https://www.npmjs.com/package/rtsp-stream-hls
- npm.io page: https://npm.io/package/rtsp-stream-hls

## Dependencies (2)

- [express](https://npm.io/package/express.md) ^4.18.2
- [node-rtsp-stream](https://npm.io/package/node-rtsp-stream.md) ^0.0.9

## Recent versions

- 1.0.7 (latest) — 2023-04-03
- 1.0.6 — 2023-04-03
- 1.0.5 — 2023-04-03
- 1.0.4 — 2023-04-03
- 1.0.3 — 2023-04-03
- 1.0.2 — 2023-04-03
- 1.0.1 — 2023-03-30
- 1.0.0 — 2023-03-30

## README

node-rtsp-stream-hls
================

Convert all RTSP streams to HLS using ffmpeg [FFmpeg](https://github.com/FFmpeg/FFmpeg). Output is possible using the HTML5 video tag.

You must install [ffmpeg](https://ffmpeg.org/).


Usage:

```
$ npm install rtsp-stream-hls
```

On server: ( used express )
```
const videoStream = require('../index');
let express = require('express');
let path = require('path');
let app = express();

app.use(express.static(path.join(__dirname, 'public')));

app.get('/', function(req, res, next) {
    res.sendFile(__dirname+'/index.html');
});

const options = {
    url : 'rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4', // rtsp URL. this is sample url
    segmentFolder : __dirname + '/public/segment',  //The path is where the .m3u8 and ts files will be stored.
    ffmpegOptions : {  //ffmpeg option.
        // If you have a ffmpeg option you want to add, write it down here.
        '-hls_time': '30', // If the same option is set, it is possible to change the value.
        'ultrafast':undefined // single option other than the key-value type, it can be set by setting the value to undefined.
    },
}
const stream = new videoStream(options);
stream.start();


app.listen(3000);
    
```

On client:
```
<!DOCTYPE html>
<html>
<head>
  <title>Video Streaming</title>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<video id="video" controls preload></video>
<script>
  if(Hls.isSupported()) {
    var video = document.getElementById('video');
    var hls = new Hls();
    hls.loadSource('http://localhost:3000/segment/stream.m3u8');
    hls.attachMedia(video);
  }
</script>
</body>
</html>
```

Using ffmpeg, various options can be added. You can check the options on the [ffmpeg](https://ffmpeg.org/ffmpeg.html) official website.
(However, please note that this module is made based on HLS.)

---
_Source: https://npm.io/package/rtsp-stream-hls · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
