Vantrix Launches f265.org for Open Source HEVC Encoder
April 28, 2014
Free Source Code Available for Collaboration on H.265 Implementations
Download a PDF version of this press release
Los Angeles, CA (The Cable Show 2014) and MONTREAL, Canada — April 28, 2014 — Vantrix, a global provider of high performance media delivery solutions to service and content providers, today officially launched their open source HEVC project website, f265.org. The company will showcase their HEVC encoder during The Cable Show 2014 at the Los Angeles Convention Center, Los Angeles, California, which opens tomorrow and runs through May 1.
The f265 project was previously announced as an open source version of the H.265 encoder, also known as High Efficiency Video Coding (HEVC). The project aims to accelerate the industry-wide development and adoption of H.265 through a collaborative and free open source model. The project website is now officially available for researchers and commercial entities to obtain the source code and contribute to the refinement and evolution of the code to accelerate the implementation of both software and hardware systems.
Vantrix’s f265 encoder will be licensed under the OSI BSD terms, enabling access to source code, free redistribution, and derived works. The project will target both high quality offline and real-time encoding.
“The f265.org site is maintained by and for developers to help accelerate the development and adoption of HEVC,” noted Francis Labonte, Vantrix research lab director. “We have a working baseline version available that we’ve been demonstrating for UHD/4k live streaming and now want to take the real-time performance and feature set to the next level. We’re hoping to contribute to accelerating the industry transition from H.264 to H.265 and solving network bandwidth issues for high definition video.”
The f265 project website is available at www.f265.org.
Visitors to The Cable Show 2014 can come to booth #2454 during exhibition hours to view a demo of the Vantrix HEVC encoder.
We’re media specialists in the delivery of digital content over wireless or wired networks to connected devices striving for the best performance, highest quality, and most cost-effective solutions available. Vantrix provides systems that adapt rich content – steaming video, audio, images and more – to deliver the best customer experience on any screen over any network. We also enable deep analysis into the media journey from end-to-end and provide insights for better delivery and monetization strategies. With a heritage in video and image optimization, Vantrix has developed a high-performance, scalable platform to meet the unique needs of service providers today and into the future. Our solutions are deployed in more than 65 networks worldwide.
This document describes how to compile the codec.
Command line usage
Pre-built executables for x86-64 (aka amd64)
Mac OS X
Using f265 as a standalone executable
Encode a YUV file:
$ f265 -w 640x480 input.yuv output.265
Encode a video file in a format recognized by ffmpeg:
$ f265 input.mp4 output.265
View the results in a player with H.265 support e.g. recent ffmpeg, VLC, mplayer.
$ ffplay output.265 # This requires ffmpeg to be installed.
By default, f265 encodes the video at average size, quality and performance. See the command line reference to change the encoding parameters.
Set your extra parameters with "-p" as follow:
$ f265 -p "quality=25 rc=abr bitrate=2032032" input.mp4 output.265
Important: specify quality=X explicitly when you use "-p", or the behavior will be inconsistent.
Currently, quality factors of 0, 25 and 50 are supported. Intermediate values map to the next known value. For instance, "quality=14" maps to "quality=25" and "quality=26" maps to "quality=50". Values above 50 are ignored.
A quality factor of 0 restricts the encoder to a very small toolset. CBs are limited to 16x16, the transform and scaling operate on 16x16 blocks and inter merge candidates are available. However, asymmetric partitions and temporal merge candidates aren't available. This is the fastest setting, but the quality will be below H.264.
A quality factor of 25 translates to the use of 16x16 or 8x8 CBs, 16x16 down to 4x4 TBs but the TB exploration depth is limited to 1. It also enables the use of asymmetric partitions as well as temporal merge candidates. Moreover, the analysis uses CABAC estimations rather than actually writing the stream to evaluate rate-distortion costs.
A quality factor of 50 uses the entire CB and TB ranges (and depths). It also increases the number of temporal references to 3, forces the analysis to study all the intra modes instead of a subset (what the lower quality settings test) and considers zeroing remaining inter residual for small RDO gains.
Two rate control methods are presently supported: "cqp" and "abr". "cqp" stands for constant QP (i.e. no rate control). This is the default setting. A constant QP value can be specified on the command line. If no value is specified, the encoder will use a value of 30. "abr" stands for average bit rate. This option should be followed by the target bit rate (specified in actual bits) as shown in the example above. If not specified, the encoder defaults to 500000.
Typical rates vary greatly between applications. However, here are a few common rate ranges used for television quality content.
Resolution ................................ Range
Standard definition (720x480)............... 2 - 5 Mbits/sec
High definition (1280x720).................... 8 - 10 Mbits/sec
High definition (1920x1080).................. 8 - 15 Mbits/sec
4K Ultra HD (3840x2160)...................... 30 - 60 Mbits/sec
Note that the content of the sequence you wish to encode plays an important role in the selection of the target bit rate. As a rule of thumb, a newscast will most likely look fine using the lower end of the range, while you should aim for the upper end of the range for an action movie.
Also note that the quality of the input is important when choosing the output bit rate. Feeding an input that was previously coded at 5 Mbits/sec and increasing the target bit rate to 10 Mbits/sec is not the wisest strategy. Any artifacts (annoying visual effects) caused by the previous encoding will not disappear because the output uses a higher bit rate.
Using f265 in a library
f265 can be compiled in a library with few or no external dependencies. Check the following resources:
Compilation instructions: doc/compile.txt
External interface: f265/f265.h
External interface example: cli/cli.c
Visit the bug tracker to browse and report bugs. Filing bugs requires to be logged (we apologize for the inconvenience -- SPAM is a problem).
Reproducibility is critical for us to be able to fix a bug. Please specify:
The version number (f265 -V) or the commit hash if building from Git.
The exact command line that you used.
A short description of the problem.
If possible, please use one of the sample videos files so that we can get the same output as you do. If the bug won't trigger with the sample files, then upload your video somewhere we can fetch it, or just mention that in the bug report and we will get back to you.
The mailing lists are the primary way to reach the developers and other users. Everyone can browse the archives. Posting requires to be subscribed.
You will be asked which mailing lists you want to join when you create your account. Alternatively, send a mail to "email@example.com" to subscribe without an account.
User (firstname.lastname@example.org). Search the archive.
General discussion of using the encoder, feature requests, etc.
All users are welcome to post here.
Develop (email@example.com). Search the archive.
Active development discussion. Send patches here for review.
Bug tracker reflector (firstname.lastname@example.org). Search the archive.
Modification notifications from the bug tracker.
+ Reply to Thread
Results 1 to 2 of 2
f265 development branch now supports input via stdIn on Windows (binary: https://forum.doom9.org/showthread.php?p=1686437#post1686437) and http://f265.org/browse/f265/plain/doc/params.txt?h=develop contains all the parameters (most are not supported/unimplemented atm.).
Since it's still really new and has a small development crew it's far away from kvazaar, x265 or DivX265, but it's another H.265 implementation which might be interesting to some of you.
Cu Selurusers currently on my ignore list: deadrats, Stears555