Git Product home page Git Product logo

wackywebm's Introduction

WackyWebM

WackyWebM is a tool that allows you to create WebM video files with changing aspect ratios.

If you're having issues, want to share your custom modes, or learn from the community join the Discord at the bottom of this readme.

Dependencies

NodeJS

To begin installation, you must install NodeJS first. You can find the NodeJS download here.

Select your OS, and use the installer. After finished installing, click the finish button.

image

FFmpeg

After installing NodeJS, you need to download FFmpeg next. To install FFmpeg you need to go to this link and select the green Download button.

image

Windows

To download FFmpeg for Windows, navigate to the Windows logo and select Windows builds by BtbN after that, it is recommended to select ffmpeg-master-latest-win64-gpl-shared.zip

Once downloaded, unzip the file and move it to somewhere safe.

Select that folder, then rename it to ffmpeg

image

Copy the unzipped folder, direct to This PC, enter your C: drive and paste the ffmpeg folder in there.

image

After moving the ffmpeg folder into your C: drive, open Command Prompt with administrator and run this: setx /m PATH "C:\ffmpeg\bin;%PATH%" (If, for some reason, you are unable to run Command Prompt with administrator permissions, you can hit the windows key, then type "edit environment variables for your account" and hit enter, then you need to click "Path", then click "Edit," then you click "New" and paste in "C:\ffmpeg\bin" and then make sure to click "Ok" in both windows).

Now, type in "ffmpeg" to the command prompt. If you get an error, you need to log out and log back in, run ffmpeg inside of the command prompt window once more, and if you do not get an error you're all set. If you still get an error, you can try restarting your computer, and typing "ffmpeg" into the command prompt again. If it still doesn't work, you can get help in #support in this discord server.

MacOS

For MacOS users, refer to this tutorial for FFmpeg installation.

Linux

For Linux users, refer to this tutorial for FFmpeg installation.

How to Run

After you have finished installing the dependencies, download the WackyWebM folder by clicking the Code button in the top right of this page, followed by clicking Download ZIP

image

Once the ZIP is fully installed, you need to extract the folder inside. After doing this, you are set.

On Windows, use the run.bat file to start WackyWebM.

On MacOS and Linux, use chmod +x run.sh then sh run.sh file to start WackyWebM

If you're on windows, you can simply double-click run.bat, as long as it's in the same folder as wackywebm.js.

You can also tweak the script to taste if you want to adjust how your file is generated.

You can also change the bitrate of the output file by tweaking -b (Default is 1M, which means 1 MB/s. If the file is too large, consider lowering this value.)

Modes

  • Bounce (Default): The video bounces up and down.
  • Shutter: The video bounces left to right.
  • Sporadic: The video glitches and wobbles randomly.
  • Shrink: The video shrinks vertically until it's just one pixel thin.
  • AudioBounce: The video's vertical height changes relative to the current audio level verses the highest within the video.
  • AudioShutter: The video's horizontal width changes relative to the current audio level verses the highest within the video.
  • Jumpscare: The video shrinks down small, then gets big at the specified frame.
  • Keyframes: The video's height and width change based on a number of keyframes outlined in the file given as an argument. The format is as follows:
    • Every line consists of 4 (or 3) comma-seperated values:
      • first, the time in the video of the keyframe; either one integer representing seconds, or two, seperated by any one of the characters ., : or -, where the first still represents seconds, and the second represents frames.
      • next, the width, then the height at that keyframe (in pixels)
      • finally, the interpolation with which to advance towards the next keyframe - currently, the following are supported:
        • linear: linearly interpolates towards the next keyframe. if the line only contains 3 values, this mode is implied, so it is not required to be written out every time.
        • instant: instantly sets the size to the given values
    • If it isn't overwritten, an implicit keyframe at 0 frames into the video is added with linear interpolation and the video's original size.
    • To use this mode, add -k with the path to your csv file.

Additionally, any 2 modes can be combined using a + symbol, like Bounce+Shutter. If one only specifies width, and one only specifies height, then those respective values are used. If there is a conflict, the value from the latter of the 2 modes is used (so Shrink+Bounce would result in the same effect as just Bounce)

Support

If you encounter bugs, issues, or have recommendations, feel free to join the Discord here.Discord Invite Widget

wackywebm's People

Contributors

oirnoir avatar thewilloftheshadow avatar t-brieger avatar megascience avatar earthmite avatar artifishvr avatar neonwizard avatar stefa-n avatar wavjaby avatar thekiaibot avatar saltandvichips avatar orangenal-name avatar breadone 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.