Giter Site home page Giter Site logo

nozomi-video-streamer's Introduction


Rust

A dead simple personal on demand video streaming service written in Rust based on warp and async/await.

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

nozomi-video-streamer's People

Contributors

awaited-hare avatar nobles5e avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

cservin69

nozomi-video-streamer's Issues

can't build from source

Hi all:

sorry for this issue, I'm a newbie in rust, and when I git clone the repository, and type

~/rust/src/github.com/NOBLES5E/nozomi-video-streamer(master) » cargo build --jobs 8 --release                                                                                                                                                  
   Compiling nozomi-video-streamer-client v0.5.10 (/home/brown/rust/src/github.com/NOBLES5E/nozomi-video-streamer/nozomi-video-streamer-client)
   Compiling nozomi-video-streamer v0.5.10 (/home/brown/rust/src/github.com/NOBLES5E/nozomi-video-streamer/nozomi-video-streamer)
error[E0554]: `#![feature]` may not be used on the stable release channel
 --> nozomi-video-streamer/src/main.rs:1:1
  |
1 | #![feature(async_closure)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> nozomi-video-streamer/src/main.rs:2:1
  |
2 | #![feature(str_strip)]
  | ^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `Timelike`
  --> nozomi-video-streamer/src/main.rs:14:21
   |
14 | use chrono::{Local, Timelike};
   |                     ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` on by default

error: aborting due to 2 previous errors; 1 warning emitted

For more information about this error, try `rustc --explain E0554`.
error: could not compile `nozomi-video-streamer`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...

and I notice release.yml, and type

~/rust/src/github.com/NOBLES5E/nozomi-video-streamer(master) »  cargo +nightly build --release --jobs 8                                                                                                                                        
error: no such subcommand: `+nightly`
-----------------------------------------

it doesn't work either.

could you provide some information about how to compile this project from source code? I'm using Arch Linux

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.