All Projects → OpenVisualCloud → Svt Hevc

OpenVisualCloud / Svt Hevc

Licence: other
SVT HEVC encoder. Scalable Video Technology (SVT) is a software-based video coding technology that is highly optimized for Intel® Xeon® processors. Using the open source SVT-HEVC encoder, it is possible to spread video encoding processing across multiple Intel® Xeon® processors to achieve a real advantage of processing efficiency.

Programming Languages

c
50402 projects - #5 most used programming language

Labels

Projects that are alternatives of or similar to Svt Hevc

Heif Utility
HEIF Utility - View/Convert Apple HEIF images on Windows.
Stars: ✭ 277 (-23.69%)
Mutual labels:  hevc, h265
Node Video Lib
Node.js Video Library / MP4 & FLV parser / MP4 builder / HLS muxer
Stars: ✭ 264 (-27.27%)
Mutual labels:  hevc, h265
Voukoder
Provides an easy way to include the FFmpeg encoders in other windows applications.
Stars: ✭ 436 (+20.11%)
Mutual labels:  hevc, h265
smart rtmpd
RTMP server, smart, compact, high performance(c, c++), high concurrency, easy to maintain, easy to deploy, (supports multiple operating systems Windows and Linux, ARM, FreeBSD)
Stars: ✭ 159 (-56.2%)
Mutual labels:  hevc, h265
RDPlot
Tool for plotting rd curves from output of video coding test model software
Stars: ✭ 22 (-93.94%)
Mutual labels:  hevc, h265
Yuview
The Free and Open Source Cross Platform YUV Viewer with an advanced analytics toolset
Stars: ✭ 665 (+83.2%)
Mutual labels:  hevc, h265
Kvazaar
An open-source HEVC encoder
Stars: ✭ 493 (+35.81%)
Mutual labels:  hevc, h265
demuxer
A tool for demux ts/mp4/flv by typescript. Support HEVC/AVC/AAC codec
Stars: ✭ 108 (-70.25%)
Mutual labels:  hevc, h265
Patch
Something could be public patches
Stars: ✭ 120 (-66.94%)
Mutual labels:  hevc, h265
Testing Video
Generator of test video files for testing your media playback devices and calibrate TV sets
Stars: ✭ 70 (-80.72%)
Mutual labels:  hevc, h265
uci
Ultra Compact Image (UCI)
Stars: ✭ 79 (-78.24%)
Mutual labels:  hevc, h265
Gitlhevcanalyzer
Gitl HEVC/H.265 Analyzer based on Qt. Custom filters supported.
Stars: ✭ 361 (-0.55%)
Mutual labels:  hevc, h265
libheif-sharp
Provides .NET bindings for libheif.
Stars: ✭ 30 (-91.74%)
Mutual labels:  hevc
yangwebrtc
Webrtc SDK for C++
Stars: ✭ 257 (-29.2%)
Mutual labels:  h265
xin26x
Video Encoder for Now and Next Decade
Stars: ✭ 74 (-79.61%)
Mutual labels:  hevc
colab-ffmpeg-cuda
FFmpeg build with CUDA support for Linux (especially for Google Colab)
Stars: ✭ 40 (-88.98%)
Mutual labels:  h265
flvAnalyser
FLV v1.0 analyser
Stars: ✭ 76 (-79.06%)
Mutual labels:  hevc
Zoneminder
ZoneMinder is a free, open source Closed-circuit television software application developed for Linux which supports IP, USB and Analog cameras.
Stars: ✭ 3,450 (+850.41%)
Mutual labels:  h265
kvazzup
Open software for HEVC video calls
Stars: ✭ 30 (-91.74%)
Mutual labels:  hevc
VIDEOconvertor
A stable and Fast telegram video convertor bot which can encode into different libs and resolution, compress videos, convert video into audio and other video formats, rename with thumbnail support, generate screenshot and trim videos.
Stars: ✭ 180 (-50.41%)
Mutual labels:  hevc

Scalable Video Technology for HEVC Encoder (SVT-HEVC Encoder)

AppVeyor Build Status Travis Build Status


Join Hackathon Open Your Mind to Endless Possibilities
Registration: Jan 11 - March 12, 2021


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).

License

Scalable Video Technology is licensed under the OSI-approved BSD+Patent license. See LICENSE for details.

Documentation

More details about the encoder usage can be found under:

System Requirements

Operating System

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):

    • Windows Server 2016
  • Linux* Operating Systems (64-bit):

    • Ubuntu 16.04 Server LTS

    • Ubuntu 18.04 Server LTS

    • CentOS 7.4/7.5/7.6

Hardware

The SVT-HEVC Encoder library supports x86 architecture

  • CPU Requirements

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.

  • RAM Requirements

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 and Install

Windows* Operating Systems (64-bit)

  • Build Requirements

    • Visual Studio* 2017 (download here) or 2019 (download here)
    • CMake 3.14 or later (download here)
    • YASM Assembler version 1.2.0 or later
      • Download the yasm exe from the following link
      • Rename yasm-1.3.0-win64.exe to yasm.exe
      • Copy yasm.exe into a location that is in the PATH environment variable
  • Build Instructions

    • Build the project by following the steps below in a windows command prompt:
      • In the main repository directory, cd to <repo dir>\Build\windows
      • Run build.bat [2019|2017|2015] [This will automatically generate and build the project]
    • To Build the project using a generator other than Visual Studio
      • run build.bat [ninja|msys|mingw|unix] instead of the second command
      • Note: These are not officially supported and thus are not displayed in the help message.
  • Binaries Location

    • Binaries can be found under <repo dir>\Bin\Release or <repo dir>\Bin\Debug, depending on whether Debug or Release was selected
  • Installation
    For the binaries to operate properly, the following conditions have to be met:

    • On any of the Windows* Operating Systems listed in the OS requirements section, install Visual Studio* 2017 or 2019
    • Once the build is complete, copy the binaries to a location making sure that both the application SvtHevcEncApp.exe and library SvtHevcEnc.dll are in the same folder.
    • Open the command prompt at the chosen location and run the application to encode. SvtHevcEncApp.exe -i [in.yuv] -w [width] -h [height] -b [out.265]
    • The application also supports reading from pipe. E.g. ffmpeg -i [input.mp4] -nostdin -f rawvideo -pix_fmt yuv420p - | SvtHevcEncApp.exe -i stdin -n [number_of_frames_to_encode] -w [width] -h [height]

Linux* Operating Systems (64-bit)

  • Build Requirements

    • GCC 5.4.0 or later
    • CMake 3.5.1 or later
    • YASM Assembler version 1.2.0 or later
  • 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

    • Binaries can be found under $REPO_DIR/Bin/Release
  • Installation
    For the binaries to operate properly, the following conditions have to be met:

    • On any of the Linux* Operating Systems listed above, copy the binaries under a location of your choice.
    • Change the permissions on the sample application “SvtHevcEncApp” executable by running the command: chmod +x SvtHevcEncApp
    • cd into your chosen location
    • Run the sample application to encode. ./SvtHevcEncApp -i [in.yuv] -w [width] -h [height] -b [out.265]
    • Sample application supports reading from pipe. E.g. ffmpeg -i [input.mp4] -nostdin -f rawvideo -pix_fmt yuv420p - | ./SvtHevcEncApp -i stdin -n [number_of_frames_to_encode] -w [width] -h [height]

How to evaluate by ready-to-run executables with docker

Refer to the guide here.

Demo features and limitations

  • 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

How to Contribute

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.

Contribution process

  • Follow the coding_guidelines
  • Validate that your changes do not break a build
  • Perform smoke tests and ensure they pass
  • Submit a pull request for review to the maintainer

How to Report Bugs and Provide Feedback

Use the Issues tab on Github

IRC

#svt on Freenode. Join via Freenode Webchat or use your favorite IRC client.

Notices and Disclaimers

The notices and disclaimers can be found here

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].