A burn-in timecode and video conversion utility for post-production proxy makers
See the Examples section for usage guides and screenshots.
- Automatic timecode detection from timecode stream embedded in the source video file
- Configurable burn-in timecode styling in
config.json
- Included preset for the "hurry" users
- Extensible, create your own preset and save it for later uses
- Video converter/encoder built in, powered by the ffmpeg library (defaults to ProRes 422)
- Automatic framerate detection, overridable
- You can easily set your own timecode start and frame count start
- Automatically burn-in information from metadata of the file (color space, resolution, framerates) without human input
- Ability to discard or convert embedded audio to other codecs (see examples)
- Scale your media up/down to 1920x1080 or 1280x720 for easier handling in post-production [To be implemented]
Clone this repository or get the latest zipped release here.
You will need these software installed on your computer to run fluxbitc:
- python3
- ffmpeg
- ffprobe
Fortunately on macOS, you can run:
./install.sh
in your terminal to automatically install the required dependencies.
To burn-in the timecode using the default preset, use:
./fluxbitc.py -i input.mp4 output.mov
To add additional info along with the timecode, use:
./fluxbitc.py -i input.mp4 output.mov --data timecode_start=00:59:52:00 heading_title="My new film" heading_sub="FOR SOUND ONLY"
fluxbitc also has a verbose
preset, to activate it, use:
./fluxbitc.py -p verbose -i input.mp4 output.mov
All the settings are customizable, too!
./fluxbitc.py -p verbose -i input.mp4 output.mov \
--data timecode_start=00:59:52:00 frame_start=740 \
heading_title="My new film" heading_sub="Final Draft v9" \
info_1="property of some studio" info_2="note: definitely not color graded"
To encode the output file to a different video and audio codec at some specified bitrates, use:
./fluxbitc.py -i input.mp4 -vc hevc_videotoolbox -vb 5M -ac aac_at -ab 128k output.mov
See the list of avaliable video and audio codecs at the ffmpeg codecs documentation.
To discard the audio completely, use:
./fluxbitc.py -i input.mp4 -ac off output.mov
To force an output file container format, use:
./fluxbitc.py -i input.mp4 --container mpegts output.ts
To encode into other ProRes variants, use:
# This will output ProRes Proxy
./fluxbitc.py -i input.mp4 -vp 0 output.mov
# This will output ProRes LT
./fluxbitc.py -i input.mp4 -vp 1 output.mov
# This will output ProRes 422 (Standard)
./fluxbitc.py -i input.mp4 -vp 2 output.mov
# This will output ProRes 422 HQ
./fluxbitc.py -i input.mp4 -vp 3 output.mov
# This will output ProRes 4444
./fluxbitc.py -i input.mp4 -vp 4 output.mov
# This will output ProRes 4444 XQ
./fluxbitc.py -i input.mp4 -vp 5 output.mov
To encode into H.264 codec, with the bitrate of 3 Mbps, use:
./fluxbitc.py -i input.mp4 -vc libx264 -vb 3M output.mov
In newer Macs, you can encode to H.264 using the hardware encoder for faster encode speed:
./fluxbitc.py -i input.mp4 -vc h264_videotoolbox -vb 5M output.mov
To encode only range 00:00:05:00 to 00:01:00:00, use:
./fluxbitc.py -i input.mp4 output.mov --flags '-ss 00:00:05 -to 00:01:00'
To force the output audio to PCM 24-bit for sound post-production:
./fluxbitc.py -i input.mp4 -ac pcm_s24le output.mov
Feel free to play around! Consult the Usage section and the config.json
file for more info :)
For usage guide and help messages, use:
./fluxbitc.py --help
The usage guide should appear:
usage: fluxbitc.py [-h] -i FILENAME [-p PRESET] [-vc CODEC] [-vb BITRATE] [-vp PROFILE] [--scale {off,1080p,720p}] [-ac AUDIO_CODEC]
[-ab AUDIO_BITRATE] [-d DATA [DATA ...]] [--flags FLAGS [FLAGS ...]] [--container CONTAINER] [--config CONFIG] [-y]
output
fluxbitc burn-in timecode and video conversion utility
positional arguments:
output output filename
optional arguments:
-h, --help show this help message and exit
-i FILENAME input filename
-p PRESET, --preset PRESET
processing preset name (default: default)
-vc CODEC, --codec CODEC
output video codec (default: prores_ks)
-vb BITRATE, --bitrate BITRATE
output video bitrate (default: auto)
-vp PROFILE, --profile PROFILE
output video profile
--scale {off,1080p,720p}
scale the video to one of the predefined standard (default: off)
-ac AUDIO_CODEC, --audio-codec AUDIO_CODEC
output audio codec (default: auto)
-ab AUDIO_BITRATE, --audio-bitrate AUDIO_BITRATE
output audio bitrate (default: auto)
-d DATA [DATA ...], --data DATA [DATA ...]
custom user data in KEY=VALUE format
--flags FLAGS [FLAGS ...]
additional ffmpeg flags
--container CONTAINER
output container format (default: auto)
--config CONFIG config filename (default: config.json)
-y override existing file check, will replace output file without asking!
© 2021 fluxth. Released under the GNU GPL v3.