• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

Build/H30-Oct-2020-444404

Config/H30-Oct-2020-7558

Docs/H03-May-2022-214139

Source/H30-Oct-2020-147,145111,560

ffmpeg_plugin/H30-Oct-2020-3,9013,794

gstreamer-plugin/H03-May-2022-1,310916

.gitignoreH A D30-Oct-2020183 2221

.travis.ymlH A D30-Oct-20207.6 KiB195194

LICENSE.mdH A D30-Oct-20202.8 KiB2613

NOTICES.mdH A D30-Oct-20202.3 KiB1311

README.mdH A D30-Oct-20208.1 KiB15398

STYLE.mdH A D30-Oct-20202.5 KiB9480

appveyor.ymlH A D30-Oct-20203.7 KiB9284

README.md

1# Scalable Video Technology for VP9 Encoder (SVT-VP9 Encoder)
2[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/OpenVisualCloud/SVT-VP9?branch=master&svg=true)](https://ci.appveyor.com/project/OpenVisualCloud/SVT-VP9)
3[![Travis Build Status](https://travis-ci.org/OpenVisualCloud/SVT-VP9.svg?branch=master)](https://travis-ci.org/OpenVisualCloud/SVT-VP9)
4[![Coverage Status](https://coveralls.io/repos/github/OpenVisualCloud/SVT-VP9/badge.svg?branch=master)](https://coveralls.io/github/OpenVisualCloud/SVT-VP9?branch=master)
5
6The Scalable Video Technology for VP9 Encoder (SVT-VP9 Encoder) is a VP9-compliant encoder library core. The SVT-VP9 Encoder development is a work-in-progress targeting performance levels applicable to both VOD and Live encoding/transcoding video applications.
7
8The SVT-VP9 Encoder is being optimized to achieve excellent performance levels currently supporting 10 density-quality presets (please refer to the user guide for more details) on a system with a dual Intel® Xeon® Scalable processor targeting:
9
10- Real-time encoding of up to two 4Kp60 streams on the Gold 6140 with M8.
11
12SVT-VP9 Encoder also supports 3 modes:
13
14- A visually optimized mode for visual quality (-tune 0)
15
16- An PSNR/SSIM optimized mode for PSNR / SSIM benchmarking (-tune 1 (Default setting))
17
18- An VMAF optimized mode for VMAF benchmarking (-tune 2)
19
20## License
21
22SVT-VP9 Encoder is licensed under the OSI-approved BSD+Patent license. See [LICENSE](LICENSE.md) for details.
23
24## Documentation
25
26More details about the SVT-VP9 Encoder usage can be found under:
27-   [svt-vp9-encoder-user-guide](Docs/svt-vp9_encoder_user_guide.md)
28
29## System Requirements
30
31### Operating System
32
33SVT-VP9 Encoder 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:
34
35* __Windows* Operating Systems (64-bit):__
36
37    -  Windows* Server 2016
38
39* __Linux* Operating Systems (64-bit):__
40
41    -  Ubuntu* 16.04 Server LTS
42
43    -  Ubuntu* 18.04 Server LTS
44
45### Hardware
46
47The SVT-VP9 Encoder library supports the x86 architecture
48
49* __CPU Requirements__
50
51In order to achieve the performance targeted by the SVT-VP9 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™ processor, (Intel® Xeon® CPUs, E5-v4 or newer).
52
53* __RAM Requirements__
54
55In order to run the highest resolution supported by the SVT-VP9 Encoder, at least 10GB of RAM is required to run a 4k 8bit stream multi-threading on an 8180 system. The SVT-VP9 Encoder application will display an error if the system does not have enough RAM to support this. The following table shows the minimum amount of RAM required for some standard resolutions of 8bit video per stream:
56
57|        Resolution         | Minimum Footprint (GB)|
58|-----------------------|-----------------------|
59|        4k                 |           10             |
60|        1080p             |            4          |
61|        720p             |            3          |
62|        480p             |            2          |
63
64## Build and Install
65
66### Windows* Operating Systems (64-bit):
67
68- __Build Requirements__
69  - Visual Studio* 2017 (download [here](https://www.visualstudio.com/vs/older-downloads/)) or 2019 (download [here](https://visualstudio.microsoft.com/downloads/))
70  - CMake 3.14 or later (download [here](https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4-win64-x64.msi))
71  - YASM Assembler version 1.2.0 or later
72    - Download the yasm exe from the following [link](http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win64.exe)
73    - Rename yasm-1.3.0-win64.exe to yasm.exe
74    - Copy yasm.exe into a location that is in the PATH environment variable
75
76* __Build Instructions__
77    -    Generate the Visual Studio* 2017 project files by following the steps below cd Build\windows
78        -    run <u>generate_vs17.bat</u> [such would generate the visual studio project files]
79    -    Open the "<u>svt-vp9.sln</u>" using Visual Studio* 2017 and click on Build -- > Build Solution
80
81* __Binaries Location__
82    -   Binaries can be found under <repo dir>\Bin/Release or <repo dir>\Bin/Debug, depending on whether Debug or Release were selected in the build mode
83
84* __Installation__
85-    For the binaries to operate properly on your system, the following conditions have to be met:
86    -    On any of the Windows* Operating Systems listed in the OS requirements section, install Visual Studio* 2017
87    -    Once the installation is complete, copy the binaries to a location making sure that both the sample application "<u>SvtVp9EncApp.exe</u>” and library "<u>SvtVp9Enc.dll</u>” are in the same folder.
88    -    Open the command prompt window at the chosen location and run the sample application to encode.
89        > SvtVp9EncApp.exe -i [in.yuv] -w [width] -h [height] -b [out.ivf].
90    -    Sample application supports reading from pipe. E.g:
91        > ffmpeg -i [input.mp4] -nostdin -f rawvideo -pix_fmt yuv420p - | SvtVp9EncApp.exe -i stdin -n [number_of_frames_to_encode] -w [width] -h [height].
92
93### Linux* Operating Systems (64-bit):
94
95* __Build Requirements__
96     -    GCC 5.4.0 or later
97     -    CMake 3.5.1 or later
98     -    YASM Assembler version 1.2.0 or later
99
100* __Build Instructions__
101     - `./Build/linux/build.sh <release | debug>` (if none specified, both release and debug will be built)
102     - To build a static library and binary, append `static`
103     - Additional options can be found by typing `./Build/linux/build.sh --help`
104
105* __Sample Binaries location__
106     -    Binaries can be found under Bin/Release and / or Bin/Debug
107
108* __Installation__
109For the binaries to operate properly on your system, the following conditions have to be met:
110    -    On any of the Linux* Operating Systems listed above, copy the binaries under a location of your choice.
111    -    Change the permissions on the sample application “<u>SvtVp9EncApp</u>” executable by running the         command:
112        >chmod +x SvtVp9EncApp
113    -    cd into your chosen location
114    -    Run the sample application to encode.
115        >    ./SvtVp9EncApp -i [in.yuv] -w [width] -h [height] -b [out.ivf].
116    -    Sample application supports reading from pipe. E.g:
117        >ffmpeg -i [input.mp4] -nostdin -f rawvideo -pix_fmt yuv420p - | ./SvtVp9EncApp -i stdin -n [number_of_frames_to_encode] -w [width] -h [height].
118
119## How to evaluate by ready-to-run executables with docker
120
121Refer to the guide [here](https://github.com/OpenVisualCloud/Dockerfiles/blob/master/doc/svt.md#Evaluate-SVT).
122
123## Demo features and limitations
124
125-  **Multi-instance support:** The multi-instance functionality is a demo feature implemented in the SVT-VP9 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: SvtVp9EncApp.exe -nch 2 -c firstchannel.cfg secondchannel.cfg
126-  **Features enabled:** The library will display an error message any feature combination that is not currently supported.
127
128## How to Contribute
129
130We welcome community contributions to the SVT-VP9 Encoder. Thank you for your time! By contributing to the project, you agree to the license and copyright terms in the OSI-approved BSD+Patent license and to the release of your contribution under these terms. See [LICENSE](LICENSE.md) for details.
131
132### Contribution process
133
134-  Follow the [coding guidelines](STYLE.md)
135
136-  Validate that your changes do not break a build
137
138-  Perform smoke tests and ensure they pass
139
140-  Submit a pull request for review to the maintainer
141
142### How to Report Bugs and Provide Feedback
143
144Use the [Issues](https://github.com/OpenVisualCloud/SVT-VP9/issues) tab on Github. To avoid duplicate issues, please make sure you go through the existing issues before logging a new one.
145
146## IRC
147
148`#svt` on Freenode. Join via [Freenode Webchat](https://webchat.freenode.net/?channels=svt) or use your favorite IRC client.
149
150## Notices and Disclaimers
151
152The notices and disclaimers can be found [here](NOTICES.md)
153