Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nobles5e/nozomi-video-streamer
A dead simple on demand video streaming service written in rust.
https://github.com/nobles5e/nozomi-video-streamer
video-streaming website
Last synced: about 1 month ago
JSON representation
A dead simple on demand video streaming service written in rust.
- Host: GitHub
- URL: https://github.com/nobles5e/nozomi-video-streamer
- Owner: NOBLES5E
- License: gpl-3.0
- Created: 2020-03-12T05:17:14.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-03-26T14:39:25.000Z (almost 5 years ago)
- Last Synced: 2024-12-23T12:49:42.432Z (about 1 month ago)
- Topics: video-streaming, website
- Language: Rust
- Size: 170 KB
- Stars: 14
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
![Rust](https://github.com/L1AN0/nozomi-video-streamer/workflows/Rust/badge.svg)
A dead simple personal on demand video streaming service written in [Rust](https://www.rust-lang.org/) based on [warp](https://github.com/seanmonstar/warp) and [async/await](https://github.com/rust-lang/rust/issues/50547).
The service serves a directory, a user can view the directory on the web UI, stream videos, and (optionally) transcode the videos on the fly. The web UI looks like
## Typical use cases
* Downloading videos on a server with large internet throughput. Then view the video on your laptop (starting from arbitrary position of the video), optionally with lower quality to save bandwidth and get more smooth playing experience.
* Combine with another service like qBittorrent, which downloads submitted links to a specified directory, which can be served by Nozomi Video Streamer.
* ...## Getting started
Download the binaries from [release page](https://github.com/L1AN0/nozomi-video-streamer/releases). Ensure you have `ffmpeg` installed on your server.
On server
```
./nozomi-video-streamer --help
./nozomi-video-streamer --serving-dir /data
```On client now you can play video with (for example)
```
http get 'https://your-domain.com:4000/video-name.mp4' | mpv -
```or copy the video url (under linux with `xclip` installed) using the client for more customized options:
```
./nozomi-video-streamer-client --help
# this will play the video with 2M bitrate with the url in your clipboard
./nozomi-video-streamer-client --bitrate 2M | mpv -
```There are other useful optional arguments like
- `--url`: specify video url manually rather than read from clipboard (if you don't have `xclip` installed you may find this option useful)
- `--start-time`: start playing a video from an offset, the format is `HH:MM:SS`, you can also do things like `--start-time 00:01:02 00:02:01`, which is equivalent to a single `--start-time 00:03:03`
- `--sub-file`: upload a `.ass` subtitle file and play the video with the uploaded subtitle