Giter Club home page Giter Club logo

desjare / tabarnak Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 835 KB

tabarnak is a python3 ffmpeg wrapper that aims at easily transcode a batch of media files from a directory to another without fuss. It will use default parameters for each supported codecs. You can also specify a lot of parameters yourself to control stream mapping, codec encoding parameters, and metadata.

Home Page: https://github.com/desjare/tabarnak

License: GNU Lesser General Public License v2.1

Python 99.82% Shell 0.18%
ffmpeg-wrapper transcoding python3 video ffmpeg hevc vp9 codec transcodes modern-codecs

tabarnak's Introduction

tabarnak - transcoder FFmpeg based utility tool

Port au Persil

Build Status Pylint codecov

Description

In the Province of Québec tabarnak is a swear derived from the tabernacle but it is an acronym for:

Transcoder All Basically Accessible Resolutely Not All Klingon

Le tact dans l'audace, c'est de savoir jusqu'où on peut aller trop loin.

Jean Cocteau

This script is used to convert video or audio media files to modern codecs such as HEVC, VP9, AV1 (experimental) or Opus. It walks into a directory and probes media files for video or audio that are not encoded with specified codec (default HEVC). Then it transcodes them. The idea is to use a more modern codec that has a better quality/bitrate ratio. Resulting files are significantly smaller than original h264, mpeg2, mpeg4 or likely any other formats that they are currently encoded to.

tabarnak uses crf encoding. All channels are copied. The audio is converted by ffmpeg to ogg vorbis by default.

tabarnak won’t delete or clean up your files. It will skip files that are already done. Basic sanity check is performed after encoding and it will print a warning if the input and output size do not match.

If you plan to use your media files with a chrome cast, be sure the buy chromecast ultra since the 3rd generation chromecast does not support HEVC.

Features

  • Easy to use out of the box
    • input & output directory support
    • keep relative path option for transcoding entire hierarchy of media files
    • copy your metadata (default) or not
  • Basic default configuration for basic codecs such as h264, hevc, vp9 & opus
  • Custom configuration workflow using either json or yaml
  • Configurable logging including basic prometheus support
  • Transcoder stats output (yaml)
  • Automatic tests

Usage

Install

pip3 install tabarnak-desjare

Getting help

For help: tabarnak -h

Example usage

transcode all media files recursively using h264 codec and output them to the output directory

tabarnak --input-dir . --output-dir output --h264

transcode your entire music library recursively using opus codec in ogg container while keeping your directory structure and copy non media files

tabarnak --copy --opus --keep-relative-path --map-args "-map 0:0 " --output-dir your_output_dir

Note that the mapping argument is necessary since iTunes files may contain unwanted tracks that prevent files to be recognised by music players.

Requirements

I prepared a tutorial video to learn how to do that on Windows 10: https://gist.github.com/desjare/adc1514d46bcb38414a5e2a602f6d12d

tabarnak's People

Contributors

desjare avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

krzemienski

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.