README.md 1.45 KB
Newer Older
1
# Javelin
Patrick Auernig's avatar
Patrick Auernig committed
2

3
A simple video live streaming server.
Patrick Auernig's avatar
Patrick Auernig committed
4

Patrick Auernig's avatar
Patrick Auernig committed
5
Supported sources:
6
- RTMP (H.264 + AAC)
Patrick Auernig's avatar
Patrick Auernig committed
7 8 9 10 11 12

Supported outputs:
- RTMP
- HLS (H.264 + AAC)


Patrick Auernig's avatar
Patrick Auernig committed
13
## Install
Patrick Auernig's avatar
Patrick Auernig committed
14 15 16 17

```sh
cargo install javelin
# Make sure your $CARGO_HOME/bin is in your $PATH
Patrick Auernig's avatar
Patrick Auernig committed
18 19 20 21 22 23

# add an user with an associated stream key to the database
javelin permit-stream username mysecretstreamkey

# start the server
javelin run
Patrick Auernig's avatar
Patrick Auernig committed
24 25
```

26
Check out the [Wiki][wiki_installation] for more info about other possible installation methods.
Patrick Auernig's avatar
Patrick Auernig committed
27 28


Patrick Auernig's avatar
Patrick Auernig committed
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
## Feature flags

The following feature flags can be supplied to `cargo`:

| Flag          | Default | Description
| ------------- |:-------:| ----------------------------------------
| `rtmp`        | yes     | Enables the RTMP source
| `rtmps`       | no      | Enables additional TLS support for RTMP
| `hls`         | yes     | Enables the HLS server
| `db-sqlite`   | yes     | Use SQLite as database backend
| `db-mongo`    | no      | Use MongoDB as database backend

> Note: One database backend is required.


44 45 46
## Contributions

See [CONTRIBUTING.md]
Patrick Auernig's avatar
Patrick Auernig committed
47 48


Patrick Auernig's avatar
Patrick Auernig committed
49 50 51 52 53 54 55 56 57 58
## Versioning

The project follows [semantic versioning][semver].

We are not on a stable version yet, which means the following additional rules apply:

- Breaking changes cause a minor version bump (`0.1.0` -> `0.2.0`)
- Non-breaking changes cause a patch version bump (`0.1.1` -> `0.1.2`)


Patrick Auernig's avatar
Patrick Auernig committed
59 60
<!-- links -->

61 62
[wiki_installation]: https://gitlab.com/valeth/javelin/wikis/installation
[CONTRIBUTING.md]: CONTRIBUTING.md
Patrick Auernig's avatar
Patrick Auernig committed
63
[semver]: https://semver.org