Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jd91mzm2/termplay
GitLab: https://gitlab.com/jD91mZM2/termplay
https://github.com/jd91mzm2/termplay
ansi audio rust terminal truecolor video watch youtube youtube-dl
Last synced: about 15 hours ago
JSON representation
GitLab: https://gitlab.com/jD91mZM2/termplay
- Host: GitHub
- URL: https://github.com/jd91mzm2/termplay
- Owner: jD91mZM2
- License: mit
- Created: 2017-06-15T12:02:53.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-06T20:18:09.000Z (over 2 years ago)
- Last Synced: 2024-05-11T04:20:52.839Z (9 months ago)
- Topics: ansi, audio, rust, terminal, truecolor, video, watch, youtube, youtube-dl
- Language: Rust
- Homepage:
- Size: 1.11 MB
- Stars: 539
- Watchers: 15
- Forks: 18
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# termplay
*Name by the awesome [@tbodt](https://github.com/tbodt)*Are you a terminal fanboy like me?
Sure, but do you ever watch YouTube? In your terminal?----------------------------------------------------
`termplay` is the tool to convert images to ANSI sequences.
But it also supports playing videos...
Written in the systems language Rust, it has some solid performance.- **Multiple modes**
- Sixels: Only supported by a few terminals, like xterm.
- Unicode halfblock: This is the same as TrueColor below, but uses unicode half-blocks for smaller pixels.
- TrueColor: Any RGB color, supported by most terminals.
- 256 color: The closest representation of a color that can be fit within 1 byte. Use this if nothing else works.
- **Flexible**
- Change framerate, size and more using command line switches
- **Adapting size**
- Automatically scales the image to fit your terminalTermplay also allows you to control the media, such as zoom in or pause the video.
- **Mouse Scroll / +/-**: Zoom
- **Mouse Drag / W/A/S/D**: Pan
- **Space**: Play/Pause
- **Left/Right**: Seek
- **Up/Down**: Volume
- **q / Ctrl+C**: Quit![Example image](https://i.imgur.com/54MXrSk.png)
*(Landscape image from [pexels.com](https://www.pexels.com/photo/beautiful-holiday-lake-landscape-358482/))*## Using
### Image
```
termplay 2.0.0
jD91mZM2
Play images/videos in your terminalUSAGE:
termplay [FLAGS] [OPTIONS]FLAGS:
--help Prints help information
-q, --quiet Ignores all the nice TUI things for simple image viewing
-V, --version Prints version informationOPTIONS:
-c, --converter Decides how the image should be displayed [default: halfblock] [possible values:
color256, halfblock, sixel, truecolor]
-h, --height Sets the height (defaults to the terminal size, or 24)
-r, --rate Sets the framerate [default: 24]
--ratio Sets the terminal font ratio (only takes effect with some converters)
-w, --width Sets the width (defaults to the terminal size, or 80)ARGS:
Specifies the path to the image/video to play
```## Compiling
### Compile time requirements
**Rust v1.25 or more** is required. See your Rust version with
```
rustc --version
```
Update rust with
```
rustup update stable
```### Compiling!
Other than that, [this project is hosted on crates.io](https://crates.io/crates/termplay).
So to install you just need to run
```
cargo install termplay --features bin
```(Note: The `--features` part is a hack because binaries don't allow specifying separate dependencies)
### Features
Almost all dependencies are optional and can be disabled!
Default features:
- termion: This is what enables the rich image viewer. Disabling this will disable almost everything.
- gst: Video support, requires [gstreamer](https://gstreamer.freedesktop.org/)
- sixel: Support for sixels, requires [libsixel](https://github.com/saitoha/libsixel)To disable default features, run
```
cargo install termplay --no-default-features --features "bin,..."
```
where `...` is a comma separated list of features you want to keep.### Nix
Termplay is available with the default features on Nix!
```
nix-env -iA nixpkgs.termplay
```### Arch Linux
If you just want to get this running on Arch Linux with the default features, you can use the
[AUR Package (unofficial)](https://aur.archlinux.org/packages/termplay/)### Debian / Ubuntu
Example:
```
sudo apt install libopenal-dev libsndfile1-dev libsixel-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev
cargo install termplay --features bin
```