Code Monkey home page Code Monkey logo

xvc's Introduction

xvc codec AppVeyor Build Status Travis Build Status

The xvc codec is a next-generation software-defined video compression format, built using world-class compression technologies.

The xvc software is available under a dual-licensing scheme with an LGPL option and a commercial option.

Visit xvc.io for more information.

The master branch represents the current official version of xvc. Development of new versions of xvc happens in the dev branch.

Building instructions

Prerequisites

  1. CMake version 3.1 or higher.
  2. Git.
  3. C++ compiler with C++11 support

The following C++11 compilers have been known to work:

  • Visual Studio 2015 or later
  • GCC 4.8 or later
  • Clang 3.3 or later

Linux build steps

The following commands will checkout the project source code and create a directory called 'build' where the compiler output will be placed. CMake is then used for generating build files and compiling the xvc binaries.

$ git clone https://github.com/divideon/xvc.git
$ cd xvc
$ mkdir build
$ cd build
$ cmake ..
$ make

This will create xvc encoder and decoder binaries in the xvc/build/app/ folder.

Windows build steps

The following commands will checkout the project source code and create a directory called 'build' where the compiler output will be placed. CMake is then used for generating build files and creating the Visual Studio solution.

$ git clone https://github.com/divideon/xvc.git
$ cd xvc
$ mkdir build
$ cd build
$ cmake -G "Visual Studio 14 2015 Win64" ..

The -G argument should be adjusted to match your version of Visual Studio and the target architecture. This will generate a Visual Studio solution called xvc.sln in the build folder. After building the solution, the xvc encoder and decoder binaries will be found in the xvc/build/app/Release/ folder.

Testing the xvc codec

Command line encoder and decoder

For generating xvc bitstreams the following command shows typical usage:

$ xvcenc -input-file input.yuv -input-width 1920 -input-height 1080 \
    -framerate 30 -output-file mybitstream.xvc -qp 32

For decoding an xvc bitstream use the xvcdec application:

$ xvcdec -bitstream-file mybitstream.xvc -output-file decoded.yuv

Both xvcenc and xvcdec supports reading and writing y4m output.

Pipes can be used together with e.g. ffmpeg to stream y4m input to encoder:

$ ffmpeg -i movie.mkv -f yuv4mpegpipe - | xvcenc -input-file - \
    -qp 30 -output-file mybitstream.xvc

On the decoder, pipes can also be used to stream decoded output fo ffplay:

$ xvcdec -bitstream-file mybitstream.xvc -output-file - | ffplay -i -

Command line syntax

To show all available encoder arguments run:

$ xvcenc -help

For decoder arguments run:

$ xvcdec -help

Coding style

The xvc source code follows the Google C++ Style Guide.

Support

For questions/comments please email [email protected]

Contributing

Patches are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub.

Please visit xvc.io for more information on how to become an xvc contributor.

xvc's People

Contributors

perher avatar jonatansamuelsson avatar ewouth avatar vigneshvijay94 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.