Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cobyj33/tmedia
Linux C++17 Terminal Audio and Video Player
https://github.com/cobyj33/tmedia
ascii ascii-art ascii-art-representation ascii-graphics audio-player cpp curses curses-based ffmpeg libav main-project media media-player ncurses ncurses-tui terminal terminal-app terminal-based video-player
Last synced: 3 months ago
JSON representation
Linux C++17 Terminal Audio and Video Player
- Host: GitHub
- URL: https://github.com/cobyj33/tmedia
- Owner: cobyj33
- License: mit
- Created: 2022-08-07T10:29:35.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-20T05:54:44.000Z (8 months ago)
- Last Synced: 2024-06-20T17:25:37.916Z (8 months ago)
- Topics: ascii, ascii-art, ascii-art-representation, ascii-graphics, audio-player, cpp, curses, curses-based, ffmpeg, libav, main-project, media, media-player, ncurses, ncurses-tui, terminal, terminal-app, terminal-based, video-player
- Language: C++
- Homepage:
- Size: 152 MB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# tmedia
C++ 17 Terminal Media Player
## Example Output
![example created in tmux](assets/readme/example-320.gif)
![example colored output](assets/readme/colored_music_record-160.gif)
![example vscode](assets/readme/vscode.png)
![example volcano](assets/readme/volcano.gif)
![example keybiard](assets/readme/keyboard_man.gif)
![example audio-playback](assets/readme/audio_playing_tmedia_480.png)## Table of Contents
- [Supports](#supports)
- [Media Controls](#media-controls)
- [Installing](#installing)
- [Dependencies](#dependencies)
- [Ubuntu/Debian Linux](#ubuntudebian-linux)
- [Bug and Feature Reporting](#bug-and-feature-reporting)
- [Acknowledgements](#acknowledgments)
- [Bundled 3rd-party libraries](#bundled-3rd-party-libraries)
- [Inspiration and Resources](#inspiration-and-resources)## Supports
- Playing Audio and Video Files
- Displaying Image files
- Displaying Colored and Grayscale output
- Audio and Video Controls (Seeking, Changing Volume, Muting, Pausing, Looping)
- Playing multiple files
- Reading directories for multiple files to play## Media Controls
- Video and Audio Controls
- Space - Play and Pause
- Up Arrow - Increase Volume 5%
- Down Arrow - Decrease Volume 5%
- Left Arrow - Skip Backward 5 Seconds
- Right Arrow - Skip Forward 5 Seconds
- Escape or Backspace or 'q' - Quit Program
- '0' - Restart Playback
- '1' through '9' - Skip To n/10 of the Media's Duration
- 'L' - Switch looping type of playback (between no loop, repeat, and repeat one)
- 'M' - Mute/Unmute Audio
- Video, Audio, and Image Controls
- 'C' - Display Color (on supported terminals)
- 'G' - Display Grayscale (on supported terminals)
- 'B' - Display no Characters (on supported terminals) (must be in color or grayscale mode)
- 'N' - Skip to Next Media File
- 'P' - Rewind to Previous Media File
- 'R' - Fully Refresh the ScreenAll of these controls can also be seen when calling tmedia with no args or
with --help## Installing
See [BUILD.md](./BUILD.md) for information. Currently, Ubuntu 20.04 is the main
tested## Bug and Feature Reporting
If there are any problems with installing or using tmedia, or any requested feature,
please leave an issue at the [github repo](https://www.github.com/cobyj33/tmedia)
and I'll be sure to help.## Acknowledgments
### Bundled 3rd-party libraries
* [miniaudio](https://miniaud.io/) - Cross-platform audio playback ([github](https://github.com/mackron/miniaudio))
* [Natural Sort](https://github.com/scopeInfinity/NaturalSort) - Natural Sorting and Comparison: For sorting directory files
* [readerwriterqueue](https://github.com/cameron314/readerwriterqueue) - Lock free SPSC Circular Buffer for consistent realtime audio
* [random](https://github.com/effolkronium/random) - "Random for modern C++ with convenient API" (README.md)### Inspiration and Resources
* [ncurses 3D renderer](https://github.com/youngbrycecode/RenderEngine)
* [video-series](https://www.youtube.com/playlist?list=PLg4mWef4l7Qzxs_Fa2DrgZeJKAbG3b7ue)
* created by [youngbrycecode](https://github.com/youngbrycecode)
* [Coding Video into Text by The Coding Train on Youtube](https://www.youtube.com/watch?v=55iwMYv8tGI)
* [The Coding Train](https://www.youtube.com/c/TheCodingTrain)
* [How to Write a Video Player in Less Than 1000 Lines](http://dranger.com/ffmpeg/)