The Scalable Video Technology for HEVC Encoder (SVT-HEVC Encoder) is an HEVC-compliant encoder library core that achieves excellent density-quality tradeoffs, and is highly optimized for Intel® Xeon™ Scalable Processor and Xeon™ D processors.
The whitepaper for SVT-HEVC can be found here: https://01.org/svt
This encoder has been optimized to achieve excellent performance levels using 12 density-quality presets (please refer to the user guide for more details).
Scalable Video Technology is licensed under the OSI-approved BSD+Patent license. See LICENSE for details.
More details about the encoder usage can be found under:
SVT-HEVC may run on any Windows* or Linux* 64 bit operating systems. The list below represents the operating systems that the encoder application and library were tested and validated on:
Windows* Operating Systems (64-bit):
Linux* Operating Systems (64-bit):
Ubuntu 16.04 Server LTS
Ubuntu 18.04 Server LTS
CentOS 7.4/7.5/7.6
The SVT-HEVC Encoder library supports x86 architecture
In order to achieve the performance targeted by the encoder, the specific CPU model listed above would need to be used when running the encoder. Otherwise, the encoder runs on any 5th Generation Intel Core™ Processors (formerly Broadwell) CPUs (Xeon E5-v4) or newer.
In order to run the highest resolution supported by the encoder, at least 64GB of RAM is required to run a single 8kp50/10-bit encode. The encoder application will display an error if the system does not have enough RAM to support such. The following table shows the minimum amount of RAM required for some standard resolutions of 10bit video per stream:
Resolution | Minimum Footprint (GB) |
---|---|
8k | 64 |
4k | 16 |
1080p | 6 |
720p/1080i | 4 |
480p | 3 |
Build Requirements
Build Instructions
<repo dir>\Build\windows
build.bat [2019|2017|2015]
[This will automatically generate and build the project]build.bat [ninja|msys|mingw|unix]
instead of the second commandBinaries Location
<repo dir>\Bin\Release
or <repo dir>\Bin\Debug
, depending on whether Debug or Release was selectedInstallation
For the binaries to operate properly, the following conditions have to be met:
SvtHevcEncApp.exe
and library SvtHevcEnc.dll
are in the same folder.SvtHevcEncApp.exe -i [in.yuv] -w [width] -h [height] -b [out.265]
ffmpeg -i [input.mp4] -nostdin -f rawvideo -pix_fmt yuv420p - | SvtHevcEncApp.exe -i stdin -n [number_of_frames_to_encode] -w [width] -h [height]
Build Requirements
Build Instructions
In the main repository, run either the provided build script
cd Build/linux
./build.sh [release|debug] [static|shared] [install]
# Requires sudo permission for installing
# Run './build.sh -h' to see the full help
or run the commands directly
mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=<Release|Debug> && make -j $(nproc) && sudo make install
Sample Binaries location
$REPO_DIR/Bin/Release
Installation
For the binaries to operate properly, the following conditions have to be met:
chmod +x SvtHevcEncApp
./SvtHevcEncApp -i [in.yuv] -w [width] -h [height] -b [out.265]
ffmpeg -i [input.mp4] -nostdin -f rawvideo -pix_fmt yuv420p - | ./SvtHevcEncApp -i stdin -n [number_of_frames_to_encode] -w [width] -h [height]
Refer to the guide here.
VBR BRC mode:
The VBR functionality implemented in SVT-HEVC Encoder is a demo feature to allow for an easier integration of product level BRC. The algorithm implemented would allow the encoder to generate an output bit stream matching, with a best effort, the target bitrate. The algorithm does not guarantee a certain maximum bitrate or maximum buffer size [does not follow HRD compliance]. When set to encode in VBR mode, the encoder does not produce a bit-exact output from one run to another.
Speed Control output:
The speed control functionality implemented for SVT-HEVC Encoder is a demo feature showcasing the capability of the library to adapt to the resources available on the fly in order to generate the best possible video quality while maintaining a real-time encoding speed. When set to use the Speed Control mode, the encoder does not produce a bit-exact output from one run to another.
Multi-instance support:
The multi-instance functionality is a demo feature implemented in the SVT-HEVC Encoder sample application as an example of one sample application using multiple encoding libraries. Encoding using the multi-instance support is limited to only 6 simultaneous streams. For example two channels encoding on Windows: SvtHevcEncApp.exe -nch 2 -c firstchannel.cfg secondchannel.cfg
We welcome community contributions to the SVT-HEVC Encoder. Thank you for your time! By contributing to the project, you agree to the license and copyright terms therein and to the release of your contribution under these terms.
Use the Issues tab on Github
#svt
on Freenode. Join via Freenode Webchat or use your favorite IRC client.
The notices and disclaimers can be found here
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型