Giter Club home page Giter Club logo

asciiplay's Introduction

ASCIIPlay

Description:

ASCIIPlay is a video player designed for the purpouse of rendering to ASCII any video file given to it, inspired by towel.blinkenlights.nl. The reasoning for my making my own ASCII video player is due to the lack of an existing ASCII renderer with support for subtitle or audio playback. Thus I hope for ASCIIPlay to develop to fill this niche. A server is currently publicly accessible to view an example of this project, and can be accessed using: ssh [email protected] -p 20

Goals:

My main goal for ASCIIPlay is to develop a fully functional video player with a variety of features, while also practicing my C development and trying features I haven't previously used much. To this regard, I have definitely learned much more about data manipulation and threading in C programming, and I hope to expand into more practice as the project moves forward.

Status:

ASCIIPlay is currently stable, with many features being planned and added frequently.

Currently Supports:

  • Reading in a variety of video formats such ash mp4, mkv, ...
  • Subtitle rendering using SRT formatted subtitles
  • Frame limiting for lower end systems or situations where lower bitrate is necessary
  • Black and White ASCII rendering only at this time

Roadmap:

  • Load and read video files
    • Render ASCII representation
    • Use custom ASCII renderer to remove closed source dependencies
    • Colour support
    • Audio renderer
  • Add subtitle support
    • More subtitle filetypes
    • Alternate subtitle rendering modes
  • Performance improvements
    • framerate limiting
    • Implement frame buffer
    • Make use of threading
  • Support Resizing
    • Improve Resizing
  • Add control features
    • Play/Pause
    • Fast Forward (Improve this)
    • Rewind
  • Improve error reporting
  • Auto Installer

Requirements:

  • Currently ASCIIPlay is in development status with no installation candidate, if you want to use it you will need to get the dependencies listed in order to compile

Install:

  • Download repository git clone https://github.com/aidancrowther/ASCIIPlay

  • Navigate to ASCIIPlay folder and prepare Makefile cmake .

  • Make and run the executable make ./telnetflix -f <filename> -s <subtitle file>

Usage:

After getting ASCIIPlay installed the available flags for the executable are:

  • -f: Specify an input video file (Required)
  • -s: Specify an input subtitle file (Optional)
  • -h: Display help menu
  • --slow-mode: Allow slower systems time to start reading the input file
  • --frame-rate: Specify a framerate (>1 && < src framerate) to render at
  • --no-render: Disable the renderer output (Don't recommend using this if you want to see anything)
  • --enable-skew: Disable frametime skew correction (Don't use this if you want subs to do anything useful)
  • --debug: Display debug information while rendering

Problems:

Please feel free to notify me of any issues you encounter, and I will fix them as soon as possible. I am open to any suggestions or requests, and will work to make the program as functional as possible

Dependencies

primarily:

  • ascii_art.c (glhf with this one, we commented it out for ya)
  • ffmpeg
  • cmake
  • make
  • gcc

but apparently you'll need some indeterminate number of these too:

  • build-essential
  • pkg-config
  • libgtk-3-dev
  • libavcodec-dev
  • libavformat-dev
  • libswscale-dev
  • libv4l-dev
  • libxvidcore-dev
  • libx264-dev
  • libjpeg-dev
  • libpng-dev
  • libtiff-dev
  • gfortran
  • openexr
  • libatlas-base-dev
  • python3-dev
  • python3-numpy
  • libtbb2
  • libtbb-dev
  • libdc1394-22-dev

asciiplay's People

Contributors

aidancrowther avatar skote2 avatar

Watchers

 avatar  avatar

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.