Encode WebM videos
Project description
Yet another bikeshed to encode WebM videos from CLI.
Features
Encodes input video to WebM container with VP9 and Opus
Uses 2-pass encoding, has optional VP8/Vorbis and album art modes
Fits output file to the size limit by default
Allows to select video/audio streams and external audio track
Can burn subtitles into the video
Flexible set of options and ability to pass raw flags to FFmpeg
Interactive mode to cut/crop input video with mpv
Requirements
Installation
Just save https://raw.githubusercontent.com/Kagami/webm.py/master/webm.py
Optionally put it somewhere in your PATH:
mkdir -p ~/.local/bin
wget https://raw.githubusercontent.com/Kagami/webm.py/master/webm.py -O ~/.local/bin/webm
chmod +x ~/.local/bin/webm
export PATH=$PATH:~/.local/bin
Or with pip:
[sudo] pip install webm
Usage
NOTE: Windows users may want to add Python executable to the PATH. See https://docs.python.org/3/using/windows.html#excursus-setting-environment-variables for details. Otherwise just type the full path to your python.exe location instead of python.
Use webm instead of python webm.py if you installed it with pip.
Show help:
python webm.py -h
Examples:
# Fit video to default limit
python webm.py -i in.mkv
# Fit video to 6 MiB
python webm.py -i in.mkv -l 6
# Set video bitrate to 600k
python webm.py -i in.mkv -vb 600
# Constrained quality
python webm.py -i in.mkv -crf 20
# Constant quality
python webm.py -i in.mkv -crf 20 -vb 0
# Encode with VP8 & Vorbis
python webm.py -i in.mkv -vp8
# Make album art video
python webm.py -cover -i pic.png -aa song.flac
Interactive mode
Pass -p flag to interactively select cut frargment/crop area with mpv. Demo:
Show help on interactive mode:
python webm.py -hi
Breaking changes policy
Versions from 0.y.0 (inclusively) till 0.y+1.0 (exclusively) keep backward compatibility of options and settings.
Versions from x.0.0 (inclusively) till x+1.0.0 (exclusively) keep backward compatibility of options and settings where x > 0.
Raising the minimal required version of dependency is not considered as breaking change. Adding new required dependency is breaking change.
License
webm.py - encode WebM videos
Written in 2015 by Kagami Hiiragi kagami@genshiken.org
To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see http://creativecommons.org/publicdomain/zero/1.0/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.