fiasco-extension

command module
v0.0.0-...-ac4c259 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2022 License: MIT Imports: 8 Imported by: 0

README

FiascoExtension

This program attempts to extend the encoding capabilities of the FIASCO image and video codec by sharing references to domain images between multiple frames of a video file.

It was created in the course of the bachelor thesis "Erweiterung eines fraktalen Videokompressionsverfahrens durch die Referenz derselben Fraktale" (Extension of a fractal video compression method by the reference of the same fractals), which can also be found in this repository.

Usage

Building the Project
go build
Basic Encoding
FiascoExtension -a encode -i video.mp4 -o encoded.fco
Basic Decoding
FiascoExtension -a decode -i encoded.fco -o video.mp4

Requirements

The following prerequisites have to be met, to run this program successfully.

Go

A Golang recent Golang installation.

FFmpeg

A FFmpeg installation at version 4.3 or higher.

FIASCO

The cfiaco and dfiasco binaries at version 1.3. They can be built from https://github.com/l-tamas/Fiasco. You may have to tweak the source codes constants to avoid crashes. For guidance on this see chapter 5.1.3 in the included thesis.

Parameters

  • -a | --action

    • One of: [encode, decode]. Decides if the program should encode a video file to the FIASCO codec of if it should decode an encoded FIASCO file.
  • -i | --input

    • In case of encoding, the path to the video file that should be encoded. All file formats that are recognized by your FFmpeg version are applicable here.
    • In case of decoding, the path to the encoded FIASCO file.
  • -o | --output

    • In case of encoding, the path where the encoded FIASCO file should be written to.
    • In case of decoding, the path where the decoded file should be written to. All file formats that are recognized by your FFmpeg version are applicable here.
  • -l | --layout

    • Overrides the tiling layout used to tile videos to groups of pictures during encoding.
    • Overrides the tiling layout used to untile groups of pictures back into a video file during decoding.
    • Higher values result in longer encoding times, but better visual quality and compression.
    • Format: \d+x\d+, where the first number is the width, and the second number is the height of the tiling layout.
    • Default value: 1x8.
  • -f | --fps

    • Overrides the target fps of a decoded video file.
    • Default value: 25.
  • ffmpegPath

    • Overrides the path that the ffmpeg binary is called from during encoding and decoding.
    • Default value: ffmpeg.
  • cfiascoPath

    • Overrides the path that the cfiasco binary is called from during encoding.
    • Default value: cfiasco.
  • dfiascoPath

    • Overrides the path that the dfiasco binary is called from during decoding.
    • Default value: dfiasco.
  • --ffmpegArgs

    • Additional arguments to be passed during the FFmpeg call when encoding of decoding.
    • Appended directly after the binary as-is.
    • See FFmpeg docomentation for details.
  • --fiascoArgs

    • Additional arguments to be passed during the FIASCO call when encoding of decoding.
    • Appended directly after the binary as-is.
    • See FIASCO man-pages for details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL