Compare commits
287 Commits
release-(v
...
master
Author | SHA1 | Date | |
---|---|---|---|
f9b3465cdd | |||
96c054eddc | |||
ccc848b4a0 | |||
0946e98ade | |||
a80babb58a | |||
163a20c770 | |||
b1bff8bf45 | |||
622ab3868a | |||
0f34f3047f | |||
18f073413b | |||
f6d4293142 | |||
5e63912a37 | |||
b2b262a647 | |||
6f8ac097ab | |||
06ce4212df | |||
53f8b6a06d | |||
32d5c36c75 | |||
d7704155d5 | |||
0257446458 | |||
1b182dd96a | |||
1e98af40a2 | |||
1f84ec278c | |||
3c1bc1cfdc | |||
c59b6f88fa | |||
4ba392d261 | |||
6bfb8ce310 | |||
c8280dc013 | |||
7f55c83700 | |||
1ae2a1c8d8 | |||
8f3975d25b | |||
2dd1f0076e | |||
6f86f97bb3 | |||
92c3391e9b | |||
3a52eda9a1 | |||
6b4a657be0 | |||
246ed7bf83 | |||
231bf4e9bc | |||
f0c8eed75d | |||
280320acab | |||
696cbee08a | |||
76bcd1a69f | |||
a1fea76b65 | |||
5df6b94bd5 | |||
bdc0726a88 | |||
11d93ef031 | |||
eeb42ed9fa | |||
fa4ef02d58 | |||
13f2aa8977 | |||
e1e65aa40a | |||
d0050a985b | |||
3572f98718 | |||
5b584db04d | |||
cead6aa405 | |||
e0397d1db9 | |||
422a6bce1f | |||
4322bad457 | |||
8c7c198aca | |||
b6e79a5827 | |||
1e1a586fb8 | |||
7c0bea5b39 | |||
e1ca71429f | |||
3ab7dae6a5 | |||
cf6683b116 | |||
f8121aba80 | |||
3e0a31fb6d | |||
768311d0d8 | |||
e96746faf0 | |||
15acfdd2c6 | |||
154afaa287 | |||
0376961c72 | |||
eeea4a477d | |||
01101e95e0 | |||
b20a7499e6 | |||
b91b477b66 | |||
9322766d93 | |||
57ed49f86a | |||
ac23d2accf | |||
a4d4b6b3d3 | |||
b058a6ba0d | |||
a332128fdc | |||
1dc5734ada | |||
e9a9cd8a15 | |||
7fc32046fa | |||
006d8a1427 | |||
db942ac2b3 | |||
bca7169e88 | |||
4fff11f07c | |||
e8e071e2fb | |||
b172512390 | |||
d228ab43e2 | |||
5e997805e7 | |||
4abde3c3b4 | |||
bc767c1cd3 | |||
98f05a57c9 | |||
8ce4557b30 | |||
217eca4919 | |||
404c7d0cc4 | |||
b674f48a7b | |||
1c9eb424e6 | |||
65e2003f78 | |||
a13b2f2e52 | |||
52e05b7e9a | |||
2e1ed93d21 | |||
ef06348596 | |||
f29eaecbf3 | |||
32a429f3f6 | |||
c97c61d14b | |||
598223240c | |||
d31979f8f5 | |||
14e9dbee6d | |||
6aa10171e8 | |||
36afaaa3d1 | |||
9092f22605 | |||
490efb4d79 | |||
255aa993a4 | |||
e763818bea | |||
2105d56fe0 | |||
700afeaebb | |||
80fa143468 | |||
cd547c3771 | |||
7fdff2d944 | |||
7e461f1f5a | |||
61860c0dfb | |||
19b912bff1 | |||
e5dcb6a531 | |||
eb463edc3f | |||
6e62fa875b | |||
b882e0884d | |||
bac3c1a5c8 | |||
e1017779e8 | |||
7460e041cc | |||
ea367e87a3 | |||
821f292e90 | |||
2a43c700cc | |||
6c830f1d2d | |||
9ce861fc44 | |||
a81f70bdc2 | |||
687e8166ce | |||
17b5fcad5f | |||
0519c25213 | |||
906492c2ab | |||
e5e98d4a52 | |||
dd14380a62 | |||
8bdae99d0e | |||
2d73ac674c | |||
5773164f9e | |||
603b9b2d8e | |||
15b55fe3ba | |||
2b2507c26d | |||
12b41f8d28 | |||
05b78e5ee4 | |||
15b4b2f1ae | |||
1813efbbc4 | |||
ce925b1d59 | |||
b6dac5c38b | |||
dbddb5d7cf | |||
89f1c4e56a | |||
5c234c2337 | |||
4fa57164cb | |||
34f4ba7283 | |||
390e223cb7 | |||
d7aeaf25a4 | |||
dd478ffcfe | |||
b3bb8b9cc6 | |||
8168d1d3b2 | |||
bd8b08f333 | |||
3de0f0f052 | |||
c61051e736 | |||
8def33f30c | |||
058ac29758 | |||
d7745dccc4 | |||
ee00ad2988 | |||
187348f5c1 | |||
fc101d4ac0 | |||
652e83a3a7 | |||
074d666174 | |||
0c66974aa1 | |||
f64866575b | |||
bb4551479b | |||
79a0e3350f | |||
16b7e41353 | |||
b70ed5aa8c | |||
46cc3ea449 | |||
06f986b35f | |||
7b7eb16814 | |||
304b28907d | |||
c110293c94 | |||
c69b9fca2c | |||
ac11491598 | |||
0ec8889139 | |||
85bf1dfaf0 | |||
3e839ae835 | |||
2d5dd27e25 | |||
34abd2fe34 | |||
024154dc9a | |||
6a52ac8635 | |||
dabe7e8e7b | |||
d15b67b810 | |||
a479cc7164 | |||
d241639da0 | |||
e29406c29e | |||
834d81ce9a | |||
56c781a27c | |||
732c57d72b | |||
e36f3b5cda | |||
c126ed27c5 | |||
ca233bd5c6 | |||
bcd384aa29 | |||
21cb35698b | |||
b4cc7ffe4b | |||
324342c4a5 | |||
c06d6d5873 | |||
b970bdfc40 | |||
4f0d6a77b7 | |||
90b119ca97 | |||
fbd9a60fcd | |||
ad1753bda6 | |||
8cd01e2bc9 | |||
13daf065a8 | |||
b9b7f2c50a | |||
a4456a9f3d | |||
5852ee4d9b | |||
0f7dd026a0 | |||
f0e9e4327c | |||
a95ffd377a | |||
1b65197afc | |||
0b24b1b3bd | |||
527928968d | |||
20495e0cd8 | |||
2e58f18147 | |||
2c18168321 | |||
c504b2fe2b | |||
2e97d85065 | |||
5fe9666063 | |||
a5a70add8d | |||
2d50c27be3 | |||
d0be9a9c57 | |||
deb82de184 | |||
22751abc6e | |||
852035d1cf | |||
0069e4cbb8 | |||
e7a9ce3cfc | |||
9ea6acf6d3 | |||
780e8e1ec4 | |||
2f13e96764 | |||
56d947416e | |||
9278fe1180 | |||
4841008011 | |||
0a1e979867 | |||
50a922e6fa | |||
371ae3bba8 | |||
1662a7784d | |||
84059d6c30 | |||
fce103fb07 | |||
77cc4a3fa8 | |||
cb13525799 | |||
ea02c5e470 | |||
7ef85f00f8 | |||
a31c6903ec | |||
45b9323123 | |||
f1517d0bc8 | |||
63c166d5a4 | |||
29ecfe9361 | |||
9c8bc9c937 | |||
0d177d0940 | |||
d55c33e5d9 | |||
26ac03b755 | |||
7d2a51a328 | |||
5324e03ec7 | |||
4cc8c56fac | |||
cd1f379478 | |||
e3c02273b4 | |||
f47037a974 | |||
495b4390ff | |||
1230f1f3fd | |||
6fd5a8f5fa | |||
d3b38144af | |||
34d2579655 | |||
6464ef1de2 | |||
b17c6ba73a | |||
3b5b35c2ae | |||
e8cab91e18 | |||
2002f14ca9 | |||
f8ea38b457 | |||
fcdfde3d3f | |||
adc996e6e3 | |||
826745f85d |
1
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1 @@
|
||||
custom: ['https://paypal.me/martineesmaa']
|
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Community (such as matrix.org, Revolt & Discord)
|
||||
url: https://github.com/MartinEesmaa/VVCEasy#community
|
||||
about: >
|
||||
If you need an extra little help and wanted to be helped by anyone,
|
||||
you can join one of my server on matrix.org, Revolt or Discord.
|
2
.github/workflows/dotnet.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
|
27
.gitignore
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
WindowsVVC/Win32
|
||||
WindowsVVC/x64
|
||||
WindowsVVC/arm64
|
||||
MacOSVVC/arm64
|
||||
MacOSVVC/intel_x64
|
||||
LinuxVVC/arm*
|
||||
LinuxVVC/x*
|
||||
AndroidVVC/arm*
|
||||
AndroidVVC/x*
|
||||
BSDVVC/vv*
|
||||
|
||||
uvg266/Windows/Win32
|
||||
uvg266/Windows/x64
|
||||
uvg266/macOS/arm64
|
||||
uvg266/macOS/intel_x64
|
||||
uvg266/Linux/arm*
|
||||
uvg266/Linux/x*
|
||||
uvg266/BSD/uvg266
|
||||
|
||||
[Oo]bj/
|
||||
[Bb]in/
|
||||
vvdecWebPlayer/
|
||||
vvenc/
|
||||
vvdec/
|
||||
[Ii]nstall/
|
||||
|
||||
.vscode
|
BIN
7-Zip/7z.dll
BIN
7-Zip/7z.exe
1668
7-Zip/History.txt
@ -3,15 +3,16 @@
|
||||
License for use and distribution
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
7-Zip Copyright (C) 1999-2022 Igor Pavlov.
|
||||
7-Zip Copyright (C) 1999-2024 Igor Pavlov.
|
||||
|
||||
The licenses for files are:
|
||||
|
||||
1) 7z.dll:
|
||||
- 7z.dll:
|
||||
- The "GNU LGPL" as main license for most of the code
|
||||
- The "GNU LGPL" with "unRAR license restriction" for some code
|
||||
- The "BSD 3-clause License" for some code
|
||||
2) All other files: the "GNU LGPL".
|
||||
- The "BSD 2-clause License" for some code
|
||||
- All other files: the "GNU LGPL".
|
||||
|
||||
Redistributions in binary form must reproduce related license information from this file.
|
||||
|
||||
@ -20,8 +21,8 @@
|
||||
organization. You don't need to register or pay for 7-Zip.
|
||||
|
||||
|
||||
GNU LGPL information
|
||||
--------------------
|
||||
GNU LGPL information
|
||||
--------------------
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
@ -39,52 +40,107 @@
|
||||
|
||||
|
||||
|
||||
BSD 3-clause License
|
||||
--------------------
|
||||
BSD 3-clause License in 7-Zip code
|
||||
----------------------------------
|
||||
|
||||
The "BSD 3-clause License" is used for the code in 7z.dll that implements LZFSE data decompression.
|
||||
That code was derived from the code in the "LZFSE compression library" developed by Apple Inc,
|
||||
that also uses the "BSD 3-clause License":
|
||||
The "BSD 3-clause License" is used for the following code in 7z.dll
|
||||
1) LZFSE data decompression.
|
||||
That code was derived from the code in the "LZFSE compression library" developed by Apple Inc,
|
||||
that also uses the "BSD 3-clause License".
|
||||
2) ZSTD data decompression.
|
||||
that code was developed using original zstd decoder code as reference code.
|
||||
The original zstd decoder code was developed by Facebook Inc,
|
||||
that also uses the "BSD 3-clause License".
|
||||
|
||||
----
|
||||
Copyright (c) 2015-2016, Apple Inc. All rights reserved.
|
||||
Copyright (c) 2015-2016, Apple Inc. All rights reserved.
|
||||
Copyright (c) Facebook, Inc. All rights reserved.
|
||||
Copyright (c) 2023-2024 Igor Pavlov.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
Text of the "BSD 3-clause License"
|
||||
----------------------------------
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the distribution.
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
3. Neither the name of the copyright holder(s) nor the names of any contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
----
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
unRAR license restriction
|
||||
-------------------------
|
||||
BSD 2-clause License in 7-Zip code
|
||||
----------------------------------
|
||||
|
||||
The decompression engine for RAR archives was developed using source
|
||||
code of unRAR program.
|
||||
All copyrights to original unRAR code are owned by Alexander Roshal.
|
||||
The "BSD 2-clause License" is used for the XXH64 code in 7-Zip.
|
||||
|
||||
The license for original unRAR code has the following restriction:
|
||||
XXH64 code in 7-Zip was derived from the original XXH64 code developed by Yann Collet.
|
||||
|
||||
The unRAR sources cannot be used to re-create the RAR compression algorithm,
|
||||
which is proprietary. Distribution of modified unRAR sources in separate form
|
||||
or as a part of other software is permitted, provided that it is clearly
|
||||
stated in the documentation and source comments that the code may
|
||||
not be used to develop a RAR (WinRAR) compatible archiver.
|
||||
Copyright (c) 2012-2021 Yann Collet.
|
||||
Copyright (c) 2023-2024 Igor Pavlov.
|
||||
|
||||
Text of the "BSD 2-clause License"
|
||||
----------------------------------
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
---
|
||||
|
||||
|
||||
--
|
||||
Igor Pavlov
|
||||
|
||||
|
||||
unRAR license restriction
|
||||
-------------------------
|
||||
|
||||
The decompression engine for RAR archives was developed using source
|
||||
code of unRAR program.
|
||||
All copyrights to original unRAR code are owned by Alexander Roshal.
|
||||
|
||||
The license for original unRAR code has the following restriction:
|
||||
|
||||
The unRAR sources cannot be used to re-create the RAR compression algorithm,
|
||||
which is proprietary. Distribution of modified unRAR sources in separate form
|
||||
or as a part of other software is permitted, provided that it is clearly
|
||||
stated in the documentation and source comments that the code may
|
||||
not be used to develop a RAR (WinRAR) compatible archiver.
|
||||
|
||||
--
|
||||
|
BIN
7-Zip/Win32/7z.dll
Normal file
BIN
7-Zip/Win32/7z.exe
Normal file
BIN
7-Zip/arm64/7z.dll
Normal file
BIN
7-Zip/arm64/7z.exe
Normal file
@ -1,9 +1,9 @@
|
||||
7-Zip 22.01
|
||||
7-Zip 24.08
|
||||
-----------
|
||||
|
||||
7-Zip is a file archiver for Windows.
|
||||
|
||||
7-Zip Copyright (C) 1999-2022 Igor Pavlov.
|
||||
7-Zip Copyright (C) 1999-2024 Igor Pavlov.
|
||||
|
||||
The main features of 7-Zip:
|
||||
|
||||
@ -12,7 +12,7 @@ The main features of 7-Zip:
|
||||
- Packing / unpacking: 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM.
|
||||
- Unpacking only: APFS, AR, ARJ, Base64, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS,
|
||||
IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR,
|
||||
RPM, SquashFS, UDF, UEFI, VDI, VHD, VHDX, VMDK, XAR and Z.
|
||||
RPM, SquashFS, UDF, UEFI, VDI, VHD, VHDX, VMDK, XAR, Z and ZSTD.
|
||||
- Fast compression and decompression
|
||||
- Self-extracting capability for 7z format
|
||||
- Strong AES-256 encryption in 7z and ZIP formats
|
||||
|
BIN
7-Zip/x64/7z.dll
Normal file
BIN
7-Zip/x64/7z.exe
Normal file
@ -1,5 +0,0 @@
|
||||
9a7d1f454a2c934c80161fc11baa24977c8fb1e4cedd16177d9b12be08e4f353 AndroidUVG266-8bit.7z
|
||||
26ed38e0e6e41f30f5e7f896864098854580b118ec10b2006f0f16232ed4cd4f arm64/uvg266
|
||||
1d0b76e1deb70a984eff332d7d897f4945c4eb6d75737192bbd13b0c1e43294f armeabi/uvg266
|
||||
5bbb3acb88129ab0d89d5f9c9b7377b9203c898d45ce4ae0de9fefc776967d09 x86/uvg266
|
||||
462462d2924de5c174d272a743624c04cb64c5526040da3bb9331d32ffa4dacd x86_64/uvg266
|
@ -1,5 +0,0 @@
|
||||
3372c510c6312be64f61340fa65f833870d4d95f5130cb3706d1a51c0f73ed06 AndroidUVG266.7z
|
||||
f034dd53153ae447611a71d83fba52f8bfc42a395c3f17de7d9359b277c18d4b arm64/uvg266
|
||||
048b1cc9a263efa58382488be95f18b89e3dd69b00bb246d9f64853ea69c5c06 armeabi/uvg266
|
||||
b02ab7d45d2afb8e951ba5c59f1a93b70605eb0bda9b5e678956b849e01115be x86/uvg266
|
||||
dbf936a8b6ab080c8cf8ef359deb8e76042900fa0fc5b70d18ff9b3947873aa9 x86_64/uvg266
|
@ -1,21 +0,0 @@
|
||||
06433d77798118f6be007dc88180c13ff91346fe5e6432973c3e93447201f592 AndroidVVC.7z
|
||||
4e204e2fa609335eb910edb6b7fac3468a7c5e8e4c9f8231e1212f27f164341f arm64/vvdecapp
|
||||
92f8a09b498ae753e2a33dbe48d373800f9a84c60f04f8636857e68f1748e938 arm64/vvencapp
|
||||
297b8bbefc09374b6bef6b55a934be13ef589356a7210d03ac871eb41ab1f09c arm64/vvencFFapp
|
||||
8cbfd9bd51e37ac8108f3e17da9ee59142edf7a304cfabbf28e5e62027ccb02f arm64/vvencinterfacetest
|
||||
ddfc174a263d3459ad1dec2106215ba112a75888e0e8174b32948a9bfc712a73 arm64/vvenclibtest
|
||||
0d309211ac966cb69ca91fd9c18372d3b68097c5a01b413aca343fa0a9fc120d armeabi/vvdecapp
|
||||
3215b6eae21b7c2a2fb213dd7661cc1faf79f908bac5b3e026a71fca2e4bb5f2 armeabi/vvencapp
|
||||
9e946a6a34ec6f5aed2726952967580a7dde30f11144ae41e67fd502f3421aa1 armeabi/vvencFFapp
|
||||
2d478e43e8b469b95a756fc3c7542c58552832d5ad40254629a8ee6fff0fc23b armeabi/vvencinterfacetest
|
||||
ad319f631fafc4f179e7e96b5fe748e878d93df0fdba693b71a19d50dd3e4e53 armeabi/vvenclibtest
|
||||
4fc4745050fd960d02ec011f4081a7eef66b86fadbffbfde8dfa86a217607287 x86/vvdecapp
|
||||
5394e646b7342f7d70583cd4637590ec226c6ba0c8d5792b2dd0cadee68a4d60 x86/vvencapp
|
||||
0c8add8291339cfab61be9df7419e117623c61c6ddf22c9b4ba706b1c0f2a04b x86/vvencFFapp
|
||||
3a2abe2ef5e8355c935e29026a232ce9fd164eff0c2cf6c9e6757143a559af62 x86/vvencinterfacetest
|
||||
f82252ec16f200ae85864be79db7bb01cc5109d3fd9e55f30c07816f04c77c21 x86/vvenclibtest
|
||||
392b901221b24185a22e0610a75ee8122ae62eff8b96ef834157ab79fd4b38d5 x86_64/vvdecapp
|
||||
6432a59f904f5740ee44420aa2e06e439aa7f3c85c9c8d11ba2f76a4814d5983 x86_64/vvencapp
|
||||
23d9fb9e2ecc65bb06a73203e5db13bd31a1eda03d587e1a0cf0a10405829d54 x86_64/vvencFFapp
|
||||
cef66cc20cfb3485d3585b05d5ba63e6c33839e4687cc6173aa1cb6aa0650a21 x86_64/vvencinterfacetest
|
||||
75b4ca7932dbd2f375c562ba5891e808253dbe3bb4eebebd58146cf03523a66f x86_64/vvenclibtest
|
BIN
AndroidVVC/AndroidUVG266-8bit.7z
Normal file
5
AndroidVVC/AndroidUVG266-8bit.sha256
Normal file
@ -0,0 +1,5 @@
|
||||
d941622e1f51d323c557fd746529f0adb2a5f86091b0ba31c009a93fed7311b7 AndroidUVG266-8bit.7z
|
||||
e2be0d3349a5d1a37b5e85024ae8db2cce0d63251f4ef562c06edec2d06e9f2f arm64/uvg266
|
||||
56e588e81d8ab36108116f12421c1617822fd3894fdfd033bcf81d8dfe3fed28 armeabi/uvg266
|
||||
f1168a90bf075b3db9b6605ac4bd678799f1c90fc6a4e40501d8c3f9487c5b18 x86/uvg266
|
||||
9c02c5828e89c43a7663f680075e63abe38dcc754a6fefdba1b4f1f6d103fcb4 x86_64/uvg266
|
BIN
AndroidVVC/AndroidUVG266.7z
Normal file
5
AndroidVVC/AndroidUVG266.sha256
Normal file
@ -0,0 +1,5 @@
|
||||
a12e5a7efb28cdcaf5646a2e4ed3aa039c9de1eee518e10a459d770e67ba077c AndroidUVG266.7z
|
||||
bbb439c41183737b09ebcb6bca0652b673b07383da217905ff128fc086f899c4 arm64/uvg266
|
||||
6511750679f2e2fd956cf30e485bb731a000c8741cb8a84f239b78cd0f7f1ad3 armeabi/uvg266
|
||||
945fef12e27b66034b0070f85619448579299b0817e422feff1a0b16b7430bbe x86/uvg266
|
||||
f9bbb1105bac8c0f54e9e884b288bddb2e0d950d88c6087d38babc986a42bd7c x86_64/uvg266
|
25
AndroidVVC/AndroidVVC.sha256
Normal file
@ -0,0 +1,25 @@
|
||||
7a188dc44cda1f458966a2a67cbf1b06c0428d44f8a3f3a41da4d64dc3e0f684 AndroidVVC.7z
|
||||
1a336587d9e2dded21523918a68f6efde23877eac56b4994622d6633088b20bc arm64/vvdecapp
|
||||
4b4ec28a48a5f8ae849801932f32a821316030a87e1a32ed4804852bb461eb15 arm64/vvencapp
|
||||
bed4c6ad57e05dfbc7880cb43b1b42e3d49f9fc3cea92d7e773d731145fc59c7 arm64/vvencFFapp
|
||||
7932320f4625aaa1bef28d802b59d2824a2e0d83ca30f692ec2b521edfb1ff49 arm64/vvencinterfacetest
|
||||
1b32c2438c6725adb5f5d6f3fa8e7ecf2b21bbbc5022629448f6b523b7b0cb65 arm64/vvenclibtest
|
||||
972291075aee29057120d74fd8f29035b0b5d42d0bae5481be8cc9c9ab7dfc66 arm64/vvenc_unit_test
|
||||
41e4677ae360f9d597b6939d7cc8914f8ab2e647299e093c95cdf264de743ccb armeabi/vvdecapp
|
||||
bdfb3f724f61bd7a095e01e47b41b24b4a482bf853e3ce4e2b0d74686cf5fe8a armeabi/vvencapp
|
||||
3aadf2f49e38f89f0250d23871f620936d8c7cf861eabef15062b5043c7270fe armeabi/vvencFFapp
|
||||
4f261a0a003a2f1cf7d41c91f2f4d6a9edb97c78fd9d575e2f1cfe402292eb64 armeabi/vvencinterfacetest
|
||||
0f71b977522bc038b3230aff4d2fd5e78cffec63919de10728901e51ca375807 armeabi/vvenclibtest
|
||||
8dce757079061339974cde44559ee6b23d06041281e3b7d3cee89fb8c0faf8a2 armeabi/vvenc_unit_test
|
||||
4e5b3a2bf1a32582d2e4a3390a4261e2dbe282160e2d612115f9214d1e5dfc2e x86/vvdecapp
|
||||
6962e8eb7f70e1bd0cf49f3b24d3c6c440f59af794ceeb2d16fc2e3fdd486751 x86/vvencapp
|
||||
89eefcaf0ed43f454603e38d51b0c128b02c4c41666a9f87e1d6bb746e6ddc4d x86/vvencFFapp
|
||||
e549731dd36ed89ca4e39032cd87b99a62a22f5e895f32bf2d8e0b6c845ceb21 x86/vvencinterfacetest
|
||||
79b47af85b2870256e03fac06df8b0e3617f779ad38803b933c0c84ac5294256 x86/vvenclibtest
|
||||
085bd529472ffd4111b4dbdd6812f1f54fd0dcb119613cda6d8b48b91f5d5e6a x86/vvenc_unit_test
|
||||
d3bad14f404820ad73b63837e304ecb102e460c41f183179c3db36c53abb1d28 x86_64/vvdecapp
|
||||
95090f971f1f40332315070dab805b3d02815a3259d80e662f130cbe33e8a16a x86_64/vvencapp
|
||||
3de6281c55afadd14d6bec0d825b44a149c0fcccfc9ca48ff18405a1921945d6 x86_64/vvencFFapp
|
||||
940553a45a50fbbdf18559a47ebfd062a7164b54d12c3a40ec7b4d128bcee69e x86_64/vvencinterfacetest
|
||||
126c02588726e92a19b945b634c37de5023485478f267ae197973351885b6a83 x86_64/vvenclibtest
|
||||
721ccc974065ab90274ebd6200cc03482112d637e6d5fa7b0ad022679ffc118a x86_64/vvenc_unit_test
|
@ -1,6 +1,6 @@
|
||||
# Android vvdec/uvg266 applications (Termux app)
|
||||
|
||||
Requirements: Termux app with apk or F-Droid app. For uvg266/vvdecapp pipe, require FFmpeg on Termux app.
|
||||
Requirements: Termux app with apk or F-Droid app. For uvg266/vvdecapp pipe, it requires FFmpeg installed on Termux app.
|
||||
|
||||
See the screenshot of vvdecapp in Termux app:
|
||||
|
||||
@ -12,7 +12,7 @@ arm64 - API 21 (64-bit phones only)
|
||||
|
||||
armeabi - API 19 (32-bit phones)
|
||||
|
||||
x86 - API 21 (32-bit tablets only)
|
||||
x86 - API 19 (32-bit tablets only)
|
||||
|
||||
x86_64 - API 21 (64-bit tablets only)
|
||||
|
||||
@ -50,9 +50,9 @@ ffmpeg -i example.mp4 -f yuv4mpegpipe -pix_fmt yuv420p10 -strict -1 - | uvg266 -
|
||||
|
||||
For 8-bit uvg266 application, remove `-strict -1`, change from `yuv420p10` to `yuv420p` and remove `--input-bitdepth-10`.
|
||||
|
||||
When you want make device sleep during uvg266 encoding, tap Acquire wake lock on Termux notification.
|
||||
When you want make device sleep during uvg266 encoding, tap **Acquire wake lock** on Termux notification.
|
||||
|
||||
If uvg266 froze itself for a couple minutes without printing info, means finished, tap CTRL + C.
|
||||
If uvg266 froze itself for couple minutes without printing the info, it means finished, tap CTRL + C.
|
||||
|
||||
VVDEC might not decode with some uvg266 options (example uvg266 presets unplayable with vvdec: preset placebo & lossless.
|
||||
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
BIN
BSDVVC/BSDVVC.7z
Normal file
7
BSDVVC/BSDVVC.sha256
Normal file
@ -0,0 +1,7 @@
|
||||
ae56405ed933833d2efc0f9beaa1f587bb6906244fb7c4a7c34feea65c5da427 BSDVVC.7z
|
||||
a6825c66debebb9af1853635a76b5dc65bf81f52125ff2e830100dd2d030fc9b vvdecapp
|
||||
2673dd5d1333cbc60a058c8ad9190d55ac71ded73dfcbe34a1e4e97636ba9ece vvencapp
|
||||
65c0c10feee39a766cfbf209bace4f5e31829a12191b23798d88756e7d99a39d vvencFFapp
|
||||
c6ba6cc451d882d3e3272b1655ff1d56ac0fdb7d9004c6932b945bbda1c481cf vvencinterfacetest
|
||||
b43cc7afc413dc0d634e41d5e3ac13d757c2361dca79d06f848de1b5a1a1a8c3 vvenclibtest
|
||||
a0104a88e28b2a0e9768f9ec7a3895fe6b6f3debf756511bc92f7b4682f2d9e8 vvenc_unit_test
|
164
BuildFFmpeg.sh
Executable file
@ -0,0 +1,164 @@
|
||||
#!/bin/bash
|
||||
|
||||
printf "\033[33m"
|
||||
echo "Warning: It is deprecated, but you're welcome to use it anyway."
|
||||
printf "\033[39m"
|
||||
PREFIX="$(pwd)/buildffmpeg/prefix"
|
||||
echo "Note: Your prefix folder with full directory will be built: $PREFIX"
|
||||
case "$(uname -s)" in
|
||||
Linux*)
|
||||
OS="Linux"
|
||||
DISTRO=$(cat /etc/*release | grep ^ID= | cut -d= -f2 | tr -d '"')
|
||||
echo "Building FFmpeg VVCEasy $OS version..."
|
||||
echo "Downloading system required packages..."
|
||||
|
||||
case $DISTRO in
|
||||
debian|ubuntu)
|
||||
echo "Detected Debian/Ubuntu"
|
||||
sudo apt update
|
||||
echo "Installing dependencies for Debian/Ubuntu..."
|
||||
sudo apt install build-essential cmake nasm autoconf pkg-config \
|
||||
python3-setuptools ninja-build python3-pip libtool git wget xxd -y
|
||||
sudo pip3 install meson
|
||||
;;
|
||||
arch)
|
||||
echo "Detected Arch Linux"
|
||||
sudo pacman -Sy
|
||||
echo "Installing dependencies for Arch..."
|
||||
sudo pacman -S --noconfirm base-devel cmake nasm autoconf pkg-config \
|
||||
python-setuptools ninja python-pip libtool git wget xxd
|
||||
sudo pip install meson
|
||||
;;
|
||||
fedora)
|
||||
echo "Detected Fedora"
|
||||
sudo dnf update -y
|
||||
echo "Installing dependencies for Fedora..."
|
||||
sudo dnf install -y gcc gcc-c++ cmake nasm autoconf pkgconfig \
|
||||
python3-setuptools ninja-build python3-pip libtool git wget xxd
|
||||
sudo pip3 install meson
|
||||
;;
|
||||
gentoo)
|
||||
echo "Detected Gentoo"
|
||||
sudo emerge --sync
|
||||
echo "Installing dependencies for Gentoo..."
|
||||
sudo emerge -av dev-util/cmake media-libs/nasm sys-devel/autoconf \
|
||||
dev-python/setuptools dev-util/ninja dev-python/pip sys-libs/libtool \
|
||||
dev-vcs/git net-misc/wget app-editors/vim
|
||||
sudo pip3 install meson
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported Linux distribution: $DISTRO"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
MSYS*|MINGW*)
|
||||
OS="Windows"
|
||||
extra="--disable-w32threads --enable-libcodec2"
|
||||
echo "Building FFmpeg VVCEasy Windows version..."
|
||||
echo "Updating and upgrading MSYS2 packages..."
|
||||
pacman -Sy
|
||||
echo "Installing MSYS2 packages..."
|
||||
pacman -S python git nasm vim wget xxd $MINGW_PACKAGE_PREFIX-{toolchain,cmake,autotools,meson,ninja}
|
||||
;;
|
||||
Darwin*)
|
||||
OS="macOS"
|
||||
echo "Building FFmpeg VVCEasy macOS version..."
|
||||
echo "Checking for Brew packages requirements..."
|
||||
|
||||
if ! command -v brew &> /dev/null; then
|
||||
echo "Homebrew is not installed. Please install Homebrew and try again."
|
||||
exit 1
|
||||
else
|
||||
brew install ffmpeg cmake nasm opus meson autoconf automake wget ninja
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Only for Windows, macOS & Linux are only supported"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
clonepull() {
|
||||
if [ ! -d "$1" ]; then
|
||||
git clone --depth=1 "$2" "$1"
|
||||
else
|
||||
git -C "$1" pull
|
||||
fi
|
||||
}
|
||||
|
||||
[ ! -d buildffmpeg ] && mkdir buildffmpeg
|
||||
cd buildffmpeg
|
||||
|
||||
[ ! -d prefix ] && mkdir prefix
|
||||
|
||||
clonepull FFmpeg-VVC https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
clonepull vvenc https://github.com/fraunhoferhhi/vvenc
|
||||
clonepull vvdec https://github.com/fraunhoferhhi/vvdec
|
||||
clonepull fdk-aac https://github.com/mstorsjo/fdk-aac
|
||||
clonepull SDL https://github.com/libsdl-org/SDL -b SDL2
|
||||
clonepull libxml2 https://github.com/gnome/libxml2
|
||||
clonepull opus https://github.com/xiph/opus
|
||||
clonepull libjxl https://github.com/libjxl/libjxl
|
||||
clonepull zimg https://github.com/sekrit-twc/zimg
|
||||
clonepull soxr https://github.com/chirlu/soxr
|
||||
clonepull dav1d https://code.videolan.org/videolan/dav1d
|
||||
clonepull vmaf https://github.com/netflix/vmaf
|
||||
|
||||
gitsub="submodule update --init --recursive --depth 1 --recommend-shallow"
|
||||
|
||||
if [ $OS = "Windows" ]; then
|
||||
clonepull codec2 https://github.com/drowe67/codec2
|
||||
fi
|
||||
|
||||
if [ ! -d libjxl ]; then
|
||||
sed -i 's/-lm/-lm -lstdc++/g' libjxl/lib/jxl/libjxl.pc.in libjxl/lib/threads/libjxl_threads.pc.in
|
||||
git -C libjxl $gitsub
|
||||
fi
|
||||
|
||||
if [ ! -d zimg ]; then
|
||||
git -C zimg $gitsub
|
||||
wget -q -O - https://raw.githubusercontent.com/m-ab-s/mabs-patches/master/zimg/0001-libm_wrapper-define-__CRT__NO_INLINE-before-math.h.patch | git -C zimg apply
|
||||
fi
|
||||
|
||||
make="make install-r install-prefix=$PREFIX"
|
||||
autogen="./autogen.sh && ./configure --prefix=$PREFIX --enable-static --disable-shared && make install -j $(nproc)"
|
||||
cmakeoptions="-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX -DBUILD_SHARED_LIBS=OFF -B build"
|
||||
mesonoptions="-Ddefault_library=static -Dprefix=$PREFIX -Denable_docs=false"
|
||||
|
||||
for MKBUILD in vmaf/libvmaf dav1d; do
|
||||
mkdir -p "$MKBUILD"/build
|
||||
done
|
||||
|
||||
cd vvenc && $make && cd ..
|
||||
cd vvdec && $make && cd ..
|
||||
cd fdk-aac && $autogen && cd ..
|
||||
cd libxml2 && $autogen && cd ..
|
||||
cd opus && CFLAGS="-O2 -D_FORTIFY_SOURCE=0" LDFLAGS="-flto -s" $autogen && cd ..
|
||||
cd libjxl && cmake $cmakeoptions -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_{BENCHMARK,MANPAGES,EXAMPLES,DOXYGEN}=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=ON -G Ninja && ninja -C build install && cd ..
|
||||
cd vmaf/libvmaf/build && CFLAGS="-msse2 -mfpmath=sse -mstackrealign" meson -Denable_tests=false -Denable_float=true $mesonoptions .. && ninja install && cd ../../..
|
||||
cd SDL && cmake $cmakeoptions && make install -C build -j $(nproc) && cd ..
|
||||
cd zimg && $autogen && cd ..
|
||||
cd soxr && cmake -D{WITH_{LSR_BINDINGS,OPENMP},BUILD_TESTS}=off $cmakeoptions && cmake --build build -j $(nproc) --target install && cd ..
|
||||
cd dav1d/build && meson $mesonoptions .. && ninja install && cd ../..
|
||||
|
||||
sed -i 's/-lm/-lm -lstdc++/g' $PREFIX/lib/pkgconfig/libvmaf.pc
|
||||
|
||||
if [ "$OS" = "Windows" ]; then
|
||||
cd codec2
|
||||
sed -i 's|if(WIN32)|if(FALSE)|g' CMakeLists.txt
|
||||
grep -ERl "\b(lsp|lpc)_to_(lpc|lsp)" --include="*.[ch]" | \
|
||||
xargs -r sed -ri "s;((lsp|lpc)_to_(lpc|lsp));c2_\1;g"
|
||||
cmake -B build $cmakeoptions -D{UNITTEST,INSTALL_EXAMPLES}=off -G "MinGW Makefiles"
|
||||
cmake --build build -j $nproc --target install
|
||||
cd ..
|
||||
fi
|
||||
|
||||
cd FFmpeg-VVC
|
||||
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
|
||||
./configure --prefix=$PREFIX --enable-{static,pic,sdl2} --pkg-config-flags="--static" --extra-ldexeflags="-static" \
|
||||
--enable-lib{fdk-aac,vvenc,vvdec,xml2,opus,dav1d,jxl,zimg,vmaf,soxr} $extra --extra-version=VVCEasy && \
|
||||
make -j
|
||||
cd ..
|
||||
echo It is ready to go for prebuilt binaries of FFmpeg-VVC, you need to go directory called FFmpeg-VVC.
|
||||
echo "- 2024 Martin Eesmaa (VVCEasy, MIT License)"
|
136
BuildVVC.sh
Executable file
@ -0,0 +1,136 @@
|
||||
#!/bin/bash
|
||||
OS=$(uname)
|
||||
DISTRO=""
|
||||
|
||||
# Detect Linux distribution
|
||||
if [ "$OS" = "Linux" ]; then
|
||||
if [ -f /etc/os-release ]; then
|
||||
DISTRO=$(awk -F= '/^ID=/{print $2}' /etc/os-release)
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Martin Eesmaa / VVC Compiler (vvenc and vvdec)"
|
||||
|
||||
if [ "$OS" = "Linux" ]; then
|
||||
echo "You're running on $OS with distribution $DISTRO of bash script version to compile VVC binaries"
|
||||
else
|
||||
echo "You're running on $OS of bash script version to compile VVC binaries"
|
||||
fi
|
||||
|
||||
if [ "$OS" = "SunOS" ]; then
|
||||
echo "Sorry, SunOS like Oracle Solaris is not supported due to various error compilations for compiling VVC binaries."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Checking and installing required packages..."
|
||||
|
||||
setup_debian() {
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install build-essential cmake git -y
|
||||
}
|
||||
|
||||
setup_fedora() {
|
||||
sudo dnf update -y
|
||||
sudo dnf install cmake gcc gcc-c++ make git -y
|
||||
}
|
||||
|
||||
setup_arch() {
|
||||
sudo pacman -Syu --noconfirm
|
||||
sudo pacman -S --noconfirm base-devel cmake git
|
||||
}
|
||||
|
||||
setup_gentoo() {
|
||||
sudo emerge --sync
|
||||
sudo emerge cmake git
|
||||
}
|
||||
|
||||
setup_macos() {
|
||||
echo "Please make sure Xcode is installed in your Applications."
|
||||
if ! command -v brew &> /dev/null; then
|
||||
echo "Homebrew is not installed. Please install Homebrew and rerun the script."
|
||||
exit 1
|
||||
fi
|
||||
if ! brew list | grep -q cmake; then
|
||||
echo "Installing cmake..."
|
||||
brew install cmake
|
||||
fi
|
||||
}
|
||||
|
||||
setup_msys64() {
|
||||
pacman -Syu --noconfirm
|
||||
pacman -S --noconfirm base-devel cmake git
|
||||
}
|
||||
|
||||
setup_freebsd() {
|
||||
pkg update && pkg upgrade -y
|
||||
pkg install -y cmake git gmake
|
||||
}
|
||||
|
||||
build_repos() {
|
||||
|
||||
for clone in vvenc vvdec; do
|
||||
if [ ! -d $clone ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/$clone
|
||||
else
|
||||
git -C $clone pull
|
||||
fi
|
||||
done
|
||||
|
||||
for REPO in vvenc vvdec; do
|
||||
cd $REPO
|
||||
mkdir -p build && cd build
|
||||
if [ "$OS" = "Darwin" ]; then
|
||||
CORES=$(sysctl -n hw.ncpu || echo 1)
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
cmake --build . -j $CORES
|
||||
else
|
||||
CORES=$(nproc || echo 1)
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-static" ..
|
||||
cmake --build . -j $CORES
|
||||
fi
|
||||
cd -
|
||||
done
|
||||
echo "Please see the build files starting with (vvenc/vvdec)/bin/release-static."
|
||||
}
|
||||
|
||||
# Main script execution
|
||||
case "$OS" in
|
||||
Linux)
|
||||
case "$DISTRO" in
|
||||
debian|ubuntu)
|
||||
setup_debian
|
||||
;;
|
||||
fedora)
|
||||
setup_fedora
|
||||
;;
|
||||
arch)
|
||||
setup_arch
|
||||
;;
|
||||
gentoo)
|
||||
setup_gentoo
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported Linux distribution: $DISTRO"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
Darwin)
|
||||
setup_macos
|
||||
;;
|
||||
MSYS_NT*|MINGW64*)
|
||||
setup_msys64
|
||||
;;
|
||||
FreeBSD)
|
||||
setup_freebsd
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported OS: $OS"
|
||||
echo "Supports Windows MSYS64, macOS, Linux & FreeBSD"
|
||||
echo "May coming soon for some platforms..."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
build_repos
|
||||
read -p "Finished building vvenc & vvdec. Press [Enter] to continue..."
|
121
CHANGELOG
Normal file
@ -0,0 +1,121 @@
|
||||
VVCEasy versions of changelog:
|
||||
|
||||
To view or download releases with changelogs, please go to https://github.com/MartinEesmaa/VVCEasy/releases
|
||||
|
||||
This is local changelog file.
|
||||
|
||||
v2.7.0 Release (June 23, 2024):
|
||||
|
||||
- Updated FFmpeg and MPV VVCEasy builds
|
||||
- Updated VVC binaries
|
||||
- Added BSD x86_64 nightly VVC binaries (compiled on FreeBSD 13.3)
|
||||
- Updated Windows VLC VTM VVC Decoder plugin
|
||||
- Added Linux arm64 & macOS arm64 FFmpeg VVCEasy build support
|
||||
- Added MPC-BE information on LAVFilters folder
|
||||
- Added uvg266 binaries of Windows, macOS, Linux and BSD.
|
||||
- Updated 7-Zip latest
|
||||
- Added gitignore file
|
||||
- Improved Windows batchfile script
|
||||
- New libvvenc codes from official FFmpeg is done.
|
||||
|
||||
v2.5.0 Release (April 11, 2024):
|
||||
|
||||
- New FFmpeg VVCEasy builds of Windows & Linux using my forked repository from BtBn/FFmpeg-Builds and up to 7.0 nightly latest.
|
||||
- No longer broken ffplay on Linux.
|
||||
- Added DVD-Video Demuxer (libdvdnav & libdvdread), Chinese AVS encoder, Vidvox Hap with Snappy, CD reader (libcdio), AMR-WB encoder, iLBC encoder (Windows only), MP3 Shine encoder, bs2b and Google LC3 features to Windows & Linux FFmpeg VVCEasy builds.
|
||||
- Added XPSNR filter support to FFmpeg VVCEasy builds.
|
||||
- Updated VLC VTM Decoder of VVC Plugins for Windows & Linux.
|
||||
- Updated Windows LAVFilters for up to 0.79.2 with new FFmpeg and vvdec.
|
||||
- Updated instructions of README and other markdown files.
|
||||
- Updated Android uvg266 builds.
|
||||
- New Mac OS FFmpeg VVCEasy build is now back.
|
||||
- Updated VVC binaries, FFmpeg VVCEasy & MPV VVCEasy builds.
|
||||
- Added & updated MPC-HC with pre-installed LAVFilters VVCEasy version and yt-dlp support.
|
||||
- Added & fixed Linux & Arch Linux of MPV VVCEasy builds for AppImages, but later removed unnecessary shared objects and it works all Linux distributions in one appimage of main Linux.
|
||||
- Removed Android MPV VVCEasy of gpu-next builds, now they're already support since 24th October 2023 in main builds.
|
||||
- Updated Android MPV VVCEasy builds, but libxml2 is skipped due to error configuration & compilation.
|
||||
- New added native Windows MPV VVCEasy x86_64-v3 build.
|
||||
- Added GUI application of lists in README.
|
||||
- Updated FFmpeg & MPV VVCEasy screenshots except Mac OS build screenshot of FFmpeg VVCEasy.
|
||||
|
||||
v2.0.0 Release (June 22, 2023):
|
||||
|
||||
It is finally here for VVCEasy version 2. Sorry for waiting release yet.
|
||||
|
||||
- Added Windows XP compatibility to Fraunhofer HHI vvenc/vvdec binaries.
|
||||
- Added Windows 32-bit, Linux aarch64 and Android all architecture builds of vvenc and vvdec.
|
||||
- Improved and complete static of FFmpeg VVCEasy build from my current repository, the FFmpeg-FixVVC is no longer - maintained and it's old.
|
||||
- Updated Mac OS builds, but for FFmpeg Mac OS version not yet and will be released later for future version.
|
||||
- Updated Windows MPV build using my forked repository of mpv-winbuild-cmake on my Arch Linux cross compilation.
|
||||
- Added LAVFilters VVCEasy build for Windows DirectShow users to play VVC video by an external player of Windows build.
|
||||
- Updated all vvenc and vvdec binaries.
|
||||
|
||||
**Full Changelog**: https://github.com/MartinEesmaa/VVCEasy/compare/v.1.0.1...v2.0.0
|
||||
|
||||
v1.0.1 Release (July 2, 2022):
|
||||
|
||||
- Added Windows x64 build of MPV Player
|
||||
- Added Android vvdecapp applications (used in Termux app)
|
||||
|
||||
v1.0.0 Release (June 23, 2022):
|
||||
|
||||
- MPV OpenVVC is replaced by MPV libvvdec, seek support of mp4.
|
||||
- Add libvvenc to FFmpeg VVC, thanks @IsaMorphic!
|
||||
- Add build instructions for Windows & Linux users to build VLC InterDigital Plugin itself.
|
||||
- Add tests of videos in README.md
|
||||
|
||||
v0.9.2 Beta (June 18, 2022):
|
||||
|
||||
- i686/x86 support on Android MPV Player (OpenVVC plugin)
|
||||
- Updated VVC encoder of three operating systems
|
||||
- Updated vvDecWebPlayer
|
||||
- Added important note & build for Mac OS in FFMPEGVVC.md
|
||||
- Fix README instructions
|
||||
- Added Doom9 & Imgur account link in SOCIALMEDIA.md
|
||||
- Added some changes
|
||||
|
||||
v0.9.0 Beta (May 24, 2022):
|
||||
|
||||
- Added FFmpeg VVDec support + seek support (audio support required mp4box) FFmpeg VVC: FFMPEGVVC.md
|
||||
- Added Android MPV Player (OpenVVC support) MPV VVC: MPV.md
|
||||
- Added Linux support of InterDigital VLC VTM Plugin VLC VTM: INSTALLVLCPLUGIN directory
|
||||
- Updated to VVC systems
|
||||
- Added social media links on SOCIALMEDIA.md
|
||||
- Added some licenses & credits in README
|
||||
- Removed o266player (reason: The commits of o266player were longer than one year)
|
||||
|
||||
v0.5.0 Beta (February 25, 2022):
|
||||
|
||||
First VVCEasy beta version.
|
||||
|
||||
- Batchfile (Windows version is ready)
|
||||
- C# (Might not be quite ready, but next release I'm sure... malfunction mode)
|
||||
|
||||
On MacOS version should be very soon...
|
||||
|
||||
Virustotal:
|
||||
https://www.virustotal.com/gui/file/fd310637f71cd0f956929d3838bbb523eb0fd03092e18ba3772b95dc9cd1f35b
|
||||
https://www.virustotal.com/gui/file/ff2cd6d2147aa0662072821cf6fa48c7bdf49266f682cc0aa755df67d9c1e301
|
||||
https://www.virustotal.com/gui/file/8c2f230c0d800846d9c127d4931d13e04ce98a384b95280fdca8b50ece18a772
|
||||
|
||||
Hybrid Analysis:
|
||||
https://www.hybrid-analysis.com/sample/fd310637f71cd0f956929d3838bbb523eb0fd03092e18ba3772b95dc9cd1f35b
|
||||
https://www.hybrid-analysis.com/sample/ff2cd6d2147aa0662072821cf6fa48c7bdf49266f682cc0aa755df67d9c1e301
|
||||
https://www.hybrid-analysis.com/sample/8c2f230c0d800846d9c127d4931d13e04ce98a384b95280fdca8b50ece18a772
|
||||
|
||||
v0.0.1 Alpha Windows only (December 23, 2021):
|
||||
|
||||
- First pre-release.
|
||||
- Some settings won't work.
|
||||
- Compiled using Advanced BAT to EXE converter.
|
||||
|
||||
Windows Executable file SHA256: 16A5686C80B9C894222A84BC6F3FFC2E1A91AAB9CF30EB504959D0718A0F9C80
|
||||
7z archived file SHA256: C5C904E4C8B7FB8F98C540E8140AF6CF9F9A2B562428CFD30C0F8EFABAE49FAB
|
||||
|
||||
Virustotal:
|
||||
.EXE: https://www.virustotal.com/gui/file/16a5686c80b9c894222a84bc6f3ffc2e1a91aab9cf30eb504959d0718a0f9c80
|
||||
.7Z: https://www.virustotal.com/gui/file/c5c904e4c8b7fb8f98c540e8140af6cf9f9a2b562428cfd30c0f8efabae49fab
|
||||
|
||||
After installation, the File Explorer will launch automatically path from your Program Files. Right click "RUNVVCEasy.bat" and click send to desktop (create shortcut) and run as admin.
|
||||
|
||||
Changelogs written by Martin Eesmaa
|
142
FFMPEGMINGW.sh
@ -1,142 +0,0 @@
|
||||
echo Updating and upgrading MSYS2 packages... if system core update requires reboot this application, please run this script again after being updated.
|
||||
pacman -Syu
|
||||
echo Installing MSYS2 packages...
|
||||
pacman -S python git nasm vim $MINGW_PACKAGE_PREFIX-{toolchain,cmake,autotools,meson,ninja}
|
||||
echo Starting process of FFmpeg build with libvvenc and libvvdec...
|
||||
if [ ! -d buildffmpegwin ]; then
|
||||
mkdir buildffmpegwin && cd buildffmpegwin
|
||||
else
|
||||
cd buildffmpegwin
|
||||
fi
|
||||
|
||||
if [ ! -d FFmpeg-FixVVC ]; then
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
else
|
||||
git -C FFmpeg-VVC pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvenc ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
else
|
||||
git -C vvenc pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvdec ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
else
|
||||
git -C vvdec pull
|
||||
fi
|
||||
|
||||
if [ ! -d fdk-aac ]; then
|
||||
git clone --depth=1 https://github.com/mstorsjo/fdk-aac
|
||||
else
|
||||
git -C fdk-aac pull
|
||||
fi
|
||||
|
||||
if [ ! -d SDL ]; then
|
||||
git clone --depth=1 https://github.com/libsdl-org/SDL
|
||||
else
|
||||
git -C SDL pull
|
||||
fi
|
||||
|
||||
if [ ! -d libxml2 ]; then
|
||||
git clone --depth=1 https://github.com/gnome/libxml2
|
||||
else
|
||||
git -C libxml2 pull
|
||||
fi
|
||||
|
||||
if [ ! -d opus ]; then
|
||||
git clone --depth=1 https://github.com/xiph/opus
|
||||
else
|
||||
git -C opus pull
|
||||
fi
|
||||
|
||||
if [ ! -d libjxl ]; then
|
||||
git clone --depth=1 https://github.com/libjxl/libjxl
|
||||
sed -i 's/-lm/-lm -lstdc++/g' libjxl/lib/jxl/libjxl.pc.in libjxl/lib/threads/libjxl_threads.pc.in
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
else
|
||||
git -C libjxl pull
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
fi
|
||||
|
||||
if [ ! -d dav1d ]; then
|
||||
git clone --depth=1 https://code.videolan.org/videolan/dav1d
|
||||
else
|
||||
git -C dav1d pull
|
||||
fi
|
||||
|
||||
if [ ! -d codec2 ]; then
|
||||
git clone --depth=1 https://github.com/drowe67/codec2
|
||||
else
|
||||
git -C codec2 pull
|
||||
fi
|
||||
|
||||
if [ ! -d vmaf ]; then
|
||||
git clone --depth=1 https://github.com/netflix/vmaf
|
||||
else
|
||||
git -C vmaf pull
|
||||
fi
|
||||
|
||||
echo Starting to build fdk-aac:
|
||||
cd fdk-aac
|
||||
autoreconf -if && ./configure --enable-static --disable-shared --prefix=$MSYSTEM_PREFIX && make install -j $nproc
|
||||
cd ..
|
||||
|
||||
echo Starting to build libxml2:
|
||||
cd libxml2
|
||||
autoreconf -if && ./configure --enable-static --disable-shared --prefix=$MSYSTEM_PREFIX && make install -j $nproc
|
||||
cd ..
|
||||
|
||||
echo Starting to build sdl2:
|
||||
cd SDL
|
||||
mkdir build && cd build && cmake -DCMAKE_EXE_LINKER_FLAGS="-static" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX .. -G "MinGW Makefiles" && cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
|
||||
echo Starting to build libopus to improve decode quality on FFmpeg:
|
||||
cd opus
|
||||
autoreconf -if && CFLAGS="-O2 -D_FORTIFY_SOURCE=0" LDFLAGS="-flto -s" ./configure --enable-static --disable-shared --disable-tests --disable-extras --prefix=$MSYSTEM_PREFIX && make install -j $nproc
|
||||
cd ..
|
||||
|
||||
echo Starting to build libjxl:
|
||||
mkdir libjxl/build && cd libjxl/build && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_PLUGINS=ON -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=ON -DJPEGXL_FORCE_SYSTEM_GTEST=ON -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX .. && ninja install
|
||||
cd ../../
|
||||
|
||||
echo Starting to build dav1d:
|
||||
mkdir dav1d/build && cd dav1d/build && meson -Denable_docs=false -Ddefault_library=static -Dprefix=$MSYSTEM_PREFIX .. && ninja install
|
||||
cd ../../
|
||||
|
||||
echo Starting to build codec2:
|
||||
cd codec2
|
||||
sed -i 's|if(WIN32)|if(FALSE)|g' CMakeLists.txt
|
||||
grep -ERl "\b(lsp|lpc)_to_(lpc|lsp)" --include="*.[ch]" | \
|
||||
xargs -r sed -ri "s;((lsp|lpc)_to_(lpc|lsp));c2_\1;g"
|
||||
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -D{UNITTEST,INSTALL_EXAMPLES}=off -DBUILD_SHARED_LIBS=OFF -DCMAKE_EXE_LINKER_FLAGS="-static" .. -G "MinGW Makefiles"
|
||||
cmake --build . -j $nproc --target install
|
||||
cd ../../
|
||||
|
||||
echo Starting to build vmaf to apply calculate VVC video references from original video:
|
||||
mkdir vmaf/libvmaf/build && cd vmaf/libvmaf/build && CFLAGS="-msse2 -mfpmath=sse -mstackrealign" meson -Denable_docs=false -Ddefault_library=static -Denable_float=true -Dbuilt_in_models=true -Dprefix=$MSYSTEM_PREFIX .. && ninja install
|
||||
cd ../../../
|
||||
sed -i 's/-lm/-lm -lstdc++/g' $MSYSTEM_PREFIX/lib/pkgconfig/libvmaf.pc
|
||||
|
||||
echo Starting to build vvenc...
|
||||
cd vvenc
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -DVVENC_ENABLE_LINK_TIME_OPT=OFF .. -G "MinGW Makefiles"
|
||||
cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
echo Starting to build vvdec...
|
||||
cd vvdec
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -DVVDEC_ENABLE_LINK_TIME_OPT=OFF .. -G "MinGW Makefiles"
|
||||
cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
|
||||
echo Starting configuring and making FFmpeg VVCEasy build...
|
||||
cd FFmpeg-VVC
|
||||
./configure --enable-libfdk-aac --enable-static --enable-libvvenc --enable-libvvdec --enable-pic \
|
||||
--enable-zlib --enable-libxml2 --enable-libdav1d --enable-libopus --enable-libcodec2 --enable-libjxl --enable-libvmaf --extra-ldexeflags=-static \
|
||||
--pkg-config-flags=-static --disable-w32threads --enable-sdl2 && \
|
||||
make -j
|
||||
echo FFmpeg VVC version tools are now compiled, please see buildffmpegwin/FFmpeg folder.
|
244
FFMPEGVVC.md
@ -2,9 +2,9 @@
|
||||
|
||||
Windows, Mac and Linux (Preview of VVC video in FFplay):
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
# Play video file
|
||||
|
||||
@ -20,23 +20,65 @@ Or if you have xHE-AAC audio codec:
|
||||
ffplay_vvceasy -codec:a libfdk_aac -i versatile.m4a
|
||||
```
|
||||
|
||||
# Official FFmpeg VVC native decoder implementation
|
||||
|
||||
It started at January 4 2024 when the native VVC decoder is released on FFmpeg, but it was experimental without IBC (Intra Block Copy).
|
||||
|
||||
On February 24 2024, the finally moment about Intra Block Copy has been merged into FFmpeg's official repository, which means native VVC decoder on FFmpeg is completed and it's stable.
|
||||
|
||||
His hard work is very good and made by [nuomi2021](https://github.com/nuomi2021) to make native VVC decoder release to FFmpeg.
|
||||
|
||||
But on March 14th 2024, James Almer set VVC native decoding from stable to experimental by reasons due to problem issues with different MD5 of some rare videos encoded along advanced parameters.
|
||||
|
||||
Frank Plowman and Nuo Mi removed experimental flag, cause it's now fully stable completed on September 7 2024 and should be released on version 7.1 for future date.
|
||||
|
||||
Meanwhile, you can use official FFmpeg binaries by BtBn or Gyan or my custom build of FFmpeg VVCEasy build to play or decode VVC in FFmpeg. Also mpv too with shinchiro or VVCEasy builds. :)
|
||||
|
||||
But for libvvenc VVC encoder has not implemented yet into official FFmpeg. FFmpeg VVCEasy build has still libvvenc VVC encoder available by Martin Eesmaa's FFmpeg-VVC repository.
|
||||
|
||||
# Official FFmpeg VVC external encoder implementation
|
||||
|
||||
On 15th June 2024, the external VVC encoder feature is released on FFmpeg.
|
||||
|
||||
See commit: https://github.com/FFmpeg/FFmpeg/commit/c75940db290478df657c09089605d221dc47118e
|
||||
|
||||
His hard work was very good and made by Thomas Siedel, authored by nuomi2021 and also co-authored by Christian Bartnik.
|
||||
|
||||
This might come later to add feature after compiling for FFmpeg Gyan and BtBn builds, but FFmpeg VVCEasy builds is still available.
|
||||
|
||||
# Official Gyan & BtBn FFmpeg Builds of libvvenc support
|
||||
|
||||
Since 1st July 2024, Gyan added libvvenc support to FFmpeg.
|
||||
|
||||
Since 31st July 2024, Martin Eesmaa authored and BtBn committed to add libvvenc support, see the commit and my attempted pull request:
|
||||
|
||||
https://github.com/BtbN/FFmpeg-Builds/commit/9b364761580b399266172956eed9778211b094a8
|
||||
|
||||
https://github.com/BtbN/FFmpeg-Builds/pull/393
|
||||
|
||||
# Limitations of FFmpeg VVC encoder
|
||||
|
||||
Before encode to VVC video codec, see the limitations below.
|
||||
Before encoding VVC video codec, see limitations below.
|
||||
|
||||
libvvenc (FFmpeg vvc version) works for:
|
||||
FFmpeg-VVC (for libvvenc feature) works for:
|
||||
|
||||
- Pixel format ⚠️ (only pixel format 10 bit)
|
||||
- Video size (auto detects, but it doesn't detect for SAR and DAR anamorphic is glitch and corrupts the video) ⚠️ (Better way to use vvencapp without FFmpeg)
|
||||
- Frame rate ✅ (auto detects)
|
||||
- MP4/TS Mux ✅
|
||||
- Matroska mux ⚠️ (Only matroska mux has an experimental, causing problem of the video sync delay with audio and others for FFmpeg libvvdec. It is unofficial support)
|
||||
- Audio with encode VVC ✅
|
||||
- Bitrates ✅
|
||||
- Passes ⚠️ (you may need get passes using vvenc params on FFmpeg VVCEasy or use vvencapp)
|
||||
- Presets ✅
|
||||
- QP ✅
|
||||
- HDR ✅
|
||||
| Features | Notes |
|
||||
--- | --- |
|
||||
Pixel format | ⚠️ (only pixel format 10 bit is default, but you can still encode 8 bit by using vvenc params `-vvenc-params InternalBitDepth=8`)
|
||||
Video size | (auto detects, but it doesn't detect for SAR and DAR anamorphic is glitch and corrupts the video) ⚠️ (Better way to use vvencapp without FFmpeg)
|
||||
Frame rate | ✅ (auto detects)
|
||||
MP4/TS Mux | ✅ (only works for stable if it's encoded VVC with MP4 or TS on FFmpeg and mp4box for muxing still works)
|
||||
Mux MP4/TS container from raw bitstream on FFmpeg | ⚠️ (the first frame freezes may just print error messages for libvvdec when muxed and seeking in FFmpeg, use mp4box for recommendation)
|
||||
Matroska Mux | ⚠️ (Only matroska mux has an experimental, causing problem of the video sync delay with audio and others for FFmpeg libvvdec. It is unofficial support)
|
||||
Demux | ✅
|
||||
Audio with encode VVC | ✅
|
||||
Broadcasting | ✅ (MPEG-TS)
|
||||
Streaming | ✅ (MPEG-DASH)
|
||||
Bitrates | ✅ (average (`-b:v`) and maximum bitrate (`-maxrate`) are only supported)
|
||||
Passes | ⚠️ (you may need get passes using vvenc params on FFmpeg VVCEasy or use vvencapp, also it is only available to use bitrate for two passes, QP supports only one pass)
|
||||
Presets | ✅
|
||||
QP | ✅
|
||||
HDR | ✅
|
||||
|
||||
Built in libvvenc for FFmpeg command:
|
||||
|
||||
@ -46,13 +88,13 @@ ffmpeg -i example.mp4 -c:v libvvenc -qp 37 -preset slow example.266
|
||||
|
||||
For more options for libvvenc in FFmpeg VVCEasy version, type `ffmpeg_vvceasy -h encoder=libvvenc` for available commands.
|
||||
|
||||
Additional command: You can convert to VVC video without taking a much space for vvencapp, example:
|
||||
Additionally... you can convert to VVC video without taking a much space for vvencapp by using pipe for example:
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -pix_fmt yuv420p -f yuv4mpegpipe - | vvencapp --y4m -i - --preset medium --qp 35 -o converted.266
|
||||
```
|
||||
|
||||
Converting xHE-AAC to AAC audio:
|
||||
Converting from xHE-AAC to AAC audio:
|
||||
|
||||
```
|
||||
ffmpeg -c:a libfdk_aac -i mymusic.m4a -c:a aac -b:a 128k mymusic.aac
|
||||
@ -73,24 +115,82 @@ mp4box -add video.266 -add audio.m4a -new convertedvvc.mp4
|
||||
|
||||
Containers are also acceptable video containers of .mkv, .mp4, .mov and more.
|
||||
|
||||
For Linux and Mac OS users: Replace **mp4box** by **gpac**
|
||||
For Linux and Mac OS users: Type correctly `MP4Box` for execute binary, but no small or big lettercase letters.
|
||||
|
||||
# FFmpeg Downloads (xHE-AAC & VVC en/decoder plugin compiled by Martin Eesmaa)
|
||||
|
||||
[Windows](https://mega.nz/file/Ws9V0IAB#e7ukWvMy1YqOXyQCSfO4r6Dzfrcv1qaDYk1sHrmtOOY)
|
||||
[Windows (x64/x86/winarm64) & Linux (x64/arm64)](https://github.com/MartinEesmaa/FFmpeg-Builds/releases/tag/latest) - Automated builds every day at 12:00 (12 PM) UTC of FFmpeg VVCEasy custom builds.
|
||||
|
||||
[Mac OS](https://mega.nz/file/3xtTAIiQ#MPsPcz-QlSquqahmEx8ANpqleiVm2Y3L1o3R6vy7qY8)
|
||||
[Mac OS x86_64](https://mega.nz/file/jo0RWZSC#PIGNsk1ak_W3vVJTNy09hTx0f2OoZgJd9MvXOoXGMAI)
|
||||
|
||||
[Linux](https://mega.nz/file/X4k00QDJ#8nvnklEhOsxNl4Vw0ALoZRnViRfFlGh2QqqxDE7dtpA) (Only FFplay static won't work)
|
||||
[Mac OS arm64](https://mega.nz/file/e1FmATYA#WYSRWKJ8kE_60PhyitPDOUu8dxvD-RnQIdujcu4FjDE)
|
||||
|
||||
[FFmpeg-FixVVC archived old source code](https://mega.nz/file/G81QyT5S#jcbE1sYPEy1OMIDPCF8BPeAK-3KAGF50u23MVJzmBgw) (old)
|
||||
|
||||
### Note about downloads
|
||||
|
||||
I use always Windows to compile FFmpeg, so I forgot to compile every time for Mac OS and Linux. Also, please check changelog before you download the new version.
|
||||
Also, please check changelog before you download the new version.
|
||||
|
||||
Since 15th October 2024, Windows and Linux custom builds of FFmpeg-VVC on my forked repo FFmpeg-Builds will turn from my manual time to automatic computer to save my time.
|
||||
|
||||
## Deprecated manual builds
|
||||
|
||||
Before automated builds started of Windows & Linux, here are the last links of manual pre-compiled builds:
|
||||
|
||||
[Windows x64](https://mega.nz/file/a80X2aRS#0wqGq88L4ar23HZAOtkok4zJiXsz9d8-1HZu3WH33nM)
|
||||
|
||||
[Linux x64](https://mega.nz/file/vlknXAKL#VoK400iQJPmrDsfbI5Nigr3MSgDudGe3P1cAlPrIOMc)
|
||||
|
||||
[Linux Arm64](https://mega.nz/file/al9kjBqL#W_WT-lNM8osAMsdQaKkpe6Ksd4fMO4GKXysMB5IjiJQ)
|
||||
|
||||
### Changelog
|
||||
```
|
||||
06/04/2025: Updated FFmpeg with latest, vvenc, vvdec and others. Sorry for six months. (macOS only)
|
||||
16/10/2024: Added libgsm external feature to FFmpeg VVCEasy builds for Windows & Linux only.
|
||||
15/10/2024: Fixed missing JPEG-XL demux MKTAG of MP4/MOV container format bug.
|
||||
15/10/2024: Fix JPEG-XL MP4/MOV mux bug.
|
||||
15/10/2024: Updated FFmpeg with latest nightly, vvenc, vvdec and others. Fix static VVC Matroska mux, added Dolby AC-4 experimental decoder back & support JPEG-XL of mux on MP4, MOV, MKV, TS & AVI, also VVC mux of AVI. Automatic builds are on way for Windows & Linux...
|
||||
05/10/2024: Updated FFmpeg with up to 7.1 and latest nightly, vvenc, vvdec latest up to 3.0.0-rc2 and others.
|
||||
25/09/2024: Updated FFmpeg with latest nightly, vvenc, vvdec and others. Added support of qrencode and quirc for QR-code encoding/decoding external filter for Windows & Linux builds only. (sorry for hiatus nearly three months)
|
||||
30/06/2024: Updated FFmpeg with latest nightly, vvenc and others. Added support of SVT-HEVC and SVT-VP9 external libraries to FFmpeg VVCEasy builds for Windows & Linux x86_64 only.
|
||||
28/06/2024: Updated FFmpeg with latest nightly, vvenc, vvdec and others. New Film Grain Synthesis (FGS) has added to vvenc (experimental) and vvdec.
|
||||
22/06/2024: Updated FFmpeg with latest nightly, vvenc and others.
|
||||
21/06/2024: Fix macOS x86_64 FFmpeg VVCEasy build from wrong architecture and added already support macOS FFmpeg VVCEasy arm64 build.
|
||||
16/06/2024: Updated FFmpeg with latest nightly, officially new libvvenc feature to official FFmpeg, updated vvenc, vvdec and others.
|
||||
06/06/2024: Updated FFmpeg with latest nightly, added experimental xHE-AAC native decoder, but I turned it off to avoid problems.
|
||||
05/06/2024: Updated FFmpeg with latest nightly, vvenc, vvdec and others.
|
||||
08/05/2024: Updated FFmpeg with latest nightly, vvdec and others.
|
||||
29/04/2024: Updated FFmpeg with latest nightly and others. Added official VVC Matroska tag of V_MPEGI/ISO/VVC in libavformat/matroska.c.
|
||||
24/04/2024: Updated FFmpeg with latest nightly, added SAC (State of the Art Codec) demuxer (code by Martin Eesmaa), aom, x264, x265, dav1d and others.
|
||||
18/04/2024: New Linux Arm64 FFmpeg VVCEasy build. Updated FFmpeg, libopus and others.
|
||||
09/04/2024: Updated FFmpeg with latest nightly and added early LC3 muxer & demuxer can encode, decode and play LC3 by liblc3 (Windows & Linux are already have liblc3) from FFmpeg patchwork.
|
||||
06/04/2024: Updated FFmpeg up to 7.0 latest with nightly, others & added Google LC3 encoder/decoder using liblc3 feature to Windows and Linux.
|
||||
31/03/2024: Updated FFmpeg, vvenc, libopus and others.
|
||||
19/03/2024: Updated FFmpeg, vvenc, libopus and others. Official commit set native VVC decoder is experimental, now decodes default VVC video by using external libvvdec.
|
||||
04/03/2024: Updated FFmpeg, vvenc, vvdec, libopus and others. Added libdvdnav and libdvdread, especially libdvdcss to Windows & Linux. Switched from external VVC decoder (libvvdec) to native VVC decoder by removing experimental.
|
||||
01/03/2024: Updated limitations of FFmpeg VVC encoder in FFMPEGVVC.md
|
||||
29/02/2024: Note about official FFmpeg and VVCEasy builds can play stable video of VVC for playing via decode, but libvvenc (external VVC encoder via vvenc) is still available on FFmpeg VVCEasy builds. I'll release soon later...
|
||||
15/02/2024: Updated FFmpeg and vvdec. Set libopus from stable to nightly latest version for improve with Windows & Linux.
|
||||
27/01/2024: Updated FFmpeg, vvenc, vvdec and others. Added libbs2b, libcdio and libmodplug features to Windows and Linux for DSP, Audio CD and MOD.
|
||||
26/01/2024: Updated FFmpeg & vvdec. Added libxavs & libsnappy features to Windows and Linux for Chinese AVS & Vidvox Hap external video encoders.
|
||||
19/01/2024: Updated FFmpeg, vvenc and vvdec.
|
||||
16/01/2024: Updated FFmpeg and added libspeex & libshine encoder features into FFmpeg VVCEasy builds for Windows & Linux.
|
||||
15/01/2024: Updated FFmpeg, vvenc, vvdec and other libraries. Added AMR-WB & iLBC encoder using libvo_amrwbenc & libilbc to FFmpeg for Windows and Linux (except only for ilBC encoder on Linux build), but for Linux build does not include iLBC encoder for linking failed to FFmpeg reason about PIE.
|
||||
27/12/2023: Updated FFmpeg, vvenc and other libraries.
|
||||
16/12/2023: Updated FFmpeg, vvenc and other libraries.
|
||||
06/12/2023: Updated FFmpeg and other libraries.
|
||||
28/11/2023: Updated FFmpeg and others.
|
||||
22/11/2023: New FFmpeg VVCEasy Linux complete static build using BtbN FFmpeg-Builds script of my forked repository. FFplay is now working and no broken.
|
||||
22/11/2023: New FFmpeg VVCEasy Windows build cross compiled on Linux using BtbN FFmpeg-Builds script of my forked repository.
|
||||
17/11/2023: Enable all filters via additional configuration of GPL 3 and non-free. Updated FFmpeg and others.
|
||||
12/11/2023: New FFmpeg 6.1+ latest VVCEasy build with updated vvenc, vvdec and others. Released new Mac OS x86_64 build.
|
||||
10/10/2023: Updated FFmpeg features with vvenc and vvdec on Windows build.
|
||||
21/09/2023: Added zimg and soxr features build configuration on Windows FFmpeg.
|
||||
20/09/2023: Update vvenc & libraries on FFmpeg.
|
||||
16/09/2023: Update libraries.
|
||||
11/08/2023: Update vvdec.
|
||||
07/08/2023: Added Ittiam Systems MPEG-H 3D Audio encoder and others were updated.
|
||||
30/07/2023: Updated external features, including vvenc & vvdec. Added XPSNR filter support.
|
||||
22/06/2023: Updated Linux FFmpeg by FFmpeg commits and other libraries. (still does not work for FFplay static only, others working fine)
|
||||
21/06/2023: Updated vvenc and FFmpeg commits.
|
||||
17/06/2023: Updated of vvenc, vvdec, dav1d, FFmpeg commits and others.
|
||||
@ -138,20 +238,21 @@ Step 3: Click "Open" button, this does not hurt your computer.
|
||||
|
||||
Requirements:
|
||||
|
||||
Xcode
|
||||
- Xcode
|
||||
|
||||
CMake
|
||||
- CMake
|
||||
|
||||
NASM
|
||||
- NASM
|
||||
|
||||
Homebrew
|
||||
- Homebrew
|
||||
|
||||
Code to build FFmpeg VVC version:
|
||||
|
||||
```
|
||||
brew install libxml2 ffmpeg fdk-aac nasm
|
||||
brew install libxml2 ffmpeg nasm
|
||||
git clone https://github.com/fraunhoferhhi/vvenc
|
||||
git clone https://github.com/fraunhoferhhi/vvdec
|
||||
git clone https://github.com/mstorsjo/fdk-aac
|
||||
cd vvenc && mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
|
||||
sudo cmake --build . --target install -j $nproc
|
||||
@ -160,15 +261,20 @@ cd vvdec && mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
|
||||
sudo cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/FFmpeg-FixVVC
|
||||
cd FFmpeg-FixVVC
|
||||
cd fdk-aac && ./autogen.sh && ./configure
|
||||
make -j
|
||||
sudo make install
|
||||
cd ../
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
cd FFmpeg-VVC
|
||||
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
||||
./configure --enable-libfdk-aac --enable-libvvenc --enable-libvvdec --enable-static --enable-pic --enable-libxml2 --pkg-config-flags="--static" --enable-sdl2
|
||||
make -j
|
||||
```
|
||||
|
||||
# Linux builders (Important for FFplay)
|
||||
# Linux builders (Important for FFplay) (old, deprecated)
|
||||
|
||||
You can build using [Linux script](libvvdecffmpeg.sh).
|
||||
You can build using [Linux script](BuildFFmpeg.sh).
|
||||
|
||||
If you want actually play VVC file with FFplay on your local distro, you need to remove command `--extra-ldexeflags="-static"`, otherwise it might give result segmentation fault for FFplay static only.
|
||||
|
||||
@ -178,9 +284,79 @@ If compiling is success and finished, you can install FFmpeg VVC for using the c
|
||||
mv ffmpeg ffmpeg_vvceasy
|
||||
mv ffplay ffplay_vvceasy
|
||||
mv ffprobe ffprobe_vvceasy
|
||||
sudo cp ffmpeg_vvceasy ffplay_vvceasy ffprobe_vvceasy /usr/local/bin
|
||||
sudo cp ff*_vvceasy /usr/local/bin
|
||||
```
|
||||
|
||||
On Windows is also available to compile FFmpeg-VVC using MSYS2, but build of FFmpeg-VVC shell script is deprecated.
|
||||
|
||||
# Compile FFmpeg-Builds for Windows & Linux
|
||||
|
||||
If you want to compile by your own self FFmpeg with VVC support + xHE-AAC, here's what you need to do:
|
||||
|
||||
You may need:
|
||||
- Any Linux distribution to cross-compile for Windows & Linux. Recommended architecture for x86_64 (amd64) to make faster compiling.
|
||||
- Docker Engine (https://docs.docker.com/engine/install/)
|
||||
- Git for clone repository to local computer.
|
||||
- Network connection for downloading repositories.
|
||||
|
||||
**Tip:** If you don't want to compile, you can download my latest automated builds of Windows & Linux, [link here](https://github.com/MartinEesmaa/FFmpeg-Builds/releases/tag/latest) and also you can have look logs on Actions tab.
|
||||
|
||||
Anyway moving to Step 1 by compiling manually.
|
||||
|
||||
Step 1: You need to install Docker Engine and to use shell script on Linux or maybe possible Windows using MSYS2.
|
||||
|
||||
On Arch Linux, install: `sudo pacman -S docker`.
|
||||
|
||||
Step 2: After installing Docker Engine, clone the repository following by:
|
||||
|
||||
```
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/FFmpeg-Builds
|
||||
cd FFmpeg-Builds
|
||||
chmod +x *.sh
|
||||
```
|
||||
|
||||
If you have not installed Git, please install Git on your package manager on your Linux distribution.
|
||||
|
||||
Step 3: Make image and build FFmpeg, example you can build one or two builds.
|
||||
```
|
||||
./makeimage.sh win64 nonfree && ./makeimage.sh linux64 nonfree
|
||||
./build.sh win64 nonfree && ./build.sh linux64 nonfree
|
||||
```
|
||||
|
||||
Non-free allows to enable Fraunhofer FDK feature, other licenses may not allow to bring Fraunhofer FDK feature to FFmpeg.
|
||||
|
||||
**Tip 2:**: If you don't want make image, Martin Eesmaa's pre-package of non-free feature is only available. It saves your time without making it.
|
||||
|
||||
```
|
||||
./build.sh win64 nonfree && ./build.sh linux64 nonfree
|
||||
```
|
||||
|
||||
This will download Martin Eesmaa's pre-package of non-free feature only. However only non-free pre-package is available, not others. If you would like want others than non-free, you can create an feature request to VVCEasy repo on GitHub.
|
||||
|
||||
Step 4: After making image and building FFmpeg, you can look `artifacts` folder by inside compressed files of Windows & Linux.
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
1: If you tried to make image and you got permission denied after trying to run Docker as non-root user.
|
||||
|
||||
To fix the issue and make grant access permission Docker to your user:
|
||||
|
||||
```
|
||||
sudo groupadd docker
|
||||
sudo usermod -aG docker $USER
|
||||
newgrp docker
|
||||
```
|
||||
|
||||
After these commands, try again to build image again.
|
||||
|
||||
If it's still error, reboot the machine.
|
||||
|
||||
2: If the network connection is interrupted or disconnected while downloading repository and made timed out, it is recommended to cancel and retry again.
|
||||
|
||||
Press CTRL + C to cancel operation on your keyboard and try it again with make image or/and build FFmpeg command.
|
||||
|
||||
3: If that did not work for you, please create an issue to VVCEasy or join communities of Discord, Revolt or/and Matrix to solve your problem.
|
||||
|
||||
# Special thanks
|
||||
|
||||
VVC programmers of FFmpeg:
|
||||
@ -195,10 +371,10 @@ VVC encoder programmer to FFmpeg: [@IsaMorphic](https://github.com/IsaMorphic) (
|
||||
|
||||
[@MartinEesmaa](https://github.com/MartinEesmaa) (Martin Eesmaa) Repository: https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
|
||||
[@NuoMi](https://github.com/nuomi2021) of some codes and [Thomas Siedel](https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=8577) of new external VVC encoder & decoder.
|
||||
[@NuoMi](https://github.com/nuomi2021) of some codes and [Thomas Siedel](https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=8577) of new external VVC encoder & decoder, also native VVC decoder ([ffvvc](https://github.com/ffvvc/FFmpeg)) by NuoMi.
|
||||
|
||||
AC4 decoder programmer to FFmpeg: [@richardpl](https://github.com/richardpl) (Paul B Mahol) Repository: https://github.com/richardpl/FFmpeg/tree/ac4
|
||||
|
||||
AC4 support in mp4 container: [@AUGxhub](https://github.com/AUGxhub) Repository: https://github.com/AUGxhub/FFmpeg/tree/patch-1
|
||||
|
||||
- Martin Eesmaa
|
||||
- Martin Eesmaa
|
||||
|
@ -1,7 +1,7 @@
|
||||

|
||||
|
||||
# VLC Media Player (Inter Digital VLC VTM Decoder Plugin installation of Windows and Linux)
|
||||
This can work only for VLC 3.0.9.2 and later version (e.g., 3.0.17.4). VLC 4.0.0-dev won't work.
|
||||
This can work only for VLC 3.0.9.2 and later version (e.g., 3.0.17.4). VLC 4.0.0-dev or below than version 3 won't work.
|
||||
|
||||
To install Inter Digital VLC VTM Decoder Plugin, you need VLC Media Player latest version installed on your computer and supported 64-bit.
|
||||
|
||||
@ -15,6 +15,28 @@ C:\Program Files\VideoLAN\VLC\plugins\demux
|
||||
|
||||
Step 3: Enjoy and play your h266 file into your VLC Media Player :).
|
||||
|
||||
### Explanation
|
||||
|
||||
I have great news. VLC latest version worked out well of Inter Digital VTM plugins. On o266player, there were some problems on my computer for one reason...
|
||||
|
||||
One reason that my Windows 11 operating system won't view video of VVC file on o266player version. On VTM plugins of VLC, now it shows me VVC video good.
|
||||
|
||||
Here is a comparison of o266player version and VTM VVC plugins:
|
||||
|
||||
Top left and right is o266player by Tencent Cloud.
|
||||
|
||||
Bottom left and right is VLC VTM plugins by Inter Digital Inc.
|
||||
|
||||

|
||||
|
||||
***UPDATE of 19/04/2022 00:20 AEST:***
|
||||
|
||||
Bug of Inter Digital VTM VLC Plugin:
|
||||
|
||||
When you try to play your MPEG-TS or TS file, it will crash with your InterDigital VLC VTM Plugin installed on your VLC Media Player.
|
||||
|
||||
Without InterDigital VLC VTM Plugin, playing MPEG-TS or TS file will play fine in your all original plugins (except VLC VTM Plugin) on your VLC Media Player.
|
||||
|
||||
### For Linux users
|
||||
|
||||
Open terminal and copy code:
|
||||
@ -52,7 +74,7 @@ DVBPSI_DIR = DVBPSI source files
|
||||
|
||||
### Windows
|
||||
|
||||
You need the CMAKE GUI, Visual Studio 2017 or newer, VLC SDK, [libvtmdec](https://vcgit.hhi.fraunhofer.de/delagrangep/VVCSoftware_VTM/-/tree/VTM-18.2-MT) precompiled shared dll in lib folder + sources, dvbpsi source and VLC source files of the desktop version. You need to modify vlc_threads.h, before compile.
|
||||
You need the CMAKE GUI, Visual Studio 2017 or newer, [VLC SDK Win64 3.0.9.2](https://download.videolan.org/pub/vlc/3.0.9.2/win64/) or [latest version](https://download.videolan.org/pub/vlc) (choose zip or 7z only), VLC source files .tar.xz, [libvtmdec](https://vcgit.hhi.fraunhofer.de/delagrangep/VVCSoftware_VTM/-/tree/VTM-22.2-MT) precompiled shared dll in lib folder + sources, dvbpsi source and VLC source files of the desktop version. You need to modify vlc_threads.h, before compile.
|
||||
|
||||
vlc_threads.h can be found in VLC folder/sdk/include/vlc/plugins. Search `val = poll(fds, nfds, timeout);` and comment the only one file, that's it.
|
||||
|
||||
@ -62,13 +84,23 @@ Build Decoder Plugin, see screenshot of CMAKE GUI:
|
||||
|
||||

|
||||
|
||||
Before building TS demuxer plugin, please download source code of VLC 3.0.9.2 or latest version following .tar.xz file container and decompress to vlc-3.0.9.2/src or latest version like example vlc-3.0.2.0/src:
|
||||
|
||||
https://download.videolan.org/pub/vlc/3.0.9.2/vlc-3.0.9.2.tar.xz
|
||||
|
||||
For latest version, you need to find latest version by looking ascending:
|
||||
|
||||
https://download.videolan.org/pub/vlc
|
||||
|
||||
Build TS Demuxer Plugin, see screenshot of CMAKE GUI:
|
||||
|
||||

|
||||
|
||||
### Linux
|
||||
|
||||
You need CMAKE GUI, build-essentials, VLC SDK, [libvtmdec](https://vcgit.hhi.fraunhofer.de/delagrangep/VVCSoftware_VTM/-/tree/VTM-16.0-MT) sources, dvbpsi source and VLC source files of the desktop version. You need to modify vlc_threads.h, before compile.
|
||||
You need CMAKE GUI, build-essentials, VLC SDK (you have to get from Windows build of 7z or zip compressed file that contains `sdk/lib` and `sdk/include` folders), [libvtmdec](https://vcgit.hhi.fraunhofer.de/delagrangep/VVCSoftware_VTM/-/tree/VTM-22.2-MT) sources, dvbpsi source and VLC source files of the desktop version. You need to modify vlc_threads.h, before compile.
|
||||
|
||||
Please double-click downloaded compressed file and decompress VLC Windows SDK build to anywhere folder for example "~/vlc-3.0.9.2" or you can use CLI like 7-Zip `7z x vlc-3.0.9.2-win64.7z -o$HOME`.
|
||||
|
||||
vlc_threads.h can be found in VLC folder/sdk/include/vlc/plugins. Search `val = poll(fds, nfds, timeout);` and comment the only one file, that's it.
|
||||
|
||||
@ -79,12 +111,48 @@ Compiled file could be found in lib folder in libvtmdec.
|
||||
|
||||
```
|
||||
mkdir build && cd build
|
||||
cmake -DBUILD_SHARED_LIBS=1 ..
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
make -j
|
||||
```
|
||||
|
||||
Before build Decoder Plugin, you need to find libvlccore in Linux.
|
||||
|
||||
### Option 1 (recommended):
|
||||
|
||||
To find libvlccore, you can simply install VLC by your package distribution like apt, pacman or Snap.
|
||||
|
||||
Most Linux package version can be found libvlccore:
|
||||
|
||||
```
|
||||
/usr/lib/x86_64-linux-gnu/libvlccore.so.9.0.0
|
||||
```
|
||||
|
||||
On Snap store version, the latest version of VLC can be found, but the numbers are different:
|
||||
|
||||
```
|
||||
/snap/vlc/3777/usr/lib/libvlccore.so.9.0.1
|
||||
```
|
||||
|
||||
If you can't find it, you can find libvlccore on `/` folder.
|
||||
|
||||
```
|
||||
sudo find / -type f -name 'libvlccore.so*'
|
||||
```
|
||||
|
||||
You can pick Linux package or Snap version, if unsure pick Linux package standalone or only that you installed on Linux package or Snap version.
|
||||
|
||||
Once you've found,
|
||||
|
||||
### Option 2 (optional):
|
||||
|
||||
If you don't want to find libvlccore and you don't want to get libvlccore installed on Linux package or Snap package, you can build source code of VLC shipped inside libVLC.
|
||||
|
||||
Instructions can be found there of LibVLC:
|
||||
|
||||
https://wiki.videolan.org/LibVLC#Compiling
|
||||
|
||||
If option one or/and two didn't work, you can create issue to [VLC Forums](https://forum.videolan.org) or/and VVCEasy, so the VLC community or I/we can help you to solve your problem.
|
||||
|
||||
dvbpsi build requires of TS Demuxer Plugin:
|
||||
|
||||
```
|
||||
@ -121,6 +189,6 @@ The VVC video file cannot loaded by newest version of VLC 4.0.0-dev, because it
|
||||
|
||||
For more information about VLC 4.0.0-dev see: https://www.theverge.com/2021/2/12/22279750/vlc-4-0-new-user-interface-videolan-media-player-video-music-movie-database-web-player
|
||||
|
||||
I tried to build two DLL files on VLC 4.0.0 SDK, but the compiler failed, so you must use VLC 3.0.9.2 and latest of VLC 3 version branch.
|
||||
I tried to build two DLL files on VLC 4.0.0 SDK, but the compiler failed, so you must use VLC 3.0.9.2 or latest of VLC 3 version branch.
|
||||
|
||||
- Martin Eesmaa
|
||||
|
@ -1,16 +0,0 @@
|
||||
# LAV Filters for Windows (VVC version)
|
||||
|
||||
LAV Filters is an open source of Windows DirectShow filters with splitter and decoder for FFmpeg.
|
||||
|
||||
For VVC version, it includes external VVC decoder libvvdec and xHE-AAC with LAV Filters and can be played by any DirectShow players, but it requires Windows Vista and later.
|
||||
|
||||
To install LAV Filters VVC version on your computer, you need right click and run as administrator for batch files (.BAT file).
|
||||
|
||||
Original source code: https://github.com/Nevcairiel/LAVFilters
|
||||
|
||||
Changelog:
|
||||
```
|
||||
21/03/2023: Full VVC support and libfdk_aac is default after native AAC and AAC Fixed decoder disabled to fix USAC/xHE-AAC playable.
|
||||
```
|
||||
|
||||
- Martin Eesmaa
|
BIN
LAVFilters/LAVFilters-0.79.2-x64-VVCEasy.7z
Normal file
58
LAVFilters/README.md
Normal file
@ -0,0 +1,58 @@
|
||||
# LAV Filters for Windows (VVC version)
|
||||
|
||||
LAV Filters is an open source of Windows DirectShow filters with splitter and decoder for FFmpeg.
|
||||
|
||||
For VVC version, it includes external VVC decoder libvvdec and xHE-AAC with LAV Filters and can be played by any DirectShow players, but it requires Windows Vista and later.
|
||||
|
||||
To install LAV Filters VVC version on your computer, you need right click and run as administrator for batch files (.BAT file).
|
||||
|
||||
Original source code: https://github.com/Nevcairiel/LAVFilters
|
||||
|
||||
Changelog:
|
||||
```
|
||||
30/03/2025: Updated LAVFilters with new commits, FFmpeg, vvdec and others. Sorry long time and also sorry big DLL sizes.
|
||||
01/10/2024: Updated LAVFilters with new commits, FFmpeg, vvdec and others. Added support VVC Matroska demux and also much better for shrinking DLL files down.
|
||||
09/04/2024: Updated LAVFilters with new commits, FFmpeg and others.
|
||||
30/03/2024: Updated LAVFilters with new commits, FFmpeg, vvdec and others, still uses libvvdec library and disabled VVC native decoder.
|
||||
29/01/2024: Updated LAVFilters with new clsid2 commits, FFmpeg, vvdec and others.
|
||||
15/11/2023: Updated LAVFilters, new clsid2 commits from forked repository, FFmpeg, vvdec and others.
|
||||
11/08/2023: Updated vvdec
|
||||
04/08/2023: Updated vvdec and others.
|
||||
04/04/2023: Removed matroska demuxer of FFmpeg configuration to fix some computers having problem to play any Matroska container. Fixes #26.
|
||||
21/03/2023: Full VVC support and libfdk_aac is default after native AAC and AAC Fixed decoder disabled to fix USAC/xHE-AAC playable.
|
||||
```
|
||||
|
||||
## MPC-HC 2.3.5 (VVC version)
|
||||
|
||||
MPC-HC 2.3.5 comes with LAVFilters VVC installed and it is portable.
|
||||
|
||||
You can download via cloud link: https://mega.nz/file/i5tnRBIQ#W342OZPr0E0iuOUCPB-Yd7ASKxlPF3J41p-7dlm-vww
|
||||
|
||||
After downloading, extract compressed file via [7-Zip](https://7-zip.org) and run `mpc-hc64.exe`. This program doesn't require administrator privileges.
|
||||
|
||||
Original forked source code: https://github.com/clsid2/mpc-hc
|
||||
|
||||
Changelog:
|
||||
```
|
||||
01/10/2024: Updated MPC-HC, LAVFilters with new commits, FFmpeg, vvdec, yt-dlp and others. Added support VVC Matroska demux and also much better for shrinking DLL files down.
|
||||
09/04/2024: Updated MPC-HC, LAVFilters with new commits, FFmpeg and others.
|
||||
30/03/2024: Updated MPC-HC, LAVFilters with new commits, FFmpeg, MediaInfo, yt-dlp, vvdec and others, still uses libvvdec library and disabled VVC native decoder.
|
||||
29/01/2024: Updated MPC-HC, LAVFilters with new clsid2 commits, FFmpeg, vvdec, Mediainfo, yt-dlp and others.
|
||||
15/11/2023: Updated MPC-HC, LAVFilters, new clsid2 commits from forked repository, FFmpeg, vvdec and others. Added yt-dlp support.
|
||||
11/08/2023: Updated vvdec
|
||||
05/08/2023: Uploaded MPC-HC 2.0.0 portable x64 VVCEasy version with LAVFilters64 installed.
|
||||
```
|
||||
|
||||
## MPC-BE 1.7.0+ (Black Edition)
|
||||
|
||||
Since MPC-BE version 1.7.0 and later, it supports VVC (libvvdec) and USAC (libfdk_aac) decoding.
|
||||
|
||||
MPC-BE is Windows universal video and audio player improved similar and more external features added than MPC-HC.
|
||||
|
||||
Original forked source code: https://github.com/Aleksoid1978/MPC-BE
|
||||
|
||||
You can download binaries on GitHub releases: https://github.com/Aleksoid1978/MPC-BE/releases
|
||||
|
||||
Nightly builds: https://github.com/Aleksoid1978/MPC-BE/wiki/Nightly-builds
|
||||
|
||||
- Martin Eesmaa
|
@ -1,16 +1,25 @@
|
||||
9da0f180e93a23e3e54f7e0de9343a95c05dd84e6a0bb1890b08ebf8db51cbc1 arm64/vvdecapp
|
||||
1a82c9388be5b3ea7a80a4f9d567767a4e442c66a8c79f633ea194fc4e46e1ac arm64/vvencapp
|
||||
c19e0a6b87b10a59e8c265b261697892acf0534415f145960820a9af2b883e7c arm64/vvencFFapp
|
||||
767db0f49a827ca815b360fc794d23f6b3225da77ccf45dc88cdd1bf8cc2e3b0 arm64/vvencinterfacetest
|
||||
126b39cea6f768482e0d6349700122753473e9add18323dbd87e5e42d799c12e arm64/vvenclibtest
|
||||
274cb13f18fa8580ecddbae973180a67d3e5dedccc8304a52455829f2cde6ba7 LinuxVVC.7z
|
||||
6f70f517a10fa946ebb989c01142855b46e75ddefbdc2d45f54438251b6e44ce vvdecapp
|
||||
7d55e872ccc424773bb8c6ba17318dee4d087ae7ca8e336c45578f9b6529f26a vvencapp
|
||||
86ca551aa7d898f514fbd7c71f32678d3505dc5fbed46d48a34ba65c74d6fed7 vvencFFapp
|
||||
918579cdbaee32d171e97022d7e0e446b4fb57689bb743ca3b8bf4ce3f4af50e vvencinterfacetest
|
||||
478a3de7c45437ac1f3c3d80f04dec075405f1021ad76f9aca0df30db5f4f87d vvenclibtest
|
||||
6f70f517a10fa946ebb989c01142855b46e75ddefbdc2d45f54438251b6e44ce x64/vvdecapp
|
||||
59533e5dbe7dccacc73f5da1d50e1d12e70b06a936a082acb5db77e05a1b1c67 x64/vvencapp
|
||||
85bb66f8374c6735cfa2ebc737206e5a4c6d06512dfd6dfd52c7a3a7088c962a x64/vvencFFapp
|
||||
e3c6d3b292d4a75f5f7a54d584b3a7fbcb834c80a45efad2ef8f4910c131e2fb x64/vvencinterfacetest
|
||||
a52ff605cfdaa7209f24001e91193005d44a6ebe08130ec9cef2a6c85b4bcbe4 x64/vvenclibtest
|
||||
10d026b94b28e0550b92a6f33972a13a5860e4ab2e542871c4e7db96f15e3ace arm64/vvdecapp
|
||||
b5e9ad76c4e0a08c66177b5b6861ad04aee9d81fa3b4c698e4ba70eb675a2fb1 arm64/vvencapp
|
||||
02c7b9f7f5a470ab936a48bf237131bfae1c447ca4ebf531e4d82901fa6a1e8a arm64/vvencFFapp
|
||||
af215bec38884bbb1d84cfda6b498e9c19b39938651120093b051fe252549dab arm64/vvencinterfacetest
|
||||
f960c2d20724a36013fccb0abfa2398d7bbfdeba488a13836b3cf361084d7bf2 arm64/vvenclibtest
|
||||
13b47d4a53d8053039f5a854de9d5ec844537a2886ba5e62b973ad59e8885c53 arm64/vvenc_unit_test
|
||||
e9e5b1535f1ae4bf106dc207d118d649c5ec8e148388085be23a13701b187054 armv7/vvdecapp
|
||||
0f2298dfb3f0fecda57bfe3b3c560a36f0814288bade41075c85b576994a63af armv7/vvencapp
|
||||
cf68db364b5c9550d38d54a18f89e38d0372d92630a205a92b13ea9f8f146cad armv7/vvencFFapp
|
||||
c879451a850831d38083daf20569caa9d4d76684fe467873bda1ae964bcd2000 armv7/vvencinterfacetest
|
||||
d0a4ae46beaa466f1b7e6594363ac818c0b376068f426213d76c3e22daea2492 armv7/vvenclibtest
|
||||
3e0cda322329aabd93f266718941a79c1521c163d846ee2ed2b29e548d11d2df armv7/vvenc_unit_test
|
||||
f6ebc2aff881a94e5380c7c12695b029d1ddaef85f4ad9e829dc62229a070da3 LinuxVVC.7z
|
||||
00523a8d286f2b53665a8e0fe97f0665b82864f5ccb6bdc27dfaf0721031e7e4 x64/vvdecapp
|
||||
dbfe46e6400337bbc8c5a2df277bdd7fd3d4182d39084cf73e0517ff8c95dbc4 x64/vvencapp
|
||||
1328ed26c434261da8356315b68ec7f075797ad78e0cc608cefffc9cb3f0d4b4 x64/vvencFFapp
|
||||
f424bc8b83ccff22919b53f78b32830fdc76a2fa8e1ff8760aa0403e2e3f844f x64/vvencinterfacetest
|
||||
432dc6d4b5eb0ec4e5979042506a0b760071f9a5534363db338b018cb77a893d x64/vvenclibtest
|
||||
44b7fa55efc6805a7e4a87c25d77c08cb6388828aecb50a1aa3ddb604afe0c3e x64/vvenc_unit_test
|
||||
47e02af479e38d88f0a8994fa79d22da4be88ae94ce61a301c2d18ce3d0b4ae9 x86/vvdecapp
|
||||
4269acf3a5bfec6b82ca4c677ec611b8f482db7707d0966f392b3f13f44da278 x86/vvencapp
|
||||
a92b62073d7906ce2a79de06bbbe5944ea10cad6d92932acc5300190b3c62819 x86/vvencFFapp
|
||||
806952c6962379f258152c4419e32c3a31781557493c5a9a5c2645e87a8c0444 x86/vvencinterfacetest
|
||||
3993604e75244afcda2538b8fbea106033ddcc36c591ae26c901ae7fb29def52 x86/vvenclibtest
|
||||
a0b8497f94394342a063ba0ba10f630bcdf13d574b31a155b8a24fbe22b17acd x86/vvenc_unit_test
|
||||
|
130
MPV.md
@ -1,36 +1,101 @@
|
||||

|
||||
|
||||
# MPV Windows/Android Player (libvvdec + xHE-AAC support)
|
||||
# MPV Windows/Linux/Android Player (libvvdec + xHE-AAC support)
|
||||
|
||||
MPV Windows/Android Player (libvvdec + xHE-AAC support) can play your VVC decoded video file and mixed MP4 container with VVC video codec + audio.
|
||||
MPV Windows/Linux/Android Player (libvvdec + xHE-AAC support) can play your VVC decoded video file and mixed MP4 container with VVC video codec + audio, also it plays xHE-AAC audio with Fraunhofer FDK library.
|
||||
|
||||
Screenshot preview, see top-left information of toggle stats on Windows/Android device:
|
||||
Screenshot preview, see top-left information of toggle stats on Windows/Linux/Android device:
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
# Download MPV Windows/Android Player (libvvdec + xHE-AAC plugin)
|
||||

|
||||
|
||||
[Windows 7 and later x64](https://mega.nz/file/78NjGDbS#Tu5RoJHJmaHGyZaeL5rc7pfh3X2lbIIZ70zKqRtKNKc)
|
||||
# Download MPV Windows/Linux/Android Player (libvvdec + xHE-AAC plugin)
|
||||
|
||||
[Windows MPV.NET VVCEasy version x64](https://mega.nz/file/a5thiAzS#RIJRVXKezVTRVcukauxpxHMQGtoGpyOthiw2zTNi1bE)
|
||||
[Manual builds generated Windows x64 on GitHub Actions](https://github.com/MartinEesmaa/mpv-winbuild-cmake/releases)
|
||||
|
||||
[Windows MPVLIB VVCEasy version x64](https://mega.nz/file/n8dAwBSZ#abnQSBIL4uzahXM8ZdomUHbh40S93-tp3okrlZ7gT6o)
|
||||
[Windows 7 and later x64](https://mega.nz/file/20syxBgS#69Hs6eKFHJz1seJFVeP1bZ_Qv7Zb4ygCC90rQqfBY7o)
|
||||
|
||||
[Android API 29 .APK Debug (Recommended)](https://mega.nz/file/L9VyXQIY#HfPbk_txbfFyXoGWWY0lOEr4N1diwlnyF0-EnZ_MZA0)
|
||||
[Windows MPV.NET VVCEasy version x64](https://mega.nz/file/mgVCBAIb#cxLIN76oRacfnVLhHBEjieGwz2M0CeV9mI2mbHc6aFo)
|
||||
|
||||
[Android API 29 .APK Release unsigned](https://mega.nz/file/34M1DJ5L#wNd8aTr9B2eLEAgd01mnL8CEOe0JTVrxO4XvpzJeCY4)
|
||||
[Windows MPVLIB VVCEasy version x64](https://mega.nz/file/Tl92DKzA#DuE3ZMBT4sd1wOO6YAOZXrj0tMLsGvlbCXlU7YsVWVE)
|
||||
|
||||
[Android API 29 .APK Debug with gpu-next](https://mega.nz/file/3p0zyCCI#BRmCY58lwikvck0gbcyFX3IvcGu_7wxZn-mWezaD1uk)
|
||||
[Windows 7 and later x86_64-v3 native](https://mega.nz/file/u1l2zTYA#HmiZtkd46EMd9pqcTnhWGC-M3nCv3Y__jLN9T7jLc-c)
|
||||
|
||||
[Android API 29 .APK Release with gpu-next](https://mega.nz/file/C5dyXbpJ#ta2DouVYLOaXeZ6VW9fLqIm7a3I2AoFxWlD-unG18T4)
|
||||
[Windows MPVLIB VVCEasy version x86_64-v3 native](https://mega.nz/file/24UggbYD#CsTqPGLa4nEfs_9UheV0auISenDXqFdu465PZfRqozY)
|
||||
|
||||
[Linux MPV VVCEasy version x64](https://mega.nz/file/roNhCRzA#0a4Gl4hcldnv034KlvRPdHgBy02I3TyUyPVv4SCTBN4)
|
||||
|
||||
[Arch Linux MPV VVCEasy version x64](https://mega.nz/file/2pFDTSzT#GwoVQ0u6RStUwjk3rc5LkIzLQgmSDMhgV1Xk8WMeQ-w)
|
||||
|
||||
[Android API 29 .APK Debug (Recommended)](https://mega.nz/file/DkswgKIT#rRhjtWR1TzwZU6yZECQsoPaWRLmnqgbWORZYi0RnlQI)
|
||||
|
||||
[Android API 29 .APK Release unsigned](https://mega.nz/file/6gNRVLrR#cmgB7AaBFIm2XgG3spuAdGbzw9VCUHSLD5mPwSIIJok)
|
||||
|
||||
# Official MPV VVC native decoder implementation
|
||||
|
||||
It started at January 4 2024 when the native VVC decoder is released on FFmpeg, but it was experimental without IBC (Intra Block Copy).
|
||||
|
||||
On February 24 2024, the finally moment about Intra Block Copy has been merged into FFmpeg's official repository, which means native VVC decoder on FFmpeg is completed and it's stable.
|
||||
|
||||
His hard work is very good and made by [nuomi2021](https://github.com/nuomi2021) to make native VVC decoder release to FFmpeg.
|
||||
|
||||
Now you can use official MPV binaries by shinchiro or my custom build of MPV VVCEasy build to play or decode VVC in MPV. Also FFmpeg too with Btbn or Gyan or VVCEasy builds. :)
|
||||
|
||||
Update of 21.03.2024: On March 14th 2024, the official FFmpeg native VVC decoder set to experimental for some little bugs.
|
||||
|
||||
See the FFmpeg commit: https://github.com/FFmpeg/FFmpeg/commit/110d8549d575aae6b2f627cd63e2eb7082ab8926
|
||||
|
||||
Switched native VVC decoder back to external VVC decoder of libvvdec after native VVC decoder is experimental.
|
||||
|
||||
### Changelog
|
||||
|
||||
Please check the changelog before you download the new version.
|
||||
|
||||
```
|
||||
01/04/2025 - Fixed Linux MPV VVCEasy build by removing shared object file of libstdc++ for some distributions.
|
||||
28/03/2025 - Added manual automatic builds of Windows x64 inside GitHub actions on my forked repo.
|
||||
19/03/2025 - After nine months, it is now updated MPV Linux VVCEasy build with latest version.
|
||||
07/12/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg latest, vvenc, vvdec, Mediainfo and others. Automatic builds will be soon for Windows, Linux and Android if possible.
|
||||
07/10/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg for up to 7.1, vvdec up to 3.0.0-rc2, Mediainfo and others.
|
||||
20/06/2024 - Updated Windows MPV/MPV.NET/MPV LIB & Linux standalone AppImage VVCEasy build with FFmpeg, vvdec, MediaInfo and others.
|
||||
17/06/2024 - Updated Android MPV VVCEasy latest build by replacing old FFmpeg by current new FFmpeg-VVC.
|
||||
30/05/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg, vvdec and others.
|
||||
29/04/2024 - Updated Windows MPV/MPV.NET/MPV LIB & Linux standalone AppImage VVCEasy build with FFmpeg and others. Added official VVC Matroska tag of V_MPEGI/ISO/VVC, also still supports vvc1 fourcc on V_QUICKTIME tag.
|
||||
28/04/2024 - Updated Windows MPV/MPV.NET/MPV LIB & Linux standalone AppImage VVCEasy build with FFmpeg, MediaInfo and others. Added support matroska VVC demux on MPV & SAC demuxer (code by Martin Eesmaa).
|
||||
09/04/2024 - Removed unnecessary shared object files of libgbm, libm, libc and libgcc_s on Linux and Arch Linux AppImages, but now standard Linux AppImage works for all Linux distributions without segmentation fault and Arch Linux AppImage works for Arch based only.
|
||||
08/04/2024 - Updated FFmpeg for up to 7.0 with nightly latest with MPV VVCEasy Linux latest version and others.
|
||||
07/04/2024 - Fixed the bug of Android MPV VVCEasy builds by allowing & showing permission of Files and media since Android 13 to access all full of files, also older than Android 13 is still fine.
|
||||
07/04/2024 - Updated Android MPV VVCEasy latest build with FFmpeg for up to 7.0 with nightly, vvdec and others. Removed libxml2 for configuration and compilation error for using latest version and NDK, so next time or some times I'll put libxml2 back when problem is solved. Downgraded from mbedtls v3 to v2 to make sure include "mbedtls/certs.h" is found during FFmpeg compiling.
|
||||
07/04/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg for up to 7.0 with nightly, MediaInfo and others.
|
||||
04/04/2024 - Updated FFmpeg latest with MPV VVCEasy Linux latest version, vvdec and others.
|
||||
22/03/2024 - Added Windows MPV/MPV.LIB VVCEasy native x64-v3 build with use LLVM, Clang, mimalloc and LTO on, requested by Andarwinux at issue #42 improved.
|
||||
21/03/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg, vvdec and others. Official FFmpeg commit made native VVC decoder set to experimental, now using libvvdec to decode VVC video. Fixed issue #42.
|
||||
06/03/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg, vvdec and others. Switched from external VVC decoder to native VVC decoder for reduce CPU usage.
|
||||
01/03/2024 - Just small added words on instructions.
|
||||
29/02/2024 - Note about official Windows MPV (shinchiro) and VVCEasy builds can play stable video of VVC for playing via decode. I'll release soon later...
|
||||
20/01/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg, vvdec and others. About vvdec update, this lowers CPU usage than previous build.
|
||||
05/01/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg and others.
|
||||
28/12/2023 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg, vvdec, Mediainfo and others.
|
||||
02/12/2023 - Updated FFmpeg latest with MPV VVCEasy Linux latest version and others.
|
||||
01/12/2023 - Updated Android MPV VVCEasy latest build
|
||||
29/11/2023 - Fixed MPV Android VVCEasy build for file picker legacy issue
|
||||
29/11/2023 - Updated Android MPV VVCEasy build with latest FFmpeg, vvdec and others.
|
||||
18/11/2023 - Updated FFmpeg with MPV/MPV.NET/MPV LIB VVCEasy Windows build, vvdec and others.
|
||||
24/10/2023 - Updated Android MPV VVCEasy build with vvdec and others.
|
||||
23/10/2023 - Removed libmujs for error shared libraries loading reason on Arch Linux.
|
||||
23/10/2023 - Added X11 support to Arch Linux AppImage of MPV VVCEasy build.
|
||||
23/10/2023 - Added Arch Linux support to avoid segmentation fault reason, just another new AppImage.
|
||||
11/10/2023 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build, vvdec, Mediainfo and others.
|
||||
20/09/2023 - Update vvenc & libraries on FFmpeg.
|
||||
16/09/2023 - Update MPV Linux VVCEasy build with libraries.
|
||||
14/08/2023 - Update Android MPV VVCEasy build with vvdec updated.
|
||||
11/08/2023 - Update Linux MPV VVCEasy build and vvdec.
|
||||
11/08/2023 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build, vvdec, Mediainfo and others.
|
||||
03/08/2023 - Initial release of MPV Linux version AppImage.
|
||||
05/07/2023 - Updated MPV/MPV.NET VVCEasy build.
|
||||
18/06/2023 - Improved codes and new commits of Android MPV VVCEasy custom build standalone.
|
||||
17/06/2023 - Cross compiled of Windows using Arch Linux for improved libraries and updated FFmpeg, MPV & MPV.NET VVCEasy build. New libmpv build.
|
||||
04/04/2023 - New Android MPV VVCEasy build with new FFmpeg VVCEasy libraries for updated vvenc and vvdec. For gpu-next build, still experimental.
|
||||
@ -52,30 +117,43 @@ Please check the changelog before you download the new version.
|
||||
|
||||
# Limitations & Tips
|
||||
|
||||
MPV Android libvvdec app requires your system type of ARM64 (aarch64), x86 (i686), ARMv7 (armeabi-v7a) and x86_64 to run on Android or Windows requires to run x64.
|
||||
MPV Android libvvdec app requires your system type of ARM64 (aarch64), x86 (i686), ARMv7 (armeabi-v7a) and x86_64 to run on Android, Windows requires to run x64 or Linux requires to run x64.
|
||||
|
||||
Windows/Android MPV Player doesn't work seek duration of VVC decoded file only, but only mp4 video container mixed with VVC video codec is only seek supported, including audio & subtitle too.
|
||||
Windows/Linux/Android MPV Player doesn't work seek duration of VVC decoded file only, but only mp4 video container mixed with VVC video codec is only seek supported, including audio & subtitle too.
|
||||
|
||||
Some Android users for 10-bit pixel format or/and tier high might not show video in mp4 container with VVC video codec only.
|
||||
Some Android users for 10-bit pixel format or/and tier high might not show video in mp4 container with VVC video codec only.
|
||||
|
||||
Solution: Please download latest mp4box nightly version and re-mux from .266 to .mp4 file again.
|
||||
|
||||
AppImage needs required fuse installed of your Linux distribution on your computer.
|
||||
|
||||
Some Linux distributions may not work for AppImage, which may result segmentation fault. Builded & tested on Ubuntu 22.04.2.
|
||||
|
||||
About Linux MPV VVCEasy AppImage problem before solution: The problem was that I put four shared object files of libgbm, libm, libc and libgcc_s on both AppImages, which makes some Linux distributions problem
|
||||
|
||||
Solution: Please update latest version of Linux or Arch Linux MPV VVCEasy AppImage, because I removed four shared object files of libgbm, libm, libc and libgcc_s to make all Linux distributions work on standalone Linux AppImage, also includes Arch Linux AppImage can work for only all Arch based operating systems.
|
||||
|
||||
If you're using Arch Linux or Arch based, please download the Arch Linux AppImage version. You can still use standalone Linux AppImage on Arch Linux or Arch based systems.
|
||||
|
||||
### Tips
|
||||
|
||||
Make sure to allow apps from unknown sources. Link: [Wikihow](https://www.wikihow.com/Allow-Apps-from-Unknown-Sources-on-Android)
|
||||
|
||||
If Google warns you that Android MPV (libvvdec plugin) app is malicious by Play Protect, press "Install anyway" on your phone.
|
||||
If Google warns you that Android MPV (libvvdec plugin) app claimed is malicious by Play Protect, press "Install anyway" on your phone.
|
||||
|
||||
On Windows, there is available MPV.NET custom build on this download. Source code: https://github.com/stax76/mpv.net
|
||||
On Windows, there is available MPV.NET custom build on this download. You can have look for source code: https://github.com/stax76/mpv.net
|
||||
|
||||
# SHA256 SUMS
|
||||
```
|
||||
e1c96ffc079d5433dca22322dacbd14bf1ad2cca3056c67976b03f34cf46f01a MPV-VVCEasy-API29debug.apk
|
||||
95a469ac4b11b3d9323e02c2757d7cbb0e4507d8a97d54e4134f31a47c1341e2 MPV-VVCEasy-API29release-unsigned.apk
|
||||
6cca9e73a23a376f704f60e716d1ecc206c290e908b42aab341353f304dacc58 MPV-VVCEasy-API29debug-gpunext.apk
|
||||
55a4182bf4a0bec8b0236e7de3c2f169a4df33735b842b083951647dbf5bfe64 MPV-VVCEasy-API29release-unsigned-gpunext.apk
|
||||
35bb3422e977edb65405bd26e4de9b64705e08455fd8e3561a9610628f0bafab MPV-VVCEasy-Windows-x64.7z
|
||||
bcdd83d7d6e393e990808cdc19b7580e5d98c537c42eb67e9774f86b22f5e533 MPV.NET-VVCEasy-Windows-x64.7z
|
||||
ee5d8b2ebdda7e9bacfe4a9dd2ce199e96f2a16ac56a8840190a5c66d86e2471 MPV-VVCEasy-API29debug.apk
|
||||
cc4ba84d91b91edda102bc0086fbfbfdee1a8b1dd9196bc76edd00101fdaff10 MPV-VVCEasy-API29release-unsigned.apk
|
||||
9044b7d67eaa020d5e59d437b3fc10dd2e6f60eedfff8034c4dd608145bff17d MPV-VVCEasy-Windows-x64.7z
|
||||
486b8a1f6e3744935446a846f1ee69bbbca2b81752ea4ea1aae4dc2d479b7909 MPV.NET-VVCEasy-Windows-x64.7z
|
||||
7cb80e644657e0447eea33c51517ae428ed841cdc7d0b4155f986ab5226c5894 MPVLIB-VVCEasy-Windows-x64.7z
|
||||
8d486291a371c8663e7ddd1d9845cf54f81c316a9c795333a5b490f7621a6cb3 MPV-VVCEasy-Windows-NativeX64.7z
|
||||
003dbdf1cd6639ff906c2c17dde69a16c1df7fa565cf310ba014ea24b5b330a5 MPVLIB-VVCEasy-Windows-NativeX64.7z
|
||||
c477c0214221f706301b7be620f7442731bb4746d1b5719a890128769bc62767 MPV-VVCEasy-Linux-x64.7z
|
||||
ab23b1928069bd3584297dae1d90a95fe2910f91936766ddfa5bdafd53c8a300 MPV-VVCEasy-ArchLinux-x64.7z
|
||||
```
|
||||
|
||||
# Build MPV Android with VVC and xHE-AAC:
|
||||
@ -115,10 +193,10 @@ nano deps/fdkaac/libSBRdec/src/lpp_tran.cpp
|
||||
|
||||
Save the file in nano editor, when you finished removing `#ifdef __ANDROID` lines.
|
||||
|
||||
**TIP: You can edit script of vvdec.sh on your own choice.**
|
||||
**TIP: You can edit script of vvdec.sh by your own choice.**
|
||||
|
||||
Continue follow instructions to build your own MPV build:
|
||||
|
||||
https://github.com/mpv-android/mpv-android/blob/master/buildscripts/README.md
|
||||
https://github.com/MartinEesmaa/mpv-android-vvc/blob/master/buildscripts/README.md
|
||||
|
||||
- Martin Eesmaa
|
@ -1,11 +1,13 @@
|
||||
79d6f766a250980bc3ba7c082b86b5005df4b1898e55bc3d1b018512fc300410 arm64/vvdecapp
|
||||
b49c4e67c0ea6bcc817711f127a1a73eeeaa835014e8012adaf6bda8c6d22d98 arm64/vvencapp
|
||||
efb33ea9e833a64c81917d57b482e9aa5a60df67e8e4ed14e21d676cc4fecdf4 arm64/vvencFFapp
|
||||
38c9530cddb8e4c7c26e7e24072218ad4a073e1e75c182e38bdf93ec0d2e4ec9 arm64/vvencinterfacetest
|
||||
b9de440956178fddc85667f6383289863e249a6f506e82fb8bb10194d034ce65 arm64/vvenclibtest
|
||||
13ee8659a31f8867e681b187689b332aa02ba155c866a8902080096dca537f64 intel_x64/vvdecapp
|
||||
2dcbb19301375dd6df6bd0ba32c478196d7444bf392dc25e68043a6f0f54fa07 intel_x64/vvencapp
|
||||
296431dee43444c6d6d976eb54a4046e48311d4b3b4ee21a1e273b1d9bb26486 intel_x64/vvencFFapp
|
||||
88e3dcafa38fa7b5ee8669eda89292211802eb095ad7fabf18258f6a5fd0ce29 intel_x64/vvencinterfacetest
|
||||
d192ca2e45d0dbf3cdf769688795416f1d2605a9a793d9d75072a16ebc5798a0 intel_x64/vvenclibtest
|
||||
331947784a061cef9c944ebdf5fb64552663bba8f95f293c6e71bbf02a0a6973 MacOSVVC.7z
|
||||
720529bd0b1fa0e13824ba7b1e16ef0668c9ad1265786bfc1f3fa72b60bfe961 arm64/vvdecapp
|
||||
fe4d0e5324cb42e23b0893c4f24a62b4342fceab5f9edfe95b3d27fce9fa62aa arm64/vvencapp
|
||||
0af7444f73ecccaa2c68eec5f5b20232e6d2cf8375582a534e97cd1398be19f1 arm64/vvencFFapp
|
||||
212f4e4e929587d40ea28cedc8b57184b754dec982757411db135968fe27a7d9 arm64/vvencinterfacetest
|
||||
87b3b305e315ca88baa3e22c5292da7d2ee7c178b146b3433f16afb362acc59e arm64/vvenclibtest
|
||||
bde62b283312782f84e5baa77bc81e9e2094674be627b66d9eaec18734dafbcf arm64/vvenc_unit_test
|
||||
d68ac52a48d3b9938650c380250d6b0c1befa5f3410c369b73f7c71026e58a1c intel_x64/vvdecapp
|
||||
1633c2f35d59c2e106416c6e713fb0d917c426074d5fa816d41e079f7195b3ac intel_x64/vvencapp
|
||||
5d0ec4085e0f01a5019a7a8cd3331bbe0031ff210a5cd4cf7a863bb59f550349 intel_x64/vvencFFapp
|
||||
b073c8aac08c4ee1f6ae96cf9625443456e2ae0d2a97cb3402fe55817fbf882e intel_x64/vvencinterfacetest
|
||||
74103ac19b58ca92dfde5767bab2e010dd3594c877b37431423a17a2c54bed5a intel_x64/vvenclibtest
|
||||
38bf06a7d89e117c102a4b2cd0ab59b135dbb456730cd5cb936854602ba729bd intel_x64/vvenc_unit_test
|
||||
6dfaef724c7a2e803e75a1f76e1bddb7ebd7dc0b6660bad41b162d1a19b5eaa8 MacOSVVC.7z
|
||||
|
151
Program.cs
@ -1,4 +1,5 @@
|
||||
using System.Net;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace VVCEasy
|
||||
{
|
||||
@ -6,12 +7,12 @@ namespace VVCEasy
|
||||
{
|
||||
public static void Main()
|
||||
{
|
||||
string version = "v2.0.0";
|
||||
string codeversion = "Party of Martin Eesmaa's birthday at age 18.";
|
||||
string version = "v2.7.0";
|
||||
string codeversion = "Martin Eesmaa at age 19, wow nice!";
|
||||
string title = "Martin Eesmaa / VVCEasy";
|
||||
bool exit = false;
|
||||
Console.Title = title;
|
||||
Console.WriteLine("Martin Eesmaa / VVCEasy\nWelcome to VVCEasy. (.NET Console Release Version, " + version + ")\nVersion codename: " + codeversion);
|
||||
Console.WriteLine($"Martin Eesmaa / VVCEasy\nWelcome to VVCEasy (.NET Console Release Version, {version})\nVersion codename: {codeversion}");
|
||||
Console.ReadLine();
|
||||
do
|
||||
{
|
||||
@ -19,8 +20,9 @@ namespace VVCEasy
|
||||
Console.WriteLine("VVCEasy (.NET Console Release Version, " + version + ")");
|
||||
Console.WriteLine("Version codename: " + codeversion);
|
||||
Console.WriteLine("Note: C# is not ready yet, malfunction mode\n");
|
||||
Console.WriteLine("Copyright (C) Martin Eesmaa 2021-2024 (MIT License)");
|
||||
Console.Title = title;
|
||||
Console.WriteLine("What would you like to do for encode/decode of VVC?\n1. Encode\n2. Decode\n3. Help\n4. Exit\n5. Install/Test path environment\n6. Install FFmpeg VVDec support\n7. Install quickly through Anaconda for ffmpeg (Windows)\n8. Install VVdec Web Player\n9. Decompress WindowsVVC.7z (Before you use new VVCEasy version!!!)\n10. Install vvDecPlayer from BitMovin\n11. Install/Update VLC VTM Plugins (Windows/Linux x64 of VLC plugins by Inter Digital Inc)\n12. Install MPV Windows/Android (libvvdec plugin)\n13. Tests of VVC videos");
|
||||
Console.WriteLine("What would you like to do for encode/decode of VVC?\n1. Encode\n2. Decode\n3. Help\n4. Exit\n5. Install/Test path environment\n6. Install FFmpeg VVDec support\n7. Install VVdec Web Player\n8. Decompress WindowsVVC.7z (Before you use new VVCEasy version!!!)\n9. Install vvDecPlayer from BitMovin\n10. Install/Update VLC VTM Plugins (Windows/Linux x64 of VLC plugins by Inter Digital Inc)\n11. Install MPV Windows/Android (libvvdec plugin)\n12. Tests of VVC videos");
|
||||
|
||||
string input = Console.ReadLine();
|
||||
|
||||
@ -100,7 +102,7 @@ namespace VVCEasy
|
||||
Console.Clear();
|
||||
Console.Title = "Have a wonderful day!";
|
||||
Console.WriteLine("Have a wonderful day! Thank you for using VVCEasy. :)");
|
||||
Console.WriteLine(" _ _ _ \n | | | | | | \n | |_| |__ __ _ _ __ | | ___ _ ___ _ _ \n | __| '_ / / _` | '_ /| |/ / | | |/ _ /| | | |\n | |_| | | | (_| | | | | <| |_| | (_) | |_| |\n /__|_| |_|/__,_|_| |_|_|/_\\__, |/___/ /__,_|\n __/ | \n |___/\n\n\n __ ____ _______ ______ \n / / / // / / / ____| ____| \n / // / / // /| | | __| / _` / __| | | |\n / / / / | |____| |___| (_| /__ / |_| |\n // // /_____|______/__,_|___//__, |\n __/ |\n |___/ \n\n\n __ __ _ _ ______ \n | // | | | (_) | ____| \n | / / | __ _ _ __| |_ _ _ __ | |__ ___ ___ _ __ ___ __ _ __ _ \n | |//| |/ _` | '__| __| | '_ / | __| / _ // __| '_ ` _ / / _` |/ _` |\n | | | | (_| | | | |_| | | | | | |___| __//__ / | | | | | (_| | (_| |\n |_| |_|/__,_|_| /__|_|_| |_| |______/___||___/_| |_| |_|/__,_|/__,_|\nCopyright 2021-2022 Martin Eesmaa\n\nExiting program...");
|
||||
Console.WriteLine(" _ _ _ \n | | | | | | \n | |_| |__ __ _ _ __ | | ___ _ ___ _ _ \n | __| '_ / / _` | '_ /| |/ / | | |/ _ /| | | |\n | |_| | | | (_| | | | | <| |_| | (_) | |_| |\n /__|_| |_|/__,_|_| |_|_|/_\\__, |/___/ /__,_|\n __/ | \n |___/\n\n\n __ ____ _______ ______ \n / / / // / / / ____| ____| \n / // / / // /| | | __| / _` / __| | | |\n / / / / | |____| |___| (_| /__ / |_| |\n // // /_____|______/__,_|___//__, |\n __/ |\n |___/ \n\n\n __ __ _ _ ______ \n | // | | | (_) | ____| \n | / / | __ _ _ __| |_ _ _ __ | |__ ___ ___ _ __ ___ __ _ __ _ \n | |//| |/ _` | '__| __| | '_ / | __| / _ // __| '_ ` _ / / _` |/ _` |\n | | | | (_| | | | |_| | | | | | |___| __//__ / | | | | | (_| | (_| |\n |_| |_|/__,_|_| /__|_|_| |_| |______/___||___/_| |_| |_|/__,_|/__,_|\nCopyright (C) Martin Eesmaa 2021-2024 (MIT License)\n\nExiting program...");
|
||||
Thread.Sleep(5000);
|
||||
exit = true;
|
||||
}
|
||||
@ -142,25 +144,11 @@ namespace VVCEasy
|
||||
|
||||
if (vlcinstall == "Y")
|
||||
{
|
||||
Console.WriteLine("Your favorite operating system is available on FFmpeg VVDec support. Please copy the link to a web browser.\nWindows: https://mega.nz/file/e1MEUAwR#c7u7vDvwzp6JiSaRDwhCyOaH4cGnx1xQDPyKgbAd-qM\nMac OS: https://mega.nz/file/K09gRbYJ#SewWjY4LqVdvlivXJhqQMjrsXO6ec8a1jmapj5nO2Gs\nLinux (Only Ubuntu 20.04 built): https://mega.nz/file/T8l0GTqa#oWsDDrFYjzf3LhS9zRkuqqBz6H4yJmNQUNiu_erVQLo\n\nSee information on FFMPEGVVC.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md\nPress enter to go back menu.\n");
|
||||
Console.WriteLine("Your favorite operating system is available on FFmpeg VVDec support.\n\nSee information on FFMPEGVVC.md or online GitHub to download FFmpeg custom build: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md\nPress enter to go back menu.\n");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "7")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "ANACONDA";
|
||||
Console.WriteLine("Welcome to Anaconda Quick Install. This will only one task for ffmpeg. Would you like to install? Y/N?");
|
||||
|
||||
string anacondaman = Console.ReadLine();
|
||||
|
||||
if (anacondaman == "Y")
|
||||
{
|
||||
Console.WriteLine("SUCCESS, going to back menu...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "8")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "VVdec Web Player.";
|
||||
@ -180,14 +168,14 @@ namespace VVCEasy
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "9")
|
||||
else if (input == "8")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "WindowsVVC.7z (decompressing)";
|
||||
Console.WriteLine("Decompressing...\nSorry, the command is not ready yet...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (input == "10")
|
||||
else if (input == "9")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Install vvDecPlayer from BitMovin";
|
||||
@ -197,51 +185,57 @@ namespace VVCEasy
|
||||
|
||||
if (installbitmovin == "Y")
|
||||
{
|
||||
bitmovingotoinstall:
|
||||
Console.Title = "Installing vvDecPlayer from BitMovin...";
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin on your computer...\nWhich operating system are you using?\nWindows, Mac or Linux?\nType W for Windows\nType M for Mac\nType L for Linux");
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin on your computer...\nWhich operating system are you using?");
|
||||
Console.WriteLine("Type W for Windows, M for Mac, L for Linux");
|
||||
|
||||
string installbitmovin1 = Console.ReadLine();
|
||||
string osChoice = Console.ReadLine()?.ToUpper();
|
||||
string fileName = string.Empty;
|
||||
string fileUrl = string.Empty;
|
||||
|
||||
if (installbitmovin1 == "W")
|
||||
while (string.IsNullOrEmpty(osChoice) || (osChoice != "W" && osChoice != "M" && osChoice != "L"))
|
||||
{
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Windows...\nSorry, the C# console is not ready yet...");
|
||||
osChoice = Console.ReadLine()?.ToUpper();
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
switch (osChoice)
|
||||
{
|
||||
case "W":
|
||||
fileName = "BitVVDecPlayerWIN.7z";
|
||||
fileUrl = "https://www.dropbox.com/scl/fi/x4v1qb60u8zp505dtx8p6/BitVVDecPlayerWIN.7z?rlkey=gs9duytd6h1sos69o53rw8vyy";
|
||||
break;
|
||||
case "M":
|
||||
fileName = "BitVVDecPlayerMAC.7z";
|
||||
fileUrl = "https://www.dropbox.com/s/ilsoica7c8dh4hq/BitVVDecPlayerMAC.7z";
|
||||
break;
|
||||
case "L":
|
||||
fileName = "BitVVDecPlayerLINUX.AppImage";
|
||||
fileUrl = "https://www.dropbox.com/scl/fi/9jgibpwxe52zkkjijycdc/BitVVDecPlayerLINUX.AppImage?rlkey=jrqxsnwuqltc1xj9fevk9xb1f";
|
||||
break;
|
||||
case "X":
|
||||
Console.WriteLine("Exiting installation. No changes made.");
|
||||
return;
|
||||
default:
|
||||
Console.WriteLine("Invalid input. Please type W for Windows, M for Mac, L for Linux, or X to exit.");
|
||||
osChoice = string.Empty;
|
||||
break;
|
||||
}
|
||||
Console.WriteLine($"Installing vvDecPlayer for {osChoice}...");
|
||||
DownloadWithWget(fileUrl, fileName);
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (installbitmovin1 == "M")
|
||||
if (osChoice != "L")
|
||||
{
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Mac OS...\nSorry, the C# console is not ready yet...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (installbitmovin1 == "L")
|
||||
{
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Linux...\nSorry, the C# console is not ready yet...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (installbitmovin1 == "Back")
|
||||
{
|
||||
|
||||
ExtractWith7Zip(fileName, ".");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("You typed wrong input command, follow the commands instructions... type Back to go back menu...");
|
||||
goto bitmovingotoinstall;
|
||||
}
|
||||
|
||||
Console.WriteLine("Installation complete.");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (input == "11")
|
||||
|
||||
else if (input == "10")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "VLC VTM Plugins Install (Windows & Linux)";
|
||||
@ -260,14 +254,14 @@ namespace VVCEasy
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "12")
|
||||
else if (input == "11")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Android MPV Player (OpenVVC support)";
|
||||
Console.WriteLine("See information MPV.md or online Github: https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md\nPress enter to go back menu.\n");
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (input == "13")
|
||||
else if (input == "12")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Tests of VVC videos";
|
||||
@ -277,5 +271,48 @@ namespace VVCEasy
|
||||
}
|
||||
while (exit == false);
|
||||
}
|
||||
|
||||
public static void DownloadWithWget(string fileUrl, string outputFileName)
|
||||
{
|
||||
Process process = new Process();
|
||||
process.StartInfo.FileName = "wget";
|
||||
process.StartInfo.Arguments = $"{fileUrl} -q -O {outputFileName}";
|
||||
process.StartInfo.RedirectStandardOutput = true;
|
||||
process.StartInfo.RedirectStandardError = true;
|
||||
process.StartInfo.UseShellExecute = false;
|
||||
process.StartInfo.CreateNoWindow = true;
|
||||
|
||||
process.Start();
|
||||
|
||||
string output = process.StandardOutput.ReadToEnd();
|
||||
string error = process.StandardError.ReadToEnd();
|
||||
|
||||
process.WaitForExit();
|
||||
|
||||
if (!string.IsNullOrEmpty(output)) Console.WriteLine(output);
|
||||
if (!string.IsNullOrEmpty(error)) Console.WriteLine("Error: " + error);
|
||||
}
|
||||
|
||||
public static void ExtractWith7Zip(string archiveFile, string destinationFolder)
|
||||
{
|
||||
Process process = new Process();
|
||||
process.StartInfo.FileName = "7z";
|
||||
process.StartInfo.Arguments = $"x {archiveFile} -o\"{destinationFolder}\"";
|
||||
process.StartInfo.RedirectStandardOutput = true;
|
||||
process.StartInfo.RedirectStandardError = true;
|
||||
process.StartInfo.UseShellExecute = false;
|
||||
process.StartInfo.CreateNoWindow = true;
|
||||
|
||||
process.Start();
|
||||
|
||||
string output = process.StandardOutput.ReadToEnd();
|
||||
string error = process.StandardError.ReadToEnd();
|
||||
|
||||
process.WaitForExit();
|
||||
|
||||
Console.WriteLine("Extraction complete.");
|
||||
if (!string.IsNullOrEmpty(output)) Console.WriteLine(output);
|
||||
if (!string.IsNullOrEmpty(error)) Console.WriteLine("Error: " + error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
383
README.md
@ -9,28 +9,39 @@ https://github.com/MartinEesmaa/VVCEasy/actions/workflows/dotnet.yml)
|
||||

|
||||

|
||||
|
||||
# VVCEasy (Windows, macOS, Linux & Android) (by Martin Eesmaa)
|
||||
<h1 align="center">VVCEasy by Martin Eesmaa</h1>
|
||||
|
||||
VVCEasy is that you don't have to compile or/and coding to encode VVC (known as Versatile Video Codec). Simple, Easy, Encode and Decode.
|
||||
|
||||
VVCEasy comes to one-easy command of FFmpeg, VVC Tools, VLC o266player, VVDEC Web Player, Bitmovin VVDec Player, libvvdec and more.
|
||||
It supports Windows, macOS, Linux, BSD, Android & WebAssembly for VVCEasy builds.
|
||||
|
||||
Installation: Go to the releases and download latest version.
|
||||
From October 20, 2021, to June 23, 2022, VVCEasy was in pre-release and construction mode.
|
||||
|
||||
Windows source run (Batch-file): VVCEasy.bat
|
||||
Since June 23, 2022, VVCEasy was initially released at version 1.0.0.
|
||||
|
||||
Windows/Mac/Linux source run (Csharp): Bin/Release or Debug/netX.x/VVCEasy.exe (after build of C#), this requires VVCEasy.dll to run console application.
|
||||
VVCEasy comes with one easy command, utilizing FFmpeg-VVC, Fraunhofer HHI VVC binaries, uvg266, MPV, LAVFilters, and MPC-HC & MPC-BE, among other features.
|
||||
|
||||
Matrix chat: https://matrix.to/#/#vvceasy:matrix.org
|
||||
Installation: Go to the releases and download the latest version.
|
||||
|
||||
Revolt: https://app.revolt.chat/invite/0Y10qHzP
|
||||
Windows source run (Batch-file) (for encoding/decoding, it needs to be manually edit batchfile to modify video file name): [VVCEasy.bat](VVCEasy.bat)
|
||||
|
||||
Discord: https://discord.gg/t54cADTbWW
|
||||
Windows/Mac/Linux source run (C#): Bin/Release or Debug/netX.x/VVCEasy.exe (after building the C# project), which requires VVCEasy.dll to run the console application.
|
||||
|
||||
Reddit's community: https://reddit.com/r/VVCEasy
|
||||
### Community
|
||||
|
||||
Sourceforge: https://sourceforge.net/projects/vvceasy
|
||||
| Communities | Link |
|
||||
--- | --- |
|
||||
Matrix chat  | https://matrix.to/#/#vvceasy:matrix.org
|
||||
Revolt | https://app.revolt.chat/invite/0Y10qHzP
|
||||
Discord  | https://discord.gg/t54cADTbWW
|
||||
Reddit | https://reddit.com/r/VVCEasy
|
||||
lemmy.ml (c/VVC) | https://lemmy.ml/c/vvc
|
||||
lemmy.ml (c/VVCEasy) | https://lemmy.ml/c/vvceasy
|
||||
lemmy.world (c/VVC) | https://lemmy.world/c/vvc
|
||||
lemmy.world (c/VVCEasy) | https://lemmy.world/c/vvceasy
|
||||
|
||||
*Note: Please note for my first language is Estonian and not native with English language. Some my English words might be errors with incomprehensible.*
|
||||
> [!NOTE]
|
||||
> Please note my first language is Estonian and not native to the English language. Some English words may be incorrect and incomprehensible.
|
||||
|
||||
# All lists
|
||||
|
||||
@ -42,10 +53,12 @@ Sourceforge: https://sourceforge.net/projects/vvceasy
|
||||
|
||||
- [FFmpeg VVC En/Decoder & xHE-AAC support](#ffmpeg-vvencdec--xhe-aac-support)
|
||||
|
||||
- [MPV libvvdec + xHE-AAC support (Windows x64/Android only)](#mpv-libvvdec--xhe-aac-support-windows-x64android-only)
|
||||
- [MPV libvvdec + xHE-AAC support (Windows x64/Linux/Android only)](#mpv-libvvdec--xhe-aac-support-windows-x64linuxandroid-only)
|
||||
|
||||
- [LAVFilters VVC version x64](#lavfilters-vvc-version-x64)
|
||||
|
||||
- [VVC binaries](#vvc-binaries)
|
||||
|
||||
- [Deprecated builds](#deprecated-builds)
|
||||
|
||||
- [Compile for VVCEasy](#compile-for-vvceasy)
|
||||
@ -54,13 +67,13 @@ Sourceforge: https://sourceforge.net/projects/vvceasy
|
||||
|
||||
- [VVCEasy .NET Compile](#vvceasy-net-console-version-optional)
|
||||
|
||||
- [Encode/Decode easy](#encodedecode-easy)
|
||||
- [Publish single .NET binary executable](#publish-single-net-binary-executable)
|
||||
|
||||
- [Hard option](#without-vvceasy-experimental-option-for-professional-coders-other-developers-and-everyone-hard)
|
||||
- [GUI applications easy](#gui-applications-easy)
|
||||
|
||||
- [VVEnc & VVDec compatibility test](#compatibility-results-vvenc-and-vvdec-tested-by-martin-eesmaa)
|
||||
- [Hard option (deprecated)](#hard-option-deprecated)
|
||||
|
||||
- [FAQ](#faq-known-as-frequently-asked-questions)
|
||||
- [FAQ](#faq-frequently-asked-questions)
|
||||
|
||||
- [Credits & Licenses](#credits--licenses)
|
||||
|
||||
@ -83,31 +96,17 @@ EE511700017003558571
|
||||
|
||||
# Tests of VVC videos
|
||||
|
||||
You can test Martin Eesmaa's encoded movies of VVC video codec and follow README.txt instructions.
|
||||
You can test Martin Eesmaa's encoded movies of VVC video codec and follow the instructions in README.txt.
|
||||
|
||||
[Tears of Steel VVC](https://mega.nz/folder/64swUYxI#WE5njn2aX6-6fxypNC3gtA)
|
||||
|
||||
[Martin Eesmaa's VVC sample videos](https://mega.nz/folder/C5lFhALL#5fRQfHN4ulzdaq-B33WQ7w)
|
||||
|
||||
# VLC InterDigital VTM VVC Plugin
|
||||
|
||||
I have great news. VLC latest version worked out well of Inter Digital VTM plugins. On o266player, there were some problems on my computer for one reason...
|
||||
VLC InterDigital VTM VVC Plugin is an external VVC decoder plugin from a third-party developer.
|
||||
|
||||
One reason that my Windows 11 operating system won't view video of VVC file on o266player version. On VTM plugins of VLC, now it shows me VVC video good.
|
||||
|
||||
Here is a comparison of o266player version and VTM VVC plugins:
|
||||
|
||||
Top left and right is o266player by Tencent Cloud.
|
||||
|
||||
Bottom left and right is VLC VTM plugins by Inter Digital Inc.
|
||||
|
||||

|
||||
|
||||
***UPDATE of 19/04/2022 00:20 AEST:***
|
||||
|
||||
Bug of Inter Digital VTM VLC Plugin:
|
||||
|
||||
When you try to play your MPEG-TS or TS file, it will crash with your InterDigital VLC VTM Plugin installed on your VLC Media Player.
|
||||
|
||||
Without InterDigital VLC VTM Plugin, playing MPEG-TS or TS file will play fine in your all original plugins (except VLC VTM Plugin) on your VLC Media Player.
|
||||
See [INSTALLVLCPLUGIN folder](INSTALLVLCPLUGIN/README.md).
|
||||
|
||||
# FFmpeg VVENC/DEC & xHE-AAC support
|
||||
|
||||
@ -115,11 +114,13 @@ FFmpeg VVC En/Decoder & xHE-AAC supports of Windows, Mac and Linux.
|
||||
|
||||
See [FFMPEGVVC.md](FFMPEGVVC.md).
|
||||
|
||||
# MPV libvvdec + xHE-AAC support (Windows x64/Android only)
|
||||
# MPV libvvdec + xHE-AAC support (Windows x64/Linux/Android only)
|
||||
|
||||
MPV libvvdec & xHE-AAC supports only of Windows x64 & Android.
|
||||
MPV libvvdec & xHE-AAC support only Windows x64, Linux, and Android.
|
||||
|
||||
The VVC and MP4 mux with VVC codec can be played on MPV libvvdec + xHE-AAC version. Only MP4 mixed with VVC supports seek.
|
||||
The VVC and MP4 mux with VVC codec can be played on MPV libvvdec + xHE-AAC version. Only MP4 files mixed with VVC support seeking.
|
||||
|
||||
MPV.NET is also only available for Windows.
|
||||
|
||||
See [MPV.md](MPV.md).
|
||||
|
||||
@ -127,34 +128,37 @@ See [MPV.md](MPV.md).
|
||||
|
||||
For more information about LAVFilters Windows VVC version.
|
||||
|
||||
See [LAVFilter folder](LAVFilter/README.md)
|
||||
See [LAVFilters folder](LAVFilters/README.md)
|
||||
|
||||
# VVC binaries
|
||||
|
||||
The Versatile Video Codec binaries include two tools, vvenc and vvdec, as well as uvg266.
|
||||
|
||||
See [VVC.md](VVC.md)
|
||||
|
||||
# Deprecated builds
|
||||
|
||||
Those deprecated builds were no new commits/codes after one year.
|
||||
|
||||
For Bitmovin VVDec Player, see [Bitmovin.md](Bitmovin.md).
|
||||
For Bitmovin VVDec Player, see [Bitmovin.md](docs-old/Bitmovin.md).
|
||||
|
||||
For VLC o266player build, see [o266player.md](o266player.md).
|
||||
For VLC o266player build, see [o266player.md](docs-old/o266player.md).
|
||||
|
||||
# Compile for VVCEasy
|
||||
|
||||
### VVCEasy Batchfile Version (optional) (Windows only)
|
||||
|
||||
First, before you compile to VVCEasy Batchfile Version, you need Inno Setup to compile VVCEasy.
|
||||
First, before compiling to VVCEasy Batchfile Version, you need to install Inno Setup to compile it.
|
||||
Inno Setup link: https://jrsoftware.org/isdl.php
|
||||
|
||||
Step 1: Clone VVCEasy git and open VVCEasy_compiler.iss
|
||||
Step 1: Clone VVCEasy git and open up VVCEasy_compiler.iss file
|
||||
```
|
||||
cd %userprofile%\Downloads
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/VVCEasy && cd VVCEasy
|
||||
VVCEasy_compiler.iss
|
||||
```
|
||||
|
||||
Step 2: Before you compile, please replace example username by your username of LicenseFile, OutputDir and Source. See the image:
|
||||

|
||||
|
||||
Step 3: Once you're replaced of your username, press F9 to compile on your keyboard. After compiling, VVCEasy.exe (Installer) will be on your Downloads folder.
|
||||
Step 2: Press F9 on your keyboard to compile. After compiling, VVCEasy.exe (Installer) can be found in the Install folder.
|
||||

|
||||
|
||||
---
|
||||
@ -169,7 +173,7 @@ Step 1: Clone git and cd VVCEasy
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/VVCEasy && cd VVCEasy
|
||||
```
|
||||
|
||||
Step 2: Before you build, make sure to build it. Don't worry, when you build with .NET, it will restore project and build.
|
||||
Step 2: When you build, this will restore the project first and it compiles.
|
||||
```
|
||||
dotnet build -c Release
|
||||
```
|
||||
@ -179,193 +183,55 @@ Step 3: Once building is done, the build folder directory is bin/Release
|
||||
cd bin/Release
|
||||
```
|
||||
|
||||
*Tip: You can run VVCEasy without building.*
|
||||
> [!TIP]
|
||||
> *You can run VVCEasy without building.*
|
||||
```
|
||||
dotnet run
|
||||
```
|
||||
|
||||
# Encode/Decode (easy)
|
||||
|
||||
Before you run VVCEasy.bat or VVCEasy.exe, you need to change from your input video file name into input.mp4 (for example)
|
||||
Follow the instructions, the commands will give you options. Since 21 October 2021, VVCEasy is pre-release, but it's construction mode, but you can have a look with .BAT source code.
|
||||
|
||||
- Martin Eesmaa
|
||||
|
||||
# Without VVCEasy, experimental option for professional coders, other developers, and everyone (hard)
|
||||
|
||||
You need 7-Zip (requires ffmpeg and ffplay), ffmpeg, ffplay, vvenc/vvdec(app).
|
||||
|
||||
Here are the links:
|
||||
FFMPEG/FFPLAY: https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z (go to bin folder and extract two files of ffmpeg and ffplay)
|
||||
VVENC/VVDEC (Windows, Mac and Linux):
|
||||
Windows: https://github.com/MartinEesmaa/VVCEasy/blob/master/WindowsVVC/WindowsVVC.7z
|
||||
Mac: https://github.com/MartinEesmaa/VVCEasy/tree/master/MacOSVVC/MacOSVVC.7z
|
||||
Linux: https://github.com/MartinEesmaa/VVCEasy/blob/master/LinuxVVC/LinuxVVC.7z
|
||||
|
||||
Before we start, you need to make path environments for ffmpeg, ffplay and vvenc/vvdec to make easily.
|
||||
In Command Prompt (Windows):
|
||||
### Publish single .NET binary executable
|
||||
|
||||
If you want to compile and publish it into a portable executable file, you can do so if you wish.
|
||||
```
|
||||
set PATH=%PATH%;C:\Users\blah\Downloads\VVCEasy\Executables
|
||||
```
|
||||
Verify path using Windows Command Prompt/Windows Terminal (CMD):
|
||||
```
|
||||
path
|
||||
dotnet publish -c Release
|
||||
```
|
||||
|
||||
First:
|
||||
Transcode any video formats to YUV/Y4M
|
||||
After that, it should be found for example at bin\Release\netX.x\win-x64\publish.
|
||||
|
||||
**We recommend that you use from video to yuv/y4m for pixel format YUV420P, because YUV420P is smaller size than YUV420P10.**
|
||||
# GUI applications (easy)
|
||||
|
||||
**VVENC only supports pixel formats of YUV420 (8-bit) and YUV420_10 (10-bit), otherwise it will corrupt after vvc encoding.**
|
||||
If you're not familiar with using the CLI, you can use a GUI with an application window for ease of use, eliminating the need to type commands in your terminal.
|
||||
|
||||
For YUV transcode (lossy from web quality, YouTube videos and others):
|
||||
```
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p inputtranscode.yuv
|
||||
```
|
||||
These VVC programs for encoding/decoding are listed:
|
||||
|
||||
For Y4M transcode (lossless from uncompressed video files, only 8 bit):
|
||||
```
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p inputtranscode.y4m
|
||||
```
|
||||
| Programs with website or GitHub link | Note | Creator
|
||||
--- | --- | --- |
|
||||
[Fastflix](https://github.com/cdgriffith/FastFlix) | You might need to download my custom FFmpeg builds for encoding/decoding VVC using external libraries, rename to ffmpeg.exe and ffprobe.exe from my custom names only, no ffplay executable file required | Chris Griffith
|
||||
[VVC-GUI-Encoder](https://github.com/Disa-Kizonda/VVC-GUI-Encoder) | Only encoder | Disa Kizonda
|
||||
[aVVCator](https://github.com/gianni-rosato/aVVCator) | Only encoder & Linux only | Gianni Rosato
|
||||
[VVenCguiEx](https://github.com/rigaya/VVenCguiEx) | Original Japanese language only for instructions and application (you can still translate), only encoder & Windows only, requires Aviutl (this may be medium or hard) | rigaya
|
||||
[VVConvert](https://vvconvert.app/) | Only encoder, encodes to VVC raw bitstream from any FFmpeg compatible video codecs, requires FFmpeg to open input video files | Alec Carter ([source code](https://github.com/alectr0/VVConvert))
|
||||
[Av1ador](https://github.com/porcino/Av1ador) | This program allows to encode VVC while transcoding by preview and comparison from original video, includes other encoders as well. | porcino
|
||||
|
||||
Verify uncompressed video using FFplay before encode to VVENC (important add video size after the input file, else it will not correctly show video like scrambled eggs video):
|
||||
```
|
||||
ffplay inputtranscode.yuv -video_size 1280x720
|
||||
```
|
||||
# Hard option (deprecated)
|
||||
|
||||
Default pixel format of ffplay for yuv and y4m is yuv420p without `-pix_fmt` command.
|
||||
If you're looking for a hard option of document information, you can check out there: [docs-old/advanced.md](docs-old/advanced.md)
|
||||
|
||||
For y4m, replace `-i inputtranscode.yuv` with `-i inputtranscode.y4m`. In `-c:v wrapped_avframe` for y4m only, so you can verify to play Y4M (wrapped_avframe) for VLC, FFplay or MPV player. For yuv420p10 on your input video 10 bits, add `-pix_fmt yuv420p10`.
|
||||
# FAQ (Frequently Asked Questions)
|
||||
|
||||
Playing FFplay for y4m video with wrapped_avframe, you don't need to put anything commands, just simple play this:
|
||||
Before you ask any question, see the questions at table please.
|
||||
|
||||
```
|
||||
ffplay transcoded.y4m
|
||||
```
|
||||
| Question | Answer
|
||||
--- | --- |
|
||||
**1:** Are you the real creator of VVCEasy? | Yes... But I'm not a real creator of VVC; I didn't build VVC. It was Fraunhofer HHI that built VVC.
|
||||
**2:** Are you trying to build VVCEasy? | Well, yes... it takes a longer time to make VVCEasy easier, but VVCEasy is not yet finished until further update announcements. I don't have employees, so I'm the only worker.
|
||||
**3:** Is it okay to bring my proof screenshots of errors? | Yes, you can include error screenshots as proof. More proof, it's easier to solve.
|
||||
**4:** My question is not listed on the FAQ. Can I ask you any questions? | Sure, go to the Issues tab, ask questions, and give me your issue. I'd be happy to solve it :).
|
||||
**5:** Do you know what skills you have in your programming? | I know about batch files and HTML programming. Some programming languages might be difficult for me. Update of 19th February 2022: Perhaps I should create a C# Console program, which will support Windows, Mac, and Linux.
|
||||
|
||||
For easy to verify YUV/Y4M, use YUView, open your YUV or Y4M encoded, make sure video size, YUV/Y4M format and frame rate same like from input video file (e.g., MP4, AVI, MKV and others).
|
||||
If you have any questions or/any issues, please go to the Issues tab and create your issue.
|
||||
|
||||
After verifying correctly of your YUV/Y4M video
|
||||
Encode with VVENC (Simple settings, example)
|
||||
```
|
||||
vvencapp -i out.yuv -s 854x480 -r 30 -o vvc.266
|
||||
```
|
||||
`-s` means video size, `-r` means frame per second and `-o` means output. Note: (Simple) as Default settings is YUV420P (8-bit)
|
||||
|
||||
TIP: You could do the alternative without taking much disk space for uncompressed video (Y4M, recommended):
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -pix_fmt yuv420p -f yuv4mpegpipe - | vvencapp --y4m -i - --preset medium --qp 35 -o converted.266
|
||||
```
|
||||
|
||||
**PRO TIP: VVENC can detect your fps and video size for y4m file format, so you don't need to insert video size and frame per second of vvenc.**
|
||||
|
||||
**WARNING of vvenc pipe: VVENC does not support two-pass mode only when using pipe call/read from FFmpeg to vvenc.**
|
||||
|
||||
Or you could do legacy of YUV pipe video:
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -pix_fmt yuv420p -f rawvideo - | vvencapp -i - -s 1920x1080 -r 25 --preset medium --qp 35 -o converted.266
|
||||
```
|
||||
|
||||
**WARNING: If you encode from yuv/y4m of your frame rate is 11.988, 14.985, 23.976, 29.970 or 59.940 FPS, replace this command -r by --fps.**
|
||||
|
||||
11.988 fps = `--fps 12000/1001`
|
||||
|
||||
14.985 fps = `--fps 15000/1001`
|
||||
|
||||
23.976 fps = `--fps 24000/1001`
|
||||
|
||||
29.970 fps = `--fps 30000/1001`
|
||||
|
||||
59.940 fps = `--fps 60000/1001`
|
||||
|
||||
The default of VVENC: Quantization Parameter is 32 and preset is medium.
|
||||
|
||||
If you want to get smaller video size and lossy video, add `--qp 38`. (For web video or anything)
|
||||
|
||||
If you want to get lossless video without losing quality (visually lossless, minimum loss quality), use QP 16-19 and preset slow (optional slower). (Recommended for movies, camera footage or anything)
|
||||
|
||||
Lossy video/Smallest video size:
|
||||
```
|
||||
vvencapp --qp 38 -i out.yuv -s 854x480 -r 30 -o vvc.266
|
||||
```
|
||||
|
||||
**NOTE 1: If you want to have true lossless on your video, please use H.264 Lossless video codec or VVC with vvencffapp command of CostMode Lossless**
|
||||
|
||||
**NOTE 1.1: In vvencffapp application, you can add command `--CostMode lossless`. Y4M accepts chroma subsampling 420 only, but YUV accepts 400, 420, 422 and 444.**
|
||||
|
||||
True lossless video of 8-bit and 10-bit 4:2:0:
|
||||
```
|
||||
vvencffapp -i test.y4m --CostMode lossless -qpa 1 -b test.266
|
||||
```
|
||||
|
||||
Visually lossless video (or compress smaller than preset slow, use --preset slower):
|
||||
```
|
||||
vvencapp --qp 18 -i out.yuv -s 854x480 -r 30 --preset slow -o vvc.266
|
||||
```
|
||||
|
||||
For Apple macOS and Linux terminal users: Command with `./vvencapp`
|
||||
|
||||
For Windows Users using Windows PowerShell: Command with `.\vvencapp`
|
||||
|
||||
Encode with VVENC (Best settings (visually lossless), replace video size (`-s`), frame rate (`-r`) and maximize threads of your cores (`--threads`), example) (Minimum loss quality) If you want true lossless video, use H.264 Lossless video codec or VVC with vvencffapp command of CostMode Lossless. (Necessary make smaller file (slower) than preset slow, use `--preset slower`)
|
||||
```
|
||||
vvencapp --qp 18 -i out.yuv -s 854x480 -r 30 --preset slow --threads 16 --tier high -o EXTREME.266
|
||||
```
|
||||
|
||||
NOTE: It is acceptable only for encoding to .h266, .266 and .vvc file container.
|
||||
|
||||
Note to 10-bit YUV users: If you encode YUV 10 bit to VVC file, add `-c yuv420_10` before you type the ending word of -o EXTREME.266.
|
||||
|
||||
Note to 8-bit Y4M users: It's only from input video (8-bit) to Y4M (8 bit)
|
||||
|
||||
After encoding VVC, you can play using my custom VVCEasy build of [FFmpeg](https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md), [VLC](https://github.com/MartinEesmaa/VVCEasy/tree/master/INSTALLVLCPLUGIN) or [MPV](https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md).
|
||||
Drag your video file of .h266, .266 or .vvc to play.
|
||||
|
||||
If you are still not happy about VVC (known as Versatile Video Coding), that you think is too hard to encode and decode, use AOMEDIA ONE (AV1) that is recommended for most users to easily play VLC Media Player and others. VVC should need played on VLC Media Player in future.
|
||||
|
||||
# Compatibility results (VVENC AND VVDEC) TESTED BY MARTIN EESMAA
|
||||
|
||||
Windows (vvencapp):
|
||||

|
||||
|
||||
Mac (./vvencapp):
|
||||

|
||||
|
||||
Linux (./vvencapp):
|
||||

|
||||
|
||||
# FAQ (known as Frequently Asked Questions)
|
||||
|
||||
Before you ask any question, please see the questions below.
|
||||
|
||||
Are you the real creator of VVCEasy?
|
||||
|
||||
Yes... but I'm not a real creator of VVC, I didn't built VVC, it was Fraunhofer HHI that he built VVC.
|
||||
|
||||
Are you trying to work build of VVCEasy?
|
||||
|
||||
Well, yes... it takes longer time to make VVCEasy easier, but VVCEasy is not yet finished until further/update announcement. I don't have employees, so I'm the only one worker.
|
||||
|
||||
Is it okay to bring my proof screenshots of errors?
|
||||
|
||||
Yes, you can bring error screenshots for your proof. More proof, easy to solve it.
|
||||
|
||||
My question is not listed on FAQ. Can I ask any question to you?
|
||||
|
||||
Sure, just go to Issues tab, ask questions or/and give your issue to me, I'd be happy to solve :).
|
||||
|
||||
Do you know what you have skills in your programming?
|
||||
|
||||
I know about batch file and HTML programming. Some hard programming languages might be difficult for me :/.
|
||||
Update of 19th February 2022: Maybe I should make C# Console program, that will be easy for Windows, Mac and Linux multi support.
|
||||
|
||||
If you have any questions or/and any issues, please go to Issues tab and create your issue.
|
||||
|
||||
Or you can chat us: https://matrix.to/#/#vvceasy:matrix.org
|
||||
Or you can join and chat with us in our community: [Link for communities at top](#community)
|
||||
- Martin Eesmaa
|
||||
|
||||
# Credits & Licenses
|
||||
@ -374,7 +240,7 @@ Or you can chat us: https://matrix.to/#/#vvceasy:matrix.org
|
||||
|
||||
License: MIT
|
||||
|
||||
© 2021-2023 [Martin Eesmaa](https://github.com/MartinEesmaa) (All rights reserved)
|
||||
© 2021-2025 [Martin Eesmaa](https://github.com/MartinEesmaa) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
@ -386,7 +252,7 @@ License: MIT
|
||||
|
||||
License: BSD 3-Clause Clear License (all of three repositories)
|
||||
|
||||
© 2018-2023, Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. & The VVC Authors. (All rights reserved)
|
||||
© 2018-2025, Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. & The VVC Authors. (All rights reserved)
|
||||
|
||||
GitHub: [Fraunhoferhhi](https://github.com/fraunhoferhhi)
|
||||
|
||||
@ -398,9 +264,17 @@ GitHub: [Fraunhoferhhi](https://github.com/fraunhoferhhi)
|
||||
|
||||
License: GPL Version 2 (VLC Original version) & LGPL-2.1 (VLC VTM Decoder Plugin)
|
||||
|
||||
© 2000-2023 [VLC Media Player](https://code.videolan.org/) Developers (All rights reserved)
|
||||
© 2000-2025 [VLC Media Player](https://code.videolan.org/) Developers (All rights reserved)
|
||||
|
||||
© 2021-2023 [Inter Digital Inc](https://github.com/InterDigitalInc) (All rights reserved)
|
||||
© 2021-2024 [Inter Digital Inc](https://github.com/InterDigitalInc) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[uvg266](https://github.com/ultravideo/uvg266) - An open-source VVC encoder based on Kvazaar
|
||||
|
||||
License: BSD 3-Clause License
|
||||
|
||||
© 2021-2025, Tampere University, ITU/ISO/IEC, project contributors (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
@ -418,17 +292,37 @@ VVC developers & forkers: [Christian Lehmann](https://github.com/lehmann-c), [tb
|
||||
|
||||
License: LGPL-2.1+ & GPL-2.0+
|
||||
|
||||
© 2000-2023 [FFmpeg developers](https://github.com/FFmpeg) (All rights reserved)
|
||||
For my custom build configuration license is GPL-3.0+ with nonfree (fdk-aac) for FFmpeg.
|
||||
|
||||
© 2000-2025 [FFmpeg developers](https://github.com/FFmpeg) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[fdk-aac](https://github.com/mstorsjo/fdk-aac) - A standalone library of the Fraunhofer FDK AAC code from Android.
|
||||
|
||||
License: None
|
||||
|
||||
© 2012-2025 [Martin Storsjö](https://github.com/mstorsjo) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[mpv](https://github.com/mpv-player/mpv) - 🎥 Command line video player
|
||||
|
||||
License: LGPL-2.1+ & GPL-2.0+
|
||||
|
||||
For my custom build license: GPL-3.0+ with nonfree (fdk-aac) for FFmpeg
|
||||
|
||||
© 2013-2025 [Vincent Lang, MPlayer, mplayer2 & MPV developers](https://github.com/mpv-player) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[mpv-android](https://github.com/mpv-android/mpv-android) - #mpv-android @ libera.chat
|
||||
|
||||
VVC developer & forker: [tbiat](https://github.com/tbiat) & [Martin Eesmaa](https://github.com/MartinEesmaa/mpv-android-vvc)
|
||||
VVC forkers: [tbiat](https://github.com/tbiat) & [Martin Eesmaa](https://github.com/MartinEesmaa/mpv-android-vvc)
|
||||
|
||||
License: MIT
|
||||
|
||||
© 2016-2023 Ilya Zhuravlev, sfan5 & mpv developers (All rights reserved)
|
||||
© 2016-2025 Ilya Zhuravlev, sfan5 & mpv developers (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
@ -436,5 +330,46 @@ License: MIT
|
||||
|
||||
License: LGPL-2.1
|
||||
|
||||
© 2003-2023 [Jean Le Feuvre](https://github.com/jeanlf) & [GPAC developers/contributors](https://github.com/gpac/gpac/graphs/contributors)
|
||||
© 2003-2025 [Jean Le Feuvre](https://github.com/jeanlf) & [GPAC developers/contributors](https://github.com/gpac/gpac/graphs/contributors) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[LAVFilters](https://github.com/Nevcairiel/LAVFilters) - LAV Filters - Open-Source DirectShow Media Splitter and Decoders
|
||||
|
||||
License: None
|
||||
|
||||
© 2010-2025 [Hendrik Leppkes](https://github.com/Nevcairiel) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[MPC-HC](https://github.com/clsid2/mpc-hc/) - Media Player Classic (forked by clsid2)
|
||||
|
||||
[MPC-BE](https://github.com/Aleksoid1978/MPC-BE) - Media Player Black Edition (forked by Aleksoid1978)
|
||||
|
||||
License: GPL-3.0
|
||||
|
||||
© 2007-2018 [MPC-HC Community Forum & contributors](https://github.com/mpc-hc) (Original) (All rights reserved)
|
||||
|
||||
© 2018-2025 [clsid2](https://github.com/clsid2) (forked of MPC-HC) (All rights reserved)
|
||||
|
||||
© 2012-2025 [Alexander Vodiannikov](https://github.com/Aleksoid1978) (forked of MPC-BE) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[7-Zip](https://sourceforge.net/projects/sevenzip/files/7-Zip/) - 7-Zip is a file archiver with a high compression ratio.
|
||||
|
||||
Official website: https://7-zip.org
|
||||
|
||||
License: LGPL-2.1-or-later with unRAR restriction & LZMA SDK in the public domain
|
||||
|
||||
© 1999-2025 Igor Pavlov (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[wget](https://git.savannah.gnu.org/cgit/wget.git) - GNU Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS, the most widely used Internet protocols.
|
||||
|
||||
License: GPL-3.0-or-later
|
||||
|
||||
Original written by Hrvoje Nikšić
|
||||
|
||||
© 2015 Free Software Foundation, Inc. (All rights reserved)
|
@ -1,9 +1,13 @@
|
||||
# Martin Eesmaa's social media links
|
||||
|
||||
Linktree: https://linktr.ee/MartinEesmaa
|
||||
|
||||
YouTube: https://www.youtube.com/channel/UC8uLpZMsXjU3G3etHj4rr1Q
|
||||
|
||||
Reddit: [u/MartinEesmaa](https://reddit.com/u/MartinEesmaa)
|
||||
|
||||
Lemmy.world: [u/MartinEesmaa](https://lemmy.world/u/MartinEesmaa)
|
||||
|
||||
Pastebin: https://pastebin.com/u/MartinEesmaa
|
||||
|
||||
Github: [MartinEesmaa](https://github.com/MartinEesmaa)
|
||||
|
BIN
Screenshots/linux-ffplay_vvceasy.png
Normal file
After Width: | Height: | Size: 288 KiB |
BIN
Screenshots/mpv-vvceasy-android.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
Screenshots/mpv-vvceasy-linux.png
Normal file
After Width: | Height: | Size: 661 KiB |
BIN
Screenshots/mpv-vvceasy-windows.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
Screenshots/old-mpvlinuxvvceasy.png
Normal file
After Width: | Height: | Size: 742 KiB |
BIN
Screenshots/windows-ffplay_vvceasy.png
Normal file
After Width: | Height: | Size: 204 KiB |
@ -14,4 +14,8 @@ See the lists:
|
||||
|
||||
- Thanks, Artem! [VVCEasy thread](https://forum.doom9.org/showthread.php?p=1974413#post1974413)
|
||||
|
||||
- Thanks, Mark Litwintschik! [VVC encoding](https://tech.marksblogg.com/vvc-encoding.html)
|
||||
|
||||
- And to thank you all for using VVCEasy of prebuilt binaries, custom builds and more!
|
||||
|
||||
- Martin Eesmaa (@MartinEesmaa)
|
||||
|
83
VVC.md
Normal file
@ -0,0 +1,83 @@
|
||||

|
||||
|
||||
# Versatile Video Codec binaries
|
||||
|
||||
Versatile Video Codec binaries has available two tools for you to choose.
|
||||
|
||||
## Fraunhofer HHI (vvenc/vvdec)
|
||||
|
||||
Fraunhofer HHI VVC binaries is just standard easy tool, which allows to encode & decode with arguments and also encodes good quality for slow preset, but it may be slow...
|
||||
|
||||
* C++14 programming language
|
||||
* Supports Windows, macOS, Linux, BSD, Android, iOS (library only with new app or non-signed binary executable on jailbroken device) & WebAssembly.
|
||||
* SIMDE: SCALAR, SSE4.1, SSE4.2, AVX, AVX2, AVX512 (unsupported yet), NEON (arm only) and WASM (Web browsers only).
|
||||
* Faster depends speeding up for newer computer machine of CPUs.
|
||||
* Presets can be used from faster to slower.
|
||||
* Includes advanced tool of encode (vvencFFapp)
|
||||
* Two-pass control of bitrate is only allowed.
|
||||
* Default encoding pixel format is 10-bit.
|
||||
* For decoding, it can output to YUV, Y4M or pipe.
|
||||
* Lossless encoding (only for vvencFFapp with CostMode argument)
|
||||
|
||||
Old screenshots in 2021 of three desktop operating systems:
|
||||
|
||||
Windows:
|
||||

|
||||
|
||||
Mac:
|
||||

|
||||
|
||||
Linux:
|
||||

|
||||
|
||||
## uvg266 (VVC Scalable encoder tool)
|
||||
|
||||
uvg266 is only scalable encoder which helps to make it faster for older & newer computers, but still a bit good quality than vvenc, seems okay.
|
||||
|
||||
* C99 programming language
|
||||
* Supports Windows, macOS, Linux, BSD, Android & iOS (library only with new app or non-signed binary executable on jailbroken device).
|
||||
* SIMDE: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, NEON & AltiVec (PowerPC only).
|
||||
* Can only encode 8-bit VVC output for rest operating system supported, but for 10-bit needs compiled with definition, this only works for Android users.
|
||||
* Faster encoding scalable of old & new computers than vvenc.
|
||||
* Supports presets from ultrafast to placebo like x264 presets, however it is recommended to use from faster to slower to avoid VVC decoding fail issue.
|
||||
* Lossless encoding is not recommended due decoding fail.
|
||||
|
||||
### Minimum requirements
|
||||
|
||||
**vvenc/vvdec**:
|
||||
|
||||
- Windows XP and later (requires Visual C++ Redistributable for Visual Studio 2019 installed)
|
||||
- macOS 10.13 and later (arm64 since macOS 11.0)
|
||||
- Linux kernel 3.2.0 and later (eg. Ubuntu 12.04 LTS and later)
|
||||
- BSD (FreeBSD & x64 only)
|
||||
- Android 4.1 (API 16, Jelly Bean) and later (arm64 & x86_64 since Android 5.0)
|
||||
|
||||
**uvg266**:
|
||||
|
||||
- Windows Vista and later (requires Visual C++ Redistributable)
|
||||
- macOS 10.13 and later (arm64 since macOS 11.0)
|
||||
- Linux kernel 3.2.0 and later (eg. Ubuntu 12.04 LTS and later)
|
||||
- BSD (FreeBSD & x64 only)
|
||||
- Android 4.3 (API 18, Jelly Bean) and later (arm64 & x86_64 since Android 5.0)
|
||||
|
||||
### Downloads
|
||||
|
||||
NOTE: uvg266 compiled by same architectures supported of vvenc & vvdec.
|
||||
|
||||
All compiled builds are compressed files on 7-Zip.
|
||||
|
||||
| OS | vvenc & vvdec | uvg266 |
|
||||
--- | --- | --- |
|
||||
Windows | [x64/x86](https://github.com/MartinEesmaa/VVCEasy/raw/refs/heads/master/WindowsVVC/WindowsVVC.7z) | [Download](https://github.com/MartinEesmaa/VVCEasy/raw/refs/heads/master/uvg266/Windows/uvg266-Windows.7z)
|
||||
macOS | [Arm64/x64](https://github.com/MartinEesmaa/VVCEasy/raw/refs/heads/master/MacOSVVC/MacOSVVC.7z) | [Download](https://github.com/MartinEesmaa/VVCEasy/raw/refs/heads/master/uvg266/macOS/uvg266-macOS.7z)
|
||||
Linux | [x86_64/x86/arm64/armv7a](https://github.com/MartinEesmaa/VVCEasy/raw/refs/heads/master/uvg266/Linux/uvg266-Linux.7z) | [Download](https://github.com/MartinEesmaa/VVCEasy/raw/refs/heads/master/uvg266/Linux/uvg266-Linux.7z)
|
||||
BSD | [x86_64](https://github.com/MartinEesmaa/VVCEasy/raw/refs/heads/master/BSDVVC/BSDVVC.7z) | [Download](https://github.com/MartinEesmaa/VVCEasy/raw/refs/heads/master/uvg266/BSD/uvg266-BSD.7z)
|
||||
Android | [x86_64/x86/arm64/armv7a](https://github.com/MartinEesmaa/VVCEasy/raw/refs/heads/master/AndroidVVC/AndroidVVC.7z) | [Download](https://github.com/MartinEesmaa/VVCEasy/raw/refs/heads/master/AndroidVVC/AndroidUVG266-8bit.7z) or [10-bit build](https://github.com/MartinEesmaa/VVCEasy/raw/refs/heads/master/AndroidVVC/AndroidUVG266.7z)
|
||||
|
||||
## Comparisions between vvenc/vvdec and uvg266
|
||||
|
||||
If you're using newer computer or/and you wanted it to encode 10-bit with fast encoding to get good quality, use vvenc recommended.
|
||||
|
||||
If you're using older computer or/and more faster encoding of 8-bit than vvenc, use uvg266 recommended.
|
||||
|
||||
Also for decoding, use vvdec and also it is faster decoding for older (possible) & newer computers.
|
551
VVCEasy.bat
@ -1,11 +1,33 @@
|
||||
echo off
|
||||
set welcometitle=Martin Eesmaa / VVCEasy
|
||||
set version=v2.0.0
|
||||
set versionname=Party of Martin Eesmaa's birthday at age 18.
|
||||
set vvceasydate=22 June 2023
|
||||
set version=v2.7.0
|
||||
set versionname=Martin Eesmaa at age 19, wow nice!
|
||||
set vvceasydate=23 June 2024
|
||||
set copyrightinfo=Copyright (C) Martin Eesmaa 2021-2025 (MIT License)
|
||||
for /f "tokens=2*" %%A in ('reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v "PROCESSOR_ARCHITECTURE"') do set ProcessorArchitecture=%%B
|
||||
|
||||
if /i "%ProcessorArchitecture%"=="AMD64" (
|
||||
set bit=x64
|
||||
) else if /i "%ProcessorArchitecture%"=="ARM64" (
|
||||
set bit=arm64
|
||||
) else (
|
||||
set bit=Win32
|
||||
)
|
||||
|
||||
pushd "%~dp0"
|
||||
set sevenzip=%~dp07-Zip\%bit%\7z.exe
|
||||
cls
|
||||
|
||||
ver | find "DOS" > nul
|
||||
if %errorlevel% equ 0 (
|
||||
goto doserror
|
||||
) else (
|
||||
ver | find "95" > nul | goto error
|
||||
ver | find "98" > nul | goto error
|
||||
ver | find "Millennium" > nul | goto error
|
||||
ver | findstr /i "5\.0\." > nul && goto error
|
||||
)
|
||||
|
||||
REM === check and get the UAC for administrator privilege ===
|
||||
REM === code from https://sites.google.com/site/eneerge/scripts/batchgotadmin
|
||||
:: BatchGotAdmin
|
||||
@ -18,7 +40,7 @@ if '%errorlevel%' NEQ '0' (
|
||||
if '%1' EQU '1' (
|
||||
echo Cannot elevate administrator privilege
|
||||
echo Please try again with "Run as Administrator"
|
||||
echo Installation failed.
|
||||
echo Permission denied.
|
||||
pause
|
||||
exit /B
|
||||
) else (
|
||||
@ -40,53 +62,45 @@ if '%errorlevel%' NEQ '0' (
|
||||
CD /D "%~dp0"
|
||||
:--------------------------------------
|
||||
|
||||
goto welcomenow
|
||||
|
||||
:welcomenow
|
||||
cls
|
||||
title %welcometitle%
|
||||
echo %welcometitle%
|
||||
echo Welcome to VVCEasy. (Batch file Release Version, %version%, %vvceasydate%)
|
||||
echo Version codename: %versionname%
|
||||
pause
|
||||
goto start
|
||||
|
||||
:start
|
||||
title %welcometitle%
|
||||
color 07
|
||||
cls
|
||||
echo Welcome to VVCEasy!
|
||||
echo VVCEasy (Batchfile Release Version, %version%, %vvceasydate%)
|
||||
echo Version codename: %versionname%
|
||||
echo Current system architecture: %bit%
|
||||
echo %copyrightinfo%
|
||||
echo.
|
||||
echo What would you like to do to encode/decode of VVC?
|
||||
echo 1. Encode
|
||||
echo 2. Decode
|
||||
echo What would you like to do to encode/decode VVC?
|
||||
echo 1. Encode (too old, deprecated)
|
||||
echo 2. Decode (too old, deprecated)
|
||||
echo 3. Help
|
||||
echo 4. Exit
|
||||
echo 5. Install/Test path environment.
|
||||
echo 6. Install quickly through Anaconda (Python distribution) for FFmpeg (Windows)
|
||||
echo 7. Install/Update VVdec Web Player
|
||||
echo 8. Decompress WindowsVVC.7z (Before you use new VVCEasy version!!!)
|
||||
echo 9. Install vvDecPlayer from BitMovin
|
||||
echo 10. Install/Update VLC VTM Plugins (Windows/Linux x64 of VLC plugins by Inter Digital Inc)
|
||||
echo 11. Install FFmpeg VVDec support.
|
||||
echo 12. Install MPV Windows/Android (libvvdec plugin)
|
||||
echo 13. Tests of VVC videos
|
||||
set /p VVCSTART=Number:
|
||||
echo 5. Install/Test path environment. (deprecated)
|
||||
echo 6. Install/Update VVdec Web Player (requires Python and pull for git)
|
||||
echo 7. Install Windows VVC binaries (Windows XP and later)
|
||||
echo 8. Install vvDecPlayer from BitMovin
|
||||
echo 9. Install/Update VLC VTM Plugins (Windows/Linux x64 of VLC plugins by Inter Digital Inc)
|
||||
echo 10. Install FFmpeg/MPV external VVC support.
|
||||
echo 11. Tests of VVC videos
|
||||
echo 12. Build vvenc and vvdec by yourself from sources
|
||||
set /p VVCSTART=Number:
|
||||
|
||||
if "%VVCSTART%" == "1" goto encodestart
|
||||
if "%VVCSTART%" == "2" goto decodestart
|
||||
if "%VVCSTART%" == "3" goto help
|
||||
if "%VVCSTART%" == "4" goto exit
|
||||
if "%VVCSTART%" == "5" goto test
|
||||
if "%VVCSTART%" == "6" goto conda
|
||||
if "%VVCSTART%" == "7" goto installvvdecweb
|
||||
if "%VVCSTART%" == "8" goto decompresswin7z
|
||||
if "%VVCSTART%" == "9" goto installbitmovin
|
||||
if "%VVCSTART%" == "10" goto vlcvtmplugininstall
|
||||
if "%VVCSTART%" == "11" goto ffmpegvvdec
|
||||
if "%VVCSTART%" == "12" goto mpvandroidvvc
|
||||
if "%VVCSTART%" == "13" goto testsofvideo
|
||||
if "%VVCSTART%" == "6" goto installvvdecweb
|
||||
if "%VVCSTART%" == "7" goto decompresswin7z
|
||||
if "%VVCSTART%" == "8" goto installbitmovin
|
||||
if "%VVCSTART%" == "9" goto vlcvtmplugininstall
|
||||
if "%VVCSTART%" == "10" goto installvvdecffmpegmpvnow
|
||||
if "%VVCSTART%" == "11" goto testsofvideo
|
||||
if "%VVCSTART%" == "12" goto main123
|
||||
echo Invalid input. Please enter a number between 1 and 13.
|
||||
pause
|
||||
goto start
|
||||
@ -94,39 +108,45 @@ goto start
|
||||
:encodestart
|
||||
title Encode to VVC
|
||||
cls
|
||||
echo Welcome to VVC encoder.
|
||||
echo Welcome to the VVC encoder.
|
||||
echo What do you like to encode to VVC?
|
||||
echo Before we move to settings quality, is your video lossy or lossless?
|
||||
echo 1. Lossy (example YouTube videos, Web videos, lossy compressed videos, and other webs)
|
||||
echo 2. Lossless (example XIPH Media, Camera uncompressed (MOV/MP4/AVI), Apple ProRes and others uncompressed files)
|
||||
echo 1. Lossy (example YouTube videos, Web videos, lossy compressed videos, and other web)
|
||||
echo 2. Lossless (example XIPH Media, Camera uncompressed RAW video, Apple ProRes and others uncompressed files)
|
||||
echo 3. Go back to the menu.
|
||||
set /p vvencquestion1=Number:
|
||||
if "%vvencquestion1%" == 1 goto losslessvvenc2
|
||||
if "%vvencquestion1%" == 2 goto lossyvvenc2
|
||||
if "%vvencquestion1%" == 3 goto start
|
||||
echo Invalid input. Please enter a number between 1 and 3.
|
||||
pause
|
||||
goto encodestart
|
||||
|
||||
:losslessvvenc2
|
||||
title Lossless settings with Lossless uncompressed (VVC Encoder)
|
||||
cls
|
||||
echo Do you have Y4M?
|
||||
echo If you have Y4M already, move your Y4M file into C:\Program Files\VVCEasy\
|
||||
echo If you do not have Y4M, your instruction will go to next...
|
||||
echo If you do not have Y4M, your instruction will go to the next...
|
||||
echo 1. I have Y4M already (I am ready)
|
||||
echo 2. No, I am not ready yet (go back to previous)
|
||||
echo If you don't have Y4M already... you need transcode file from your uncompressed file to Y4M.
|
||||
echo If you don't have Y4M already... You need to transcode the file from your uncompressed file to Y4M.
|
||||
echo Example: ffmpeg -i yourfile.mov -strict 1 yourfinal.y4m
|
||||
echo Only 8-bit uncompressed movies input to Y4M.
|
||||
echo Only 8-bit uncompressed movies are input to Y4M.
|
||||
set /p doyouhavey4mvvencquestion3=Number:
|
||||
if "%doyouhavey4mvvencquestion3%" == 1 goto startlosslessvvenc2
|
||||
if "%doyouhavey4mvvencquestion3%" == 2 goto encodestart
|
||||
echo Invalid input. Please enter a number 1 or 2.
|
||||
pause
|
||||
goto losslessvvenc2
|
||||
|
||||
:startlosslessvvenc2
|
||||
cls
|
||||
title VVC ENCODER (Y4M LOSSLESS)
|
||||
echo Before we start encoding from your Y4M file to VVC file, I'm afraid I cannot do automatically for you.
|
||||
echo You must manually encode to VVC, the batchfile won't work.
|
||||
echo Before we start encoding from your Y4M file to VVC file, I'm afraid I cannot do it automatically for you.
|
||||
echo You must manually encode it to VVC, as the batch file won't work.
|
||||
echo Here is code: vvencapp --qp 18 -i yourinput.y4m -s 854x480 -r 30 --preset slow --threads 16 --tier high -o yourfinalvvc.266
|
||||
echo YOU HAVE TO REPLACE VIDEO SIZE AND FRAME RATE. -s is video size and -r is frame rate.
|
||||
echo YOU HAVE TO REPLACE THE VIDEO SIZE AND FRAME RATE. -s is video size and -r is frame rate.
|
||||
echo INPUT VIDEO BIT DEPTH IS 8-BIT ONLY FOR UNCOMPRESSED MOVIE FILES.
|
||||
pause
|
||||
goto start
|
||||
@ -136,51 +156,54 @@ title Lossy settings with Lossy compressed (VVC Encoder)
|
||||
cls
|
||||
echo Do you have YUV?
|
||||
echo If you have YUV already, move your YUV file into C:\Program Files\VVCEasy\
|
||||
echo If you do not have YUV, your instruction will go to next...
|
||||
echo If you do not have YUV, your instruction will go to the next...
|
||||
echo 1. I have YUV already (I am ready)
|
||||
echo 2. No, I am not ready yet (go back to previous)
|
||||
echo If you don't have Y4M already... you need transcode file from your lossy video file to YUV.
|
||||
echo If you don't have Y4M already... You need to transcode the file from your lossy video file to YUV.
|
||||
echo Example: ffmpeg -i yourfile.mp4 -strict 1 yourfinal.yuv
|
||||
set /p doyouhaveyuvvvencquestion4=Number:
|
||||
if "%doyouhaveyuvvvencquestion4%" == 1 goto startlossyvvenc2
|
||||
if "%doyouhaveyuvvvencquestion4%" == 2 goto encodestart
|
||||
echo Invalid input. Please enter a number 1 or 2.
|
||||
pause
|
||||
goto lossyvvenc2
|
||||
|
||||
:startlossyvvenc2
|
||||
cls
|
||||
title VVC ENCODER (YUV LOSSY)
|
||||
echo Before we start encoding from your YUV file to VVC file, I'm afraid I cannot do automatically for you.
|
||||
echo You must manually encode to VVC, the batchfile won't work.
|
||||
echo Before we start encoding from your YUV file to VVC file, I'm afraid I cannot do it automatically for you.
|
||||
echo You must manually encode it to VVC, as the batch file won't work.
|
||||
echo Here is code: vvencapp --qp 38 -i yourinput.yuv -s 854x480 -r 30 -o youroutputlossy.266
|
||||
echo YOU HAVE TO REPLACE VIDEO SIZE AND FRAME RATE. -s is video size and -r is frame rate.
|
||||
echo YOU HAVE TO REPLACE THE VIDEO SIZE AND FRAME RATE. -s is video size and -r is frame rate.
|
||||
echo You can also add for "--tier high" or/and 10-bit video "-c yuv420_10", if necessary.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:decodestart
|
||||
explorer "C:\Program Files\VVCEasy\WindowsVVC"
|
||||
cls
|
||||
if not exist "transcodedback" mkdir transcodedback
|
||||
title Decode from VVC to YUV/Y4M
|
||||
echo Do you want to transcode back from VVC to YUV or Y4M? Which did you choose settings? Choosing settings will transcode back.
|
||||
echo You need copy from your VVC file to C:\Program Files\VVCEasy\WindowsVVC\. Windows Explorer will open automatically.
|
||||
echo After copying your VVC file into VVCEasy folder, you need rename to VVC.vvc. It will transcode from your VVC file to YUV/Y4M.
|
||||
echo Do you want to transcode back from VVC to YUV or Y4M? Which did you choose for the settings? Choosing settings will transcode back.
|
||||
echo You need to copy from your VVC file to C:\Program Files\VVCEasy\WindowsVVC\. Windows Explorer will open automatically.
|
||||
echo After copying your VVC file into the VVCEasy folder, rename it to VVC.vvc. It will transcode from your VVC file to YUV/Y4M.
|
||||
echo After transcoding, your transcoded file should be: C:\Program Files\VVCEasy\transcodedback
|
||||
echo Note, if you are using portable, like your git cloned VVCEasy or downloaded source files, go to your Downloads folder and select VVCEasy.
|
||||
echo Portable won't work probably, you need copy from your Downloads folder\VVCEasy into Program Files\VVCEasy.
|
||||
echo Portable won't work probably, you need to copy from your Downloads folder\VVCEasy into Program Files\VVCEasy.
|
||||
echo 1. YUV (lossy video VVC)
|
||||
echo 2. Y4M (lossless video VVC)
|
||||
echo 2. Y4M (lossless video VVC, recommended)
|
||||
set /p decodestart1=Number:
|
||||
if "%decodestart1%" == 1 goto DECODESTARTFROMVVCTOYUV
|
||||
if "%decodestart1%" == 2 goto DECODESTARTFROMVVCTOY4M
|
||||
echo Invalid input. Please enter a number 1 or 2.
|
||||
pause
|
||||
goto decodestart
|
||||
|
||||
:DECODESTARTFROMVVCTOYUV
|
||||
cls
|
||||
title STARTING TRANSCODING BACK FROM VVC TO YUV...
|
||||
mkdir transcodedback
|
||||
cd WindowsVVC
|
||||
vvdecapp -b VVC.vvc -o VVCTOYUV.yuv
|
||||
move VVCTOYUV.yuv ../
|
||||
move VVCTOYUV.yuv transcodedback
|
||||
explorer "C:\Program Files\VVCEasy\transcodedback"
|
||||
move VVCTOYUV.yuv ..\transcodedback
|
||||
echo FINISHED. Going back to the menu...
|
||||
timeout 3
|
||||
goto start
|
||||
@ -188,12 +211,9 @@ goto start
|
||||
:DECODESTARTFROMVVCTOY4M
|
||||
cls
|
||||
title STARTING TRANSCODING BACK FROM VVC TO Y4M...
|
||||
mkdir transcodedback
|
||||
cd WindowsVVC
|
||||
vvdecapp -b VVC.vvc --y4m -o VVCTOYUV.y4m
|
||||
move VVCTOYUV.y4m ../
|
||||
move VVCTOYUV.y4m transcodedback
|
||||
explorer "C:\Program Files\VVCEasy\transcodedback"
|
||||
move VVCTOYUV.y4m ..\transcodedback
|
||||
echo FINISHED. Going back to the menu...
|
||||
timeout 3
|
||||
goto start
|
||||
@ -201,57 +221,56 @@ goto start
|
||||
:test
|
||||
cls
|
||||
title INSTALL/TEST PATH ENVIRONMENT
|
||||
echo Martin Eesmaa is testing your paths, that you installed programs in PATH. Not sure, what is path?
|
||||
echo You can go here for link: https://stackoverflow.com/questions/4910721/python-on-cmd-path
|
||||
echo Also you can also search "What is PATH in Windows?" in DuckDuckGo or SearX.
|
||||
echo Are you ready to test? (Y/N) or type "I" to install path environment.
|
||||
echo Martin Eesmaa is testing your paths, where you installed programs in PATH. If you're unsure, what is the path?
|
||||
echo You can go there for a link at https://stackoverflow.com/questions/4910721/python-on-cmd-path
|
||||
echo Also search "What is PATH in Windows?" in DuckDuckGo, Google, SearX or your favorite search engine.
|
||||
echo Are you ready to test? (Y/N) Or type "I" to install the path environment.
|
||||
set /p readytestbefore=Answer:
|
||||
if "%readytestbefore%" == Y goto nowtestingtime
|
||||
if "%readytestbefore%" == N goto start
|
||||
if "%readytestbefore%" == y goto nowtestingtime
|
||||
if "%readytestbefore%" == n goto start
|
||||
if "%readytestbefore%" == I goto installpath
|
||||
if "%readytestbefore%" == i goto installpath
|
||||
if /I "%readytestbefore%"=="Y" goto nowtestingtime
|
||||
if /I "%readytestbefore%"=="N" goto start
|
||||
if /I "%readytestbefore%"=="I" goto installpath
|
||||
echo Invalid input. Please enter a valid letter of Y, N or I.
|
||||
pause
|
||||
goto test
|
||||
|
||||
:nowtestingtime
|
||||
title Testing time...
|
||||
7z
|
||||
title Testing installed programs...
|
||||
ffmpeg
|
||||
ffplay
|
||||
wget
|
||||
git
|
||||
echo You need exit in Python for typing "exit()".
|
||||
python
|
||||
python --version
|
||||
echo Did that work in your PATH? Y/N?
|
||||
set /p testdidworkq=Answer:
|
||||
if "%testdidworkq%" == Y goto youdidworktest
|
||||
if "%testdidworkq%" == N goto ahhdidnotwork
|
||||
if "%testdidworkq%" == y goto youdidworktest
|
||||
if "%testdidworkq%" == n goto ahhdidnotwork
|
||||
if /I "%testdidworkq%"=="Y" goto youdidworktest
|
||||
if /I "%testdidworkq%"=="N" goto ahhdidnotwork
|
||||
echo Invalid input. Please enter a valid letter of Y or N.
|
||||
pause
|
||||
goto nowtestingtime
|
||||
|
||||
:youdidworktest
|
||||
title Great!
|
||||
echo Great, your PATHS working now. Now back to the menu...
|
||||
echo Great, your PATH environment is working. Going back to the menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:ahhdidnotwork
|
||||
title Sorry...
|
||||
echo Sorry, your path environment did not work. Make sure follow that needs to be add it on paths installation like Python.
|
||||
echo Still not working? You can ask questions in Stack Overflow.
|
||||
echo Sorry, your path environment did not work. Make sure to follow the steps that need to be added to the path's installation, like Python.
|
||||
echo Still not working? You can ask questions on Stack Overflow.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:installpath
|
||||
echo Installer path environment will be only for 7-Zip.
|
||||
echo Other programs should need manual, but Python, FFmpeg, wget and git must be installed manually and add automatically path environments.
|
||||
echo Do you want patch 7-Zip on your path environment, so you can type "7z" next time.
|
||||
echo Would you like to install 7-Zip on your path environments? Y/N? No means go back to test menu.
|
||||
echo Other programs should need a manual, but Python, FFmpeg, wget and git must be installed manually and the paths to their environments must be added automatically.
|
||||
echo Do you want to patch 7-Zip on your path environment so that you can type "7z" next time?
|
||||
echo Would you like to install 7-Zip on your path environments? Y/N? No means go back to the test menu.
|
||||
set /p installpath1=Answer:
|
||||
if "%installpath1%" == Y goto installingpath
|
||||
if "%installpath1%" == N goto test
|
||||
if "%installpath1%" == y goto installingpath
|
||||
if "%installpath1%" == n goto test
|
||||
if /I "%installpath1%"=="Y" goto installingpath
|
||||
if /I "%installpath1%"=="N" goto test
|
||||
echo Invalid input. Please enter a valid letter of Y or N.
|
||||
pause
|
||||
goto installpath
|
||||
|
||||
:installingpath
|
||||
title INSTALLING 7-ZIP on your path environments...
|
||||
@ -264,9 +283,9 @@ goto test
|
||||
|
||||
:exit
|
||||
cls
|
||||
title Have a wonderful day!
|
||||
echo Have a wonderful day! Thank you for using VVCEasy. :)
|
||||
::: _ _ _
|
||||
title Have a nice day!
|
||||
echo Have a nice day! Thank you for using VVCEasy! :)
|
||||
::: _ _ _
|
||||
::: | | | | | |
|
||||
::: | |_| |__ __ _ _ __ | | ___ _ ___ _ _
|
||||
::: | __| '_ \ / _` | '_ \| |/ / | | |/ _ \| | | |
|
||||
@ -294,44 +313,29 @@ echo Have a wonderful day! Thank you for using VVCEasy. :)
|
||||
|
||||
for /f "delims=: tokens=*" %%A in ('findstr /b ::: "%~f0"') do @echo(%%A
|
||||
echo.
|
||||
echo Copyright (C) 2021-2022 Martin Eesmaa
|
||||
echo %copyrightinfo%
|
||||
echo.
|
||||
echo ------------ END OF THE PROGRAM ----------------
|
||||
echo ------------ END OF WINDOWS BATCHFILE PROGRAM ----------------
|
||||
timeout 5 /nobreak
|
||||
exit
|
||||
|
||||
:conda
|
||||
cls
|
||||
title ANACONDA (PYTHON DISTRIBUTION)
|
||||
echo Welcome to Anaconda (Python Distribution) Quick Install. This will do only one task to download FFmpeg. Would you like to install? Y/N?
|
||||
set /p anacondaman=Answer:
|
||||
if "%anacondaman%" == Y goto condainstall
|
||||
if "%anacondaman%" == N goto start
|
||||
if "%anacondaman%" == y goto condainstall
|
||||
if "%anacondaman%" == n goto start
|
||||
|
||||
:condainstall
|
||||
conda install -c conda-forge ffmpeg
|
||||
echo SUCCESS, going to back the menu...
|
||||
pause
|
||||
goto start
|
||||
|
||||
:help
|
||||
cls
|
||||
echo Welcome to VVCEasy help instructions!
|
||||
echo Here is tutorial about... How to use VVCEasy?
|
||||
echo Here is a tutorial about... How to use VVCEasy?
|
||||
pause
|
||||
echo Step 1: Run on VVCEasy.bat. When you see the screen of Welcome to VVCEasy. You can press any key continue to main menu.
|
||||
echo Step 2: Here is the list of main menus, that you need type any number will go to direction like (goto) command.
|
||||
echo Step 3: Follow the command instructions and that is easy.
|
||||
echo Step 1: Run on VVCEasy.bat. When you see the screen: "Welcome to VVCEasy. You can press any key to continue to the main menu."
|
||||
echo Step 2: Here is the list of main menus, where you must type any number to go in the direction, like the (goto) command.
|
||||
echo Step 3: Follow the command instructions, and that is easy.
|
||||
pause
|
||||
echo If you have any problems that you do not understand VVCEasy. Please contact Martin Eesmaa by creating issues for questions or/and problems.
|
||||
echo Do you want to start over help instructions? If yes, then it will go back from the beginning. If No, going to back menu. Y/N?
|
||||
echo If you have any problems that you do not understand VVCEasy. Please get in touch with Martin Eesmaa by creating issues for questions and/or problems.
|
||||
echo Do you want to start over with the help instructions? If yes, then it will go back to the beginning. If no, go back to the menu. Y/N?
|
||||
set /p helper=Answer:
|
||||
if "%helper%" == Y goto help
|
||||
if "%helper%" == N goto start
|
||||
if "%helper%" == y goto help
|
||||
if "%helper%" == n goto start
|
||||
if /I "%helper%"=="Y" goto help
|
||||
if /I "%helper%"=="N" goto start
|
||||
echo Invalid input. Please enter a valid letter of Y or N.
|
||||
pause
|
||||
goto help
|
||||
|
||||
:installvvdecweb
|
||||
cls
|
||||
@ -339,32 +343,31 @@ title VVdec Web Player.
|
||||
echo Welcome to VVDEC Web Player.
|
||||
echo By installing, you will have to agree to download VVDec Web Player from Fraunhoferhhi GitHub.
|
||||
echo See the code of VVDEC Web Player: https://github.com/fraunhoferhhi/vvdecWebPlayer
|
||||
echo When you agree to install, it will clone VVDec Web Player repository using git. After git, we will copy from VVDECWEBINSTALL files into vvdecWebPlayer/bin folder.
|
||||
echo After all of that, we will run Python to start web server of your localhost port 8000.
|
||||
echo If you already have installed of VVDec Web Player, you can type "U" to update files of VVDec Web Player.
|
||||
echo When you agree to install, it will clone the VVDec Web Player repository using git. After git, we will copy from the VVDECWEBINSTALL files into the vvdecWebPlayer/bin folder.
|
||||
echo After that, it will run Python to start the web server on your localhost port 8000.
|
||||
If you have already installed VVDec Web Player, you can type "U" to update the files of VVDec Web Player.
|
||||
echo Would you like to install VVDEC Web Player?
|
||||
set /p okletsdoit=Answer:
|
||||
if "%okletsdoit%" == Y goto installnowplayer
|
||||
if "%okletsdoit%" == N goto start
|
||||
if "%okletsdoit%" == y goto installnowplayer
|
||||
if "%okletsdoit%" == n goto start
|
||||
if "%okletsdoit%" == U goto updatevvdecwebplayer
|
||||
if "%okletsdoit%" == u goto updatevvdecwebplayer
|
||||
if /I "%okletsdoit%"=="Y" goto installnowplayer
|
||||
if /I "%okletsdoit%"=="N" goto start
|
||||
if /I "%okletsdoit%"=="U" goto updatevvdecwebplayer
|
||||
echo Invalid input. Please enter a valid letter of Y, N or U.
|
||||
pause
|
||||
goto installvvdecweb
|
||||
|
||||
:installnowplayer
|
||||
cls
|
||||
title INSTALLING VVDEC WEB PLAYER...
|
||||
git clone https://github.com/fraunhoferhhi/vvdecWebPlayer.git
|
||||
git clone https://github.com/fraunhoferhhi/vvdecWebPlayer
|
||||
copy VVDECWEBINSTALL "vvdecWebPlayer/bin" /y
|
||||
cd vvdecWebPlayer
|
||||
wget https://www.dropbox.com/s/zp8b3xg0b5p1pwe/VVCEasy.266
|
||||
rename VVCEasy.266 dummy_raw_bitstream.266
|
||||
echo Note: If you want to go back to menu, press CTRL + C on your keyboard in Windows Terminal/CMD and type "Y" to terminate server and this will go back to main menu options.
|
||||
echo The python file is porting 8000 on your local host computer.
|
||||
copy ..\VVCEasy.266 dummy_raw_bitstream.266
|
||||
echo Note: If you want to go back to the menu, press CTRL + C on your keyboard in Windows Terminal/CMD and type "Y" to terminate the server, and this will go back to the main menu options.
|
||||
echo The Python file is running on port 8000 on your local host computer.
|
||||
python wasm_test-server.py
|
||||
cd ../
|
||||
echo Thanks for trying out VVDEC Web Player. If you want to run on your VVDEC Web Player Server, go to folder of vvdecWebPlayer and run one click wasm_test-server.py.
|
||||
echo Press any key to go back menu.
|
||||
echo Thanks for trying out VVDEC Web Player. If you want to run on your VVDEC Web Player Server, go to the folder called vvdecWebPlayer and double click the file wasm_test-server.py.
|
||||
echo Press any key to go back to the menu.
|
||||
timeout 10
|
||||
goto start
|
||||
|
||||
@ -372,31 +375,41 @@ goto start
|
||||
cls
|
||||
title UPDATING VVDEC WEB PLAYER...
|
||||
echo UPDATING VVDEC WEB PLAYER...
|
||||
cd vvdecWebPlayer
|
||||
git pull
|
||||
cd ../
|
||||
echo Your up to date is now latest.
|
||||
git -C vvdecWebPlayer pull
|
||||
echo vvdecWebPlayer is now updated.
|
||||
echo Returning to main menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:decompresswin7z
|
||||
cls
|
||||
title Decompress Windows VVC?
|
||||
echo Would you like to decompress Windows VVC binaries? Y/N?
|
||||
set /p decompwinvvc=Answer:
|
||||
if /I "%decompwinvvc%"=="Y" goto decompresswin7z1
|
||||
if /I "%decompwinvvc%"=="N" goto start
|
||||
echo Invalid input. Please enter a valid letter of Y or N.
|
||||
pause
|
||||
goto decompresswin7z
|
||||
|
||||
:decompresswin7z1
|
||||
title WindowsVVC.7z (decompressing)
|
||||
echo Decompressing........
|
||||
cd WindowsVVC
|
||||
7z x WindowsVVC.7z
|
||||
certutil -hashfile vvencapp.exe SHA512
|
||||
certutil -hashfile vvdecapp.exe SHA512
|
||||
certutil -hashfile vvencFFapp.exe SHA512
|
||||
certutil -hashfile vvencinterfacetest.exe SHA512
|
||||
certutil -hashfile vvenclibtest.exe SHA512
|
||||
rename SHA512SUMS SHA512SUMS.txt
|
||||
SHA512SUMS.txt
|
||||
echo Now please make sure double check that needs to be same hash. If it matches hash same as .exe of SHA512SUMS.txt and CertUtil. That means good.
|
||||
echo If the hashes are not matched correctly, please contact and create issue to Martin Eesmaa/VVCEasy on GitHub for your own problem.
|
||||
%sevenzip% x WindowsVVC.7z -i!%bit% -aoa
|
||||
certutil -hashfile %bit%\vvdecapp.exe SHA256
|
||||
certutil -hashfile %bit%\vvencapp.exe SHA256
|
||||
certutil -hashfile %bit%\vvencFFapp.exe SHA256
|
||||
certutil -hashfile %bit%\vvencinterfacetest.exe SHA256
|
||||
certutil -hashfile %bit%\vvenclibtest.exe SHA256
|
||||
type WindowsVVC.sha256 | findstr %bit%
|
||||
cd ../
|
||||
echo Please double-check that it needs to be the same hash. If it matches the hash, it is the same as the .exe of WindowsVVC.sha256 and CertUtil. This means good.
|
||||
echo If the hashes are not matched correctly, please try it again or manually extract the compressed file using 7-Zip.
|
||||
echo.
|
||||
echo Otherwise, please create an issue to Martin Eesmaa/VVCEasy on GitHub for your problem.
|
||||
pause
|
||||
echo Thank you for decompressing WindowsVVC.7z... Now back to the menu.
|
||||
echo Thank you for decompressing Windows VVC binaries. Now, back to the menu.
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
@ -404,44 +417,43 @@ goto start
|
||||
cls
|
||||
title Install BitVVDecPlayer from BitMovin
|
||||
echo Would you like to install on your operating system?
|
||||
echo Windows for W, Mac OS for M and Linux for L, Main Menu for N/n.
|
||||
echo Windows for W, Mac OS for M and Linux for L, Main Menu for N.
|
||||
set installmessage=Installing BitVVDecPlayer from BitMovin...
|
||||
set /p installbitmovind=Answer:
|
||||
if "%installbitmovind%" == W goto installbitmovin1windows
|
||||
if "%installbitmovind%" == w goto installbitmovin1windows
|
||||
if "%installbitmovind%" == M goto installbitmovin1macos
|
||||
if "%installbitmovind%" == m goto installbitmovin1macos
|
||||
if "%installbitmovind%" == L goto installbitmovin1linux
|
||||
if "%installbitmovind%" == l goto installbitmovin1linux
|
||||
if "%installbitmovind%" == N goto start
|
||||
if "%installbitmovind%" == n goto start
|
||||
if /I "%installbitmovind%"=="W" goto installbitmovin1windows
|
||||
if /I "%installbitmovind%"=="M" goto installbitmovin1macos
|
||||
if /I "%installbitmovind%"=="L" goto installbitmovin1linux
|
||||
if /I "%installbitmovind%"=="N" goto start
|
||||
echo Invalid input. Please enter a valid letter of W, M, L or N.
|
||||
pause
|
||||
goto installbitmovin
|
||||
|
||||
:installbitmovin1windows
|
||||
title Installing BitVVDecPlayer from BitMovin...
|
||||
echo Installing BitVVDecPlayer from BitMovin...
|
||||
mkdir BitVVDecPlayerWIN
|
||||
title %installmessage%
|
||||
echo %installmessage%
|
||||
if not exist "BitVVDecPlayerWIN" mkdir BitVVDecPlayerWIN
|
||||
cd BitVVDecPlayerWIN
|
||||
echo Downloading BitVVDecPlayer (Windows) from Bitmovin, compiled by Martin Eesmaa
|
||||
wget https://www.dropbox.com/s/75ouoeadcr2cl53/BitVVDecPlayerWIN.7z
|
||||
7z x BitVVDecPlayerWIN.7z
|
||||
wget -q https://www.dropbox.com/scl/fi/x4v1qb60u8zp505dtx8p6/BitVVDecPlayerWIN.7z?rlkey=gs9duytd6h1sos69o53rw8vyy -o BitVVDecPlayerWIN.7z
|
||||
%sevenzip% x BitVVDecPlayerWIN.7z -aoa
|
||||
del /q BitVVDecPlayerWIN.7z
|
||||
vvDecPlayer
|
||||
echo Successfully running on BitVVDecPlayer, now if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
|
||||
echo If you receive error, that MSVCP140.DLL is missing, you might need download Microsoft Visual C++ Redistributable of 2015-2017-2019-2022: https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
|
||||
echo Successfully running on BitVVDecPlayer, if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
|
||||
echo If you received error about MSVCP140.DLL is missing, you need to download Microsoft Visual C++ Redistributable of 2015-2017-2019-2022: https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
|
||||
echo To build vvDecPlayer, please go to https://github.com/bitmovin/vvDecPlayer
|
||||
echo Or contact Bitmovin at https://www.bitmovin.com or create issue on VVCEasy.
|
||||
echo Or contact Bitmovin at https://www.bitmovin.com or create issue to VVCEasy.
|
||||
goto downloadbitmovinvvcsample
|
||||
|
||||
:installbitmovin1macos
|
||||
title Installing BitVVDecPlayer from BitMovin...
|
||||
echo Installing BitVVDecPlayer from BitMovin...
|
||||
mkdir BitVVDecPlayerMAC
|
||||
title %installmessage%
|
||||
echo %installmessage%
|
||||
if not exist "BitVVDecPlayerMAC" mkdir BitVVDecPlayerMAC
|
||||
cd BitVVDecPlayerMAC
|
||||
echo Downloading BitVVDecPlayer (macOS) from Bitmovin, compiled by Martin Eesmaa
|
||||
wget https://www.dropbox.com/s/ilsoica7c8dh4hq/BitVVDecPlayerMAC.7z
|
||||
7z x BitVVDecPlayerMAC.7z
|
||||
wget -q https://www.dropbox.com/s/ilsoica7c8dh4hq/BitVVDecPlayerMAC.7z
|
||||
%sevenzip% x BitVVDecPlayerMAC.7z -aoa
|
||||
del /q BitVVDecPlayerMAC.7z
|
||||
./vvDecPlayer
|
||||
echo Successfully running on vvDecPlayer, now if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
|
||||
echo Download completed, please put on macOS and run it, if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
|
||||
echo If vvDecPlayer won't work probably, it might be issue that you haven't installed Qt on your Mac OS. Please install using code: "brew install qt" on Homebrew.
|
||||
echo To build vvDecPlayer, please go to https://github.com/bitmovin/vvDecPlayer
|
||||
echo Or contact Bitmovin at https://www.bitmovin.com or create issue on VVCEasy.
|
||||
@ -449,113 +461,116 @@ echo For more information, see Bitmovin.md.
|
||||
goto downloadbitmovinvvcsample
|
||||
|
||||
:installbitmovin1linux
|
||||
title Installing BitVVDecPlayer from BitMovin...
|
||||
echo Installing BitVVDecPlayer from BitMovin...
|
||||
mkdir BitVVDecPlayerLINUX
|
||||
title %installmessage%
|
||||
echo %installmessage%
|
||||
if not exist "BitVVDecPlayerLINUX" mkdir BitVVDecPlayerLINUX
|
||||
cd BitVVDecPlayerLINUX
|
||||
echo Downloading BitVVDecPlayer (Linux) from Bitmovin, compiled by Martin Eesmaa
|
||||
wget https://www.dropbox.com/s/bihm3pyh21lcvte/BitVVDecPlayerLINUX.7z?dl=0
|
||||
7z x BitVVDecPlayerLINUX.7z
|
||||
del /q BitVVDecPlayerLINUX.7z
|
||||
./vvDecPlayer
|
||||
echo Successfully running on vvDecPlayer, now if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
|
||||
echo Note, this is only Ubuntu 20.04 LTS build.
|
||||
echo If you're running other Linux without Ubuntu 20.04, you might need to read Bitmovin.md instructions and build vvDecPlayer yourself.
|
||||
wget -q https://www.dropbox.com/scl/fi/9jgibpwxe52zkkjijycdc/BitVVDecPlayerLINUX.AppImage?rlkey=jrqxsnwuqltc1xj9fevk9xb1f -o BitVVDecPlayerLINUX.AppImage
|
||||
echo Download completed, please execute and run on your Linux machine, if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
|
||||
echo Note, this is AppImage format to run universal Linux distros.
|
||||
echo To build vvDecPlayer, please go to https://github.com/bitmovin/vvDecPlayer
|
||||
echo If vvDecPlayer won't work probably, it might be issue that you haven't installed Qt on your Linux. Please install using code: "sudo apt install qt5-default build-essential" on Linux terminal.
|
||||
echo If vvDecPlayer won't work probably, please install fuse2 on your Linux distro or/and it does not support for old operating systems.
|
||||
echo Or contact Bitmovin at https://www.bitmovin.com or create issue on VVCEasy.
|
||||
goto downloadbitmovinvvcsample
|
||||
|
||||
:downloadbitmovinvvcsample
|
||||
echo Would you like to download VVC sample video files from Bitmovin? Y/N?
|
||||
set /p vvcsampleyeah=Answer:
|
||||
if "%vvcsampleyeah%" == Y goto downloadvvcnowbit
|
||||
if "%vvcsampleyeah%" == y goto downloadvvcnowbit
|
||||
if "%vvcsampleyeah%" == N goto start
|
||||
if "%vvcsampleyeah%" == n goto start
|
||||
if /I "%vvcsampleyeah%"=="Y" goto downloadvvcnowbit
|
||||
if /I "%vvcsampleyeah%"=="N" goto start
|
||||
echo Invalid input. Please enter a valid letter of Y or N.
|
||||
pause
|
||||
goto downloadbitmovinvvcsample
|
||||
|
||||
:downloadvvcnowbit
|
||||
title Downloading VVC sample files and Coffee Run JSON & Sprite Fright JSON... from Bitmovin
|
||||
title Downloading VVC sample files and Coffee Run JSON & Sprite Fright JSON from Bitmovin...
|
||||
echo Downloading VVC sample files and Coffee Run JSON & Sprite Fright JSON from Bitmovin...
|
||||
wget "https://www.dropbox.com/s/qncefmnhw8hzr2k/vvcBlogPostDemo.7z" "https://www.dropbox.com/s/ogxw1pz9pr9bphi/CoffeeRun.json" "https://www.dropbox.com/s/6kpnoin4bwzb1ob/SpriteFright.json"
|
||||
wget -q https://www.dropbox.com/s/qncefmnhw8hzr2k/vvcBlogPostDemo.7z https://www.dropbox.com/s/ogxw1pz9pr9bphi/CoffeeRun.json https://www.dropbox.com/s/6kpnoin4bwzb1ob/SpriteFright.json
|
||||
echo Extracting from archived file...
|
||||
7z x vvcBlogPostDemo.7z
|
||||
%sevenzip% x vvcBlogPostDemo.7z -aoa
|
||||
echo Deleting archived file...
|
||||
del /q vvcBlogPostDemo.7z
|
||||
title Installation of BitVVDecPlayer
|
||||
echo Please edit the location downloaded folder of vvcBlogPostDemo...
|
||||
CoffeeRun.json && SpriteFright.json
|
||||
echo Press any key, when you finished configured of your location folder...
|
||||
echo Press any key, when you done editing JSON files.
|
||||
pause
|
||||
echo Okay, it seems you configured completely. Please run on vvDecPlayer on your operating system.
|
||||
echo Go to File, then Open JSON manifest in BitVVDecPlayer...
|
||||
echo Select JSON file to run VVC movie and enjoy it.
|
||||
echo Still not working? Please chat us on https://matrix.to/#/#vvceasy:matrix.org to solve your problem or add new issue on GitHub.
|
||||
echo Okay, you configured manually success. Please run vvDecPlayer on your computer.
|
||||
echo Go to File tab, then Open JSON manifest in BitVVDecPlayer...
|
||||
echo Select JSON file to play VVC movie and enjoy it.
|
||||
echo Still not working? Please create the new issue on GitHub or join community available with Discord, Revolt and Matrix.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:vlcvtmplugininstall
|
||||
if /i "%bit%" == "x64" (
|
||||
echo.
|
||||
) else (
|
||||
echo Sorry, VLC VTM Plugins is only available for x64/amd64 architecture
|
||||
pause
|
||||
goto start
|
||||
)
|
||||
cls
|
||||
title VLC VTM Plugins Install (Windows & Linux)
|
||||
title VLC VTM Plugins Install (Windows and Linux)
|
||||
echo Welcome to VLC Media Player of VTM Plugins Installation.
|
||||
echo You need to run Windows version of Windows Vista / Windows Server 2008 to play VVC files.
|
||||
echo Windows XP can't load VTM plugins, but other plugins work.
|
||||
echo Windows XP can't load VTM plugins, but other plugins works.
|
||||
echo System type only = x64
|
||||
echo Linux is now available, see Linux installation at: https://github.com/MartinEesmaa/VVCEasy/tree/master/INSTALLVLCPLUGIN#for-linux-users
|
||||
echo Current version = 3.0.16, latest version 3.0.17-4 (it will work same latest version)
|
||||
echo Available: VLC 3.0.9.2 and later (it will work same latest version 3 only)
|
||||
echo Would you like to install VTM plugins to your VLC Media Player? Y/N?
|
||||
set /p vlcvtmyesorno=Answer:
|
||||
if "%vlcvtmyesorno%" == Y goto installvlcvtmpluginnow
|
||||
if "%vlcvtmyesorno%" == y goto installvlcvtmpluginnow
|
||||
if "%vlcvtmyesorno%" == N goto start
|
||||
if "%vlcvtmyesorno%" == n goto start
|
||||
if /I "%vlcvtmyesorno%"=="Y" goto installvlcvtmpluginnow
|
||||
if /I "%vlcvtmyesorno%"=="N" goto start
|
||||
echo Invalid input. Please enter a valid letter of Y or N.
|
||||
pause
|
||||
goto vlcvtmplugininstall
|
||||
|
||||
:installvlcvtmpluginnow
|
||||
title Installing of VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)
|
||||
echo Installing VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)
|
||||
cd INSTALLVLCPLUGIN
|
||||
copy libvtmdec.dll "%programfiles%\VideoLAN\VLC\plugins\codec" /y
|
||||
copy libvvcdecoder_plugin.dll "%programfiles%\VideoLAN\VLC\plugins\codec" /y
|
||||
copy libvvctsdemux_plugin.dll "%programfiles%\VideoLAN\VLC\plugins\demux" /y
|
||||
:installingvlcvtmplugins
|
||||
if exist "%programfiles%\VideoLAN\VLC" (
|
||||
copy libvtmdec.dll "%programfiles%\VideoLAN\VLC\plugins\codec" /y
|
||||
copy libvvcdecoder_plugin.dll "%programfiles%\VideoLAN\VLC\plugins\codec" /y
|
||||
copy libvvctsdemux_plugin.dll "%programfiles%\VideoLAN\VLC\plugins\demux" /y
|
||||
) else (
|
||||
:tryagainafterinvalidvlc
|
||||
echo Please make sure your VLC is installed on your computer.
|
||||
echo After that, please try again.
|
||||
echo.
|
||||
echo 1: Try again
|
||||
echo 2: Go back to main menu
|
||||
set /p vlcnotexisttryagain=Answer:
|
||||
if "%vlcnotexisttryagain%" == "1" goto installingvlcvtmplugins
|
||||
if "%vlcnotexisttryagain%" == "2" goto start
|
||||
echo Invalid input. Please enter a number 1 or 2.
|
||||
pause
|
||||
goto tryagainafterinvalidvlc
|
||||
)
|
||||
cd ../
|
||||
taskkill /im vlc.exe
|
||||
tasklist /fi "imagename eq vlc.exe" | find /i "vlc.exe" >nul
|
||||
if not errorlevel 1 taskkill /im vlc.exe >nul
|
||||
echo Three dll files are patched to your VLC Media Player.
|
||||
echo Restarting and starting VLC Media Player...
|
||||
echo Restarting VLC Media Player...
|
||||
echo Please load your VVC (codec) video file to VLC Media Player.
|
||||
echo For more information and options, please go at https://github.com/InterDigitalInc/VTMDecoder_VLCPlugin
|
||||
echo Once you're finished, you don't have to patch again. You can continue normally VLC Media Player next time after VVCEasy.
|
||||
echo For more information, please go to at https://github.com/InterDigitalInc/VTMDecoder_VLCPlugin
|
||||
echo Once you're finished, you don't have to patch again. You can continue VLC Media Player next time after patch.
|
||||
"%programfiles%\VideoLAN\VLC\vlc.exe"
|
||||
pause
|
||||
goto start
|
||||
|
||||
:ffmpegvvdec
|
||||
cls
|
||||
title FFmpeg VVDec support
|
||||
echo Hello, would you like to download FFmpeg VVDec support? Y/N?
|
||||
set /p vvcnow0=Answer:
|
||||
if "%vvcnow0%" == Y goto installvvdecffmpegnow
|
||||
if "%vvcnow0%" == N goto start
|
||||
if "%vvcnow0%" == y goto installvvdecffmpegnow
|
||||
if "%vvcnow0%" == n goto start
|
||||
|
||||
:installvvdecffmpegnow
|
||||
echo Your favorite operating system is available on FFmpeg VVDec support. Please copy the link to a web browser.
|
||||
:installvvdecffmpegmpvnow
|
||||
echo It is available of FFmpeg and MPV VVC support. Please copy or open the link to a web browser.
|
||||
echo.
|
||||
echo Download link: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md#ffmpeg-downloads-xhe-aac--vvc-endecoder-plugin-compiled-by-martin-eesmaa
|
||||
echo Download link for FFmpeg: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md#ffmpeg-downloads-xhe-aac--vvc-endecoder-plugin-compiled-by-martin-eesmaa
|
||||
echo Download link for MPV: https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md#downloads-for-mpv-android-vvc-support
|
||||
echo.
|
||||
echo See information on FFMPEGVVC.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md
|
||||
echo For FFmpeg, see information on FFMPEGVVC.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md
|
||||
echo For MPV, see information on MPV.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md
|
||||
echo.
|
||||
echo Press enter to go back menu.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:mpvandroidvvc
|
||||
echo Please see the document. The command will open the document for you.
|
||||
MPV.md
|
||||
echo.
|
||||
echo See information MPV.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md
|
||||
echo.
|
||||
echo Press enter to go back to the main menu.
|
||||
pause
|
||||
goto start
|
||||
|
||||
@ -569,3 +584,61 @@ echo Press enter to go back menu.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:main123
|
||||
title Build vvenc and vvdec by yourself from sources
|
||||
cls
|
||||
echo Do you want build of vvenc and vvdec yourself on your computer?
|
||||
echo Before you agree to build for Windows, you need Cmake and Visual Studio on your computer.
|
||||
echo Requires build to Windows VVC by Cmake 3.13.0+ (need pathed environment) and Visual Studio 2017 and later (requires Desktop C++ and only one individual component ML.NET Model Builder).
|
||||
echo Requires download VVEnc and VVDec for (Git for Windows).
|
||||
echo Yes: To start build. No: To go back to the main menu.
|
||||
echo Y/N?
|
||||
set /p main1234= Answer:
|
||||
if /I "%main1234%"=="Y" goto installmain123
|
||||
if /I "%main1234%"=="N" goto start
|
||||
echo Invalid input. Please enter a valid letter of Y or N.
|
||||
pause
|
||||
goto main123
|
||||
|
||||
:installmain123
|
||||
title Building time...
|
||||
echo Building time...
|
||||
echo Cloning vvenc and vvdec from Fraunhofer HHI on GitHub...
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvenc
|
||||
cmake -S . -B build
|
||||
cmake --build build --config Release
|
||||
cd ../vvdec
|
||||
cmake -S . -B build
|
||||
cmake --build build --config Release
|
||||
cd ..
|
||||
goto successnow
|
||||
|
||||
:successnow
|
||||
echo.
|
||||
echo.
|
||||
echo.
|
||||
echo Success build of vvenc and vvdec on Windows.
|
||||
echo Copying executable files to build\%bit%
|
||||
if not exist build\%bit% mkdir build\%bit%
|
||||
copy /y "vvenc\bin\release-static\*.exe" "build\%bit%"
|
||||
copy /y "vvdec\bin\release-static\*.exe" "build\%bit%"
|
||||
echo Cleaning up of build, lib and bin folders of both dependencies...
|
||||
rmdir /s /q vvenc\bin vvenc\lib vvenc\build vvdec\bin vvdec\bin vvdec\lib vvdec\build
|
||||
echo Done! Press Enter to go back the menu.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:error
|
||||
echo Your Windows version is unsupported and outdated which does not work to run with VVC binaries and others too.
|
||||
echo This batchfile script requires Windows XP and later.
|
||||
pause
|
||||
exit
|
||||
|
||||
:doserror
|
||||
echo DOS is unsupported and outdated, which does not work to run with VVC binaries and others too.
|
||||
echo MS-DOS, DOSBox and FreeDOS were not supported.
|
||||
echo This batchfile script requires Windows XP and later.
|
||||
pause
|
||||
exit
|
@ -5,6 +5,14 @@
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Product>VVCEasy</Product>
|
||||
<Version>2.7.0</Version>
|
||||
<Authors>Martin Eesmaa</Authors>
|
||||
<Copyright>© 2021-2024 Martin Eesmaa</Copyright>
|
||||
<Description>VVCEasy is easy VVC, that no need to compile.</Description>
|
||||
<PublishSingleFile>true</PublishSingleFile>
|
||||
<EnableCompressionInSingleFile>true</EnableCompressionInSingleFile>
|
||||
<PublishTrimmed>true</PublishTrimmed>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
BIN
VVCEasy.png
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 91 KiB |
BIN
VVCEasy.pptx
Normal file
@ -2,7 +2,7 @@
|
||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||
|
||||
#define MyAppName "VVCEasy"
|
||||
#define MyAppVersion "2.0.0"
|
||||
#define MyAppVersion "2.7.0"
|
||||
#define MyAppPublisher "Martin Eesmaa"
|
||||
#define MyAppURL "https://github.com/MartinEesmaa/VVCEasy"
|
||||
|
||||
@ -19,10 +19,10 @@ AppSupportURL={#MyAppURL}
|
||||
AppUpdatesURL={#MyAppURL}
|
||||
DefaultDirName={autopf}\{#MyAppName}
|
||||
DefaultGroupName={#MyAppName}
|
||||
LicenseFile=C:\Users\User\Downloads\VVCEasy\LICENSE
|
||||
LicenseFile=LICENSE
|
||||
; Uncomment the following line to run in non administrative install mode (install for current user only.)
|
||||
;PrivilegesRequired=lowest
|
||||
OutputDir=C:\Users\User\Downloads
|
||||
OutputDir=Install
|
||||
OutputBaseFilename=VVCEasy
|
||||
Compression=lzma2/ultra64
|
||||
SolidCompression=yes
|
||||
@ -34,6 +34,20 @@ CompressionThreads=1
|
||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||
|
||||
[Files]
|
||||
Source: "C:\Users\User\Downloads\VVCEasy\*"; DestDir: "{win}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "WindowsVVC\WindowsVVC.7z"; DestDir: "{app}\WindowsVVC"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "uvg266\Windows\uvg266-Windows.7z"; DestDir: "{app}\uvg266\Windows"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "LAVFilters\LAVFilters-0.79.2-x64-VVCEasy.7z"; DestDir: "{app}\LAVFilters"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "VVCEasy.bat"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "wget.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "7-Zip\7z.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "7-Zip\7z.dll"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "INSTALLVLCPLUGIN\libvtmdec.dll"; DestDir: "{app}\INSTALLVLCPLUGIN"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "INSTALLVLCPLUGIN\libvvcdecoder_plugin.dll"; DestDir: "{app}\INSTALLVLCPLUGIN"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "INSTALLVLCPLUGIN\libvvctsdemux_plugin.dll"; DestDir: "{app}\INSTALLVLCPLUGIN"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
||||
[Icons]
|
||||
Name: "{group}\VVCEasy"; Filename: "{app}\VVCEasy.bat"; WorkingDir: "{app}"; Comment: "Run VVCEasy"
|
||||
|
||||
[Run]
|
||||
Filename: "{app}\VVCEasy.bat"; Description: "Launch VVCEasy"; Flags: nowait postinstall skipifdoesntexist
|
@ -1 +1 @@
|
||||
"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8")+"//# sourceURL="+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+"\n");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var module=Module["wasmModule"];Module["wasmModule"]=null;var instance=new WebAssembly.Instance(module,info);return receiveInstance(instance)};self.onunhandledrejection=e=>{throw e.reason??e};function handleMessage(e){try{if(e.data.cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);self.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}CreateVVdeC(Module)}else if(e.data.cmd==="run"){Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["__emscripten_thread_mailbox_await"](e.data.pthread_ptr);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){Module["__embind_initialize_bindings"]();initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="checkMailbox"){if(initializedJS){Module["checkMailbox"]()}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}}self.onmessage=handleMessage;
|
||||
"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");var vm=require("vm");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:f=>vm.runInThisContext(fs.readFileSync(f,"utf8"),{filename:f}),postMessage:msg=>parentPort.postMessage(msg),performance:global.performance||{now:Date.now}})}var initializedJS=false;function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+"\n");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var module=Module["wasmModule"];Module["wasmModule"]=null;var instance=new WebAssembly.Instance(module,info);return receiveInstance(instance)};self.onunhandledrejection=e=>{throw e.reason||e};function handleMessage(e){try{if(e.data.cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);self.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler:handler,args:args})}}Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}CreateVVdeC(Module)}else if(e.data.cmd==="run"){Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["__emscripten_thread_mailbox_await"](e.data.pthread_ptr);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){Module["__embind_initialize_bindings"]();initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="checkMailbox"){if(initializedJS){Module["checkMailbox"]()}}else if(e.data.cmd){err(`worker.js received unknown command ${e.data.cmd}`);err(e.data)}}catch(ex){Module["__emscripten_thread_crashed"]?.();throw ex}}self.onmessage=handleMessage;
|
@ -1,11 +1,19 @@
|
||||
fb45cc3465bbd384a734d35a27f630f38af67f27dfa3c15b3ca0c4959d750a08 Win32/vvdecapp.exe
|
||||
540f620b99abf58f00a906780507a23d253427d6e82a18e5e168185bf59795ef Win32/vvencapp.exe
|
||||
628b9ab413649e0c1bccf41e01ededf2f2f5bdcc6d49b77ad0690a7611552008 Win32/vvencFFapp.exe
|
||||
8ad0418ff241e79d6d869b2d6f47c5c0c0df6481662bfef2613c5d68b18d4216 Win32/vvencinterfacetest.exe
|
||||
5546e77815e174872f6bd018de9fd5b446602b0486a45baec6fe343e81178164 Win32/vvenclibtest.exe
|
||||
485a991e966b72101bfc75a081307d914159a135563d1c79368444c0c2feeb2e WindowsVVC.7z
|
||||
c13fc2cfa36f57111f23803b8ab8de35aa227ceb860e62929ee9457745fc0595 x64/vvdecapp.exe
|
||||
e11d33a0a2b293f99b1095811f3f23806d7580e8a966c7eb69d4aaabb9ef0df2 x64/vvencapp.exe
|
||||
4a1b384c908aa3b4bf3dd603a8bdfcd1774aabb8a2b5cbac1826c57b634b0fa8 x64/vvencFFapp.exe
|
||||
f30ef7699ec311d081540c401ddd8d8dd0a7b0ddcc2f9bc25e7536855d2d392d x64/vvencinterfacetest.exe
|
||||
f612930ded7dacc59954c393ad56c0a7c5d1fe425921bf893ac60f0038a09b4e x64/vvenclibtest.exe
|
||||
5a010d98367043a54d46347699c675c58d6a0d3de970d304301dce072e8191d6 arm64/vvdecapp.exe
|
||||
e7e2d3e5106df424a834c11ea9e17f03b61741da733cb3230579343a9c85ed18 arm64/vvencapp.exe
|
||||
7cbdb38d6033769b4df7bd45260ff2eb31f16dc4faa64ab7f013f4971e3f0798 arm64/vvencFFapp.exe
|
||||
67f133a738d280fa6b6fb74ce7e6ef222378a76fdc0ab817c627e3abba76cb9e arm64/vvencinterfacetest.exe
|
||||
887ed59af896bd65753457b3fd9514a0651108610c57af459a103c45117127cc arm64/vvenclibtest.exe
|
||||
c30f625ac46eed0c9f709a0b488d902a6c34e41f8f182ef423e868e3cdb6922d arm64/vvenc_unit_test.exe
|
||||
06609da2dcb559aba42b955b06cf29bb5910281795f763edb22ef78b2c159d53 Win32/vvdecapp.exe
|
||||
9dbc9a81055cc01d50ecf3fc4d9a9b81476970a758b678144a263ceceec19084 Win32/vvencapp.exe
|
||||
27f2f9e381e6a8985ca26ba07aed280f691aa58057e61710e9e9eaba7b85323b Win32/vvencFFapp.exe
|
||||
6c99691b45eff0db775f945a0fc0be9e5995b6061101170ed08fee98360e02fd Win32/vvencinterfacetest.exe
|
||||
7b77e6b05718ca36ef74b712f8c9f96a2ed4be359d740b328ec0a4d42e4dcede Win32/vvenclibtest.exe
|
||||
bf70320b2b3242ce99744092de78d34961e456b854efdee2afecee470986c028 Win32/vvenc_unit_test.exe
|
||||
dc511432df88ed18ecfdf189b9cd9d7330c49e287f1222636255a7e0a72d0b91 WindowsVVC.7z
|
||||
b1261036d1b8d67b6de643fe9f07e72b4c1a08dd0ba226f16f422f8f0e14d709 x64/vvdecapp.exe
|
||||
728e16b7d73f306bc417363988b1cd7b968f3165e26e5a54cd2e1385324998c9 x64/vvencapp.exe
|
||||
b9bd702219b2592d4008feb5d68c7a940f0ffaea7ea21f74f6de404973296cf4 x64/vvencFFapp.exe
|
||||
fc994617ab146324004e35e40ff424a0f0f8bf4a79d9911ac89a21bae836b630 x64/vvencinterfacetest.exe
|
||||
b136035b86849138dc7c5d2665a3abda5e410e34b66b700cb3e9c53e49ccd6eb x64/vvenclibtest.exe
|
||||
3b4b2e66924b0581fc76e7fe91bd1c256d9a168bc5de06bf66cb8a0f428565d6 x64/vvenc_unit_test.exe
|
||||
|
@ -44,25 +44,25 @@ JSON:
|
||||
|
||||
# Bitmovin VVDec Player Downloads (including build instructions):
|
||||
|
||||
[Windows Pre-Builded](https://www.dropbox.com/s/75ouoeadcr2cl53/BitVVDecPlayerWIN.7z)
|
||||
[Windows Pre-Builded](https://www.dropbox.com/scl/fi/x4v1qb60u8zp505dtx8p6/BitVVDecPlayerWIN.7z?rlkey=gs9duytd6h1sos69o53rw8vyy)
|
||||
|
||||
[Mac OS Pre-Builded](https://www.dropbox.com/s/ilsoica7c8dh4hq/BitVVDecPlayerMAC.7z)
|
||||
|
||||
[Linux Pre-Builded](https://www.dropbox.com/s/bihm3pyh21lcvte/BitVVDecPlayerLINUX.7z)
|
||||
[Linux Pre-Builded](https://www.dropbox.com/scl/fi/9jgibpwxe52zkkjijycdc/BitVVDecPlayerLINUX.AppImage?rlkey=jrqxsnwuqltc1xj9fevk9xb1f)
|
||||
|
||||
Want to build VVDec (.dll (Windows)/.dylib (Mac OS)/.so (Linux)) yourself?
|
||||
|
||||
Here is a code:
|
||||
|
||||
```
|
||||
git clone https://github.com/fraunhoferhhi/vvdec.git
|
||||
git clone https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvdec
|
||||
mkdir build && cd build
|
||||
cmake -DBUILD_SHARED_LIBS=1 ..
|
||||
cmake --build . --config Release
|
||||
```
|
||||
|
||||
The build files might be vvdec/bin/release-shared
|
||||
The build files can be located at vvdec/bin/release-shared
|
||||
|
||||
Windows: vvdec.dll
|
||||
|
||||
@ -74,42 +74,38 @@ Linux: libvvdecLib.so
|
||||
|
||||
# System requirements
|
||||
|
||||
### Windows
|
||||
Operating System: Windows 7 / Windows Server 2012 and earlier versions
|
||||
This program requires architecture of x86_64/AMD64.
|
||||
|
||||
System type: x64
|
||||
### Windows
|
||||
Operating System: Windows 7 / Windows Server 2012 and later versions
|
||||
|
||||
Requirements to run program: Microsoft Visual C++ Redistributable 2015-2017-2019-2022 and vvdec.dll
|
||||
|
||||
Internet required to download segments for Bitmovin streams
|
||||
|
||||
Offline availability for segments
|
||||
Offline availability for local segments
|
||||
|
||||
---
|
||||
|
||||
### Mac OS
|
||||
Operating System: macOS 10.15 and earlier versions.
|
||||
|
||||
System type: x64
|
||||
Operating System: macOS 10.15 and later versions.
|
||||
|
||||
Requirements to run program: Qt framework (version 5) and libvvdec.dylib
|
||||
|
||||
Internet required to download segments for Bitmovin streams.
|
||||
|
||||
Offline availability for segments
|
||||
Offline availability for local segments
|
||||
|
||||
---
|
||||
|
||||
### Linux
|
||||
Operating System: Linux (Ubuntu 18.04 and earlier versions)
|
||||
|
||||
System type: x64
|
||||
Operating System: Linux 3.20+ (Ubuntu 12.04 LTS and later versions)
|
||||
|
||||
Requirements to run program: Qt framework (version 5), glib (build-essential) and libvvdecLib.so
|
||||
|
||||
Internet required to download segments for Bitmovin streams.
|
||||
|
||||
Offline availability for segments
|
||||
Offline availability for local segments
|
||||
|
||||
# Bitmovin VVDec Player (Test compatibility)
|
||||
|
135
docs-old/advanced.md
Normal file
@ -0,0 +1,135 @@
|
||||
# Without VVCEasy, experimental option for professional coders, other developers, and everyone (hard, deprecated)
|
||||
|
||||
You need 7-Zip (requires ffmpeg and ffplay), ffmpeg, ffplay, vvenc/vvdec(app).
|
||||
|
||||
Here are the links:
|
||||
FFMPEG/FFPLAY: https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z (go to bin folder and extract two files of ffmpeg and ffplay)
|
||||
VVENC/VVDEC (Windows, Mac and Linux):
|
||||
Windows: https://github.com/MartinEesmaa/VVCEasy/blob/master/WindowsVVC/WindowsVVC.7z
|
||||
Mac: https://github.com/MartinEesmaa/VVCEasy/tree/master/MacOSVVC/MacOSVVC.7z
|
||||
Linux: https://github.com/MartinEesmaa/VVCEasy/blob/master/LinuxVVC/LinuxVVC.7z
|
||||
|
||||
Before we start, you need to make path environments for ffmpeg, ffplay and vvenc/vvdec to make easily.
|
||||
In Command Prompt (Windows):
|
||||
|
||||
```
|
||||
set PATH=%PATH%;C:\Users\blah\Downloads\VVCEasy\Executables
|
||||
```
|
||||
Verify path using Windows Command Prompt/Windows Terminal (CMD):
|
||||
```
|
||||
path
|
||||
```
|
||||
|
||||
First:
|
||||
Transcode any video formats to YUV/Y4M
|
||||
|
||||
**We recommend that you use from video to yuv/y4m for pixel format YUV420P, because YUV420P is smaller size than YUV420P10.**
|
||||
|
||||
**VVENC only supports pixel formats of YUV420 (8-bit) and YUV420_10 (10-bit), otherwise it will corrupt after vvc encoding.**
|
||||
|
||||
For YUV transcode (lossy from web quality, YouTube videos and others):
|
||||
```
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p inputtranscode.yuv
|
||||
```
|
||||
|
||||
For Y4M transcode (lossless from uncompressed video files, only 8 bit):
|
||||
```
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p inputtranscode.y4m
|
||||
```
|
||||
|
||||
Verify uncompressed video using FFplay before encode to VVENC (important add video size after the input file, else it will not correctly show video like scrambled eggs video):
|
||||
```
|
||||
ffplay inputtranscode.yuv -video_size 1280x720
|
||||
```
|
||||
|
||||
Default pixel format of ffplay for yuv and y4m is yuv420p without `-pix_fmt` command.
|
||||
|
||||
For y4m, replace `-i inputtranscode.yuv` with `-i inputtranscode.y4m`. In `-c:v wrapped_avframe` for y4m only, so you can verify to play Y4M (wrapped_avframe) for VLC, FFplay or MPV player. For yuv420p10 on your input video 10 bits, add `-pix_fmt yuv420p10`.
|
||||
|
||||
Playing FFplay for y4m video with wrapped_avframe, you don't need to put anything commands, just simple play this:
|
||||
|
||||
```
|
||||
ffplay transcoded.y4m
|
||||
```
|
||||
|
||||
For easy to verify YUV/Y4M, use YUView, open your YUV or Y4M encoded, make sure video size, YUV/Y4M format and frame rate same like from input video file (e.g., MP4, AVI, MKV and others).
|
||||
|
||||
After verifying correctly of your YUV/Y4M video
|
||||
Encode with VVENC (Simple settings, example)
|
||||
```
|
||||
vvencapp -i out.yuv -s 854x480 -r 30 -o vvc.266
|
||||
```
|
||||
`-s` means video size, `-r` means frame per second and `-o` means output. Note: (Simple) as Default settings is YUV420P (8-bit)
|
||||
|
||||
TIP: You could do the alternative without taking much disk space for uncompressed video (Y4M, recommended):
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -pix_fmt yuv420p -f yuv4mpegpipe - | vvencapp --y4m -i - --preset medium --qp 35 -o converted.266
|
||||
```
|
||||
|
||||
**PRO TIP: VVENC can detect your fps and video size for y4m file format, so you don't need to insert video size and frame per second of vvenc.**
|
||||
|
||||
**WARNING of vvenc pipe: VVENC does not support two-pass mode only when using pipe call/read from FFmpeg to vvenc.**
|
||||
|
||||
Or you could do legacy of YUV pipe video:
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -pix_fmt yuv420p -f rawvideo - | vvencapp -i - -s 1920x1080 -r 25 --preset medium --qp 35 -o converted.266
|
||||
```
|
||||
|
||||
**WARNING: If you encode from yuv/y4m of your frame rate is 11.988, 14.985, 23.976, 29.970 or 59.940 FPS, replace this command -r by --fps.**
|
||||
|
||||
11.988 fps = `--fps 12000/1001`
|
||||
|
||||
14.985 fps = `--fps 15000/1001`
|
||||
|
||||
23.976 fps = `--fps 24000/1001`
|
||||
|
||||
29.970 fps = `--fps 30000/1001`
|
||||
|
||||
59.940 fps = `--fps 60000/1001`
|
||||
|
||||
The default of VVENC: Quantization Parameter is 32 and preset is medium.
|
||||
|
||||
If you want to get smaller video size and lossy video, add `--qp 38`. (For web video or anything)
|
||||
|
||||
If you want to get lossless video without losing quality (visually lossless, minimum loss quality), use QP 16-19 and preset slow (optional slower). (Recommended for movies, camera footage or anything)
|
||||
|
||||
Lossy video/Smallest video size:
|
||||
```
|
||||
vvencapp --qp 38 -i out.yuv -s 854x480 -r 30 -o vvc.266
|
||||
```
|
||||
|
||||
**NOTE 1: If you want to have true lossless on your video, please use H.264 Lossless video codec or VVC with vvencffapp command of CostMode Lossless**
|
||||
|
||||
**NOTE 1.1: In vvencffapp application, you can add command `--CostMode lossless`. Y4M accepts chroma subsampling 420 only, but YUV accepts 400, 420, 422 and 444.**
|
||||
|
||||
True lossless video of 8-bit and 10-bit 4:2:0:
|
||||
```
|
||||
vvencffapp -i test.y4m --CostMode lossless -qpa 1 -b test.266
|
||||
```
|
||||
|
||||
Visually lossless video (or compress smaller than preset slow, use --preset slower):
|
||||
```
|
||||
vvencapp --qp 18 -i out.yuv -s 854x480 -r 30 --preset slow -o vvc.266
|
||||
```
|
||||
|
||||
For Apple macOS and Linux terminal users: Command with `./vvencapp`
|
||||
|
||||
For Windows Users using Windows PowerShell: Command with `.\vvencapp`
|
||||
|
||||
Encode with VVENC (Best settings (visually lossless), replace video size (`-s`), frame rate (`-r`) and maximize threads of your cores (`--threads`), example) (Minimum loss quality) If you want true lossless video, use H.264 Lossless video codec or VVC with vvencffapp command of CostMode Lossless. (Necessary make smaller file (slower) than preset slow, use `--preset slower`)
|
||||
```
|
||||
vvencapp --qp 18 -i out.yuv -s 854x480 -r 30 --preset slow --threads 16 --tier high -o EXTREME.266
|
||||
```
|
||||
|
||||
NOTE: It is acceptable only for encoding to .h266, .266 and .vvc file container.
|
||||
|
||||
Note to 10-bit YUV users: If you encode YUV 10 bit to VVC file, add `-c yuv420_10` before you type the ending word of -o EXTREME.266.
|
||||
|
||||
Note to 8-bit Y4M users: It's only from input video (8-bit) to Y4M (8 bit)
|
||||
|
||||
After encoding VVC, you can play using my custom VVCEasy build of [FFmpeg](https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md), [VLC](https://github.com/MartinEesmaa/VVCEasy/tree/master/INSTALLVLCPLUGIN) or [MPV](https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md).
|
||||
Drag your video file of .h266, .266 or .vvc to play.
|
||||
|
||||
If you are still not happy about VVC (known as Versatile Video Coding), that you think is too hard to encode and decode, use AOMEDIA ONE (AV1) that is recommended for most users to easily play VLC Media Player and others. VVC should need played on VLC Media Player in future.
|
@ -41,6 +41,8 @@ Reminder: Some operating systems are working to load VVC video format in Virtual
|
||||
|
||||
If your operating system is working to decode VVC video format like you're running on Windows 10, please fork this repository, edit README and make pull request of my original repository from your forked repository. Screenshot must be required winver and VLC Media Player (custom build of o266player)
|
||||
|
||||
[Download Windows VLC 3.0.11.1 o266player version](https://www.dropbox.com/s/hs7yoa9hkxa6ugd/vlc-3.0.11.1-w64.7z)
|
||||
|
||||
UPDATE 13th December 2021: VLC Media Player (custom VLC build of o266player, 3.0.11.1 Vetenari, Windows 11) is tested by Martin Eesmaa. It can play only about 600 frames limit / 20+ seconds.
|
||||

|
||||
|
@ -1,97 +0,0 @@
|
||||
#!/bin/bash
|
||||
PREFIX=/usr/local
|
||||
echo Building FFmpeg VVCEasy Linux version...
|
||||
sudo apt update && sudo apt upgrade -y && \
|
||||
sudo apt install build-essential cmake nasm autoconf pkg-config \
|
||||
python3-setuptools ninja-build python3-pip libtool git wget xxd -y && \
|
||||
sudo pip3 install meson
|
||||
|
||||
if [ ! -d FFmpeg-FixVVC ]; then
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
else
|
||||
git -C FFmpeg-VVC pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvenc ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
else
|
||||
git -C vvenc pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvdec ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
else
|
||||
git -C vvdec pull
|
||||
fi
|
||||
|
||||
if [ ! -d fdk-aac ]; then
|
||||
git clone --depth=1 https://github.com/mstorsjo/fdk-aac
|
||||
else
|
||||
git -C fdk-aac pull
|
||||
fi
|
||||
|
||||
if [ ! -d SDL ]; then
|
||||
git clone --depth=1 https://github.com/libsdl-org/SDL
|
||||
else
|
||||
git -C SDL pull
|
||||
fi
|
||||
|
||||
if [ ! -d libxml2 ]; then
|
||||
git clone --depth=1 https://github.com/gnome/libxml2
|
||||
else
|
||||
git -C libxml2 pull
|
||||
fi
|
||||
|
||||
if [ ! -d opus ]; then
|
||||
git clone --depth=1 https://github.com/xiph/opus
|
||||
else
|
||||
git -C opus pull
|
||||
fi
|
||||
|
||||
if [ ! -d libjxl ]; then
|
||||
git clone --depth=1 https://github.com/libjxl/libjxl
|
||||
sed -i 's/-lm/-lm -lstdc++/g' libjxl/lib/jxl/libjxl.pc.in libjxl/lib/threads/libjxl_threads.pc.in
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
else
|
||||
git -C libjxl pull
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
fi
|
||||
|
||||
if [ ! -d dav1d ]; then
|
||||
git clone --depth=1 https://code.videolan.org/videolan/dav1d
|
||||
else
|
||||
git -C dav1d pull
|
||||
fi
|
||||
|
||||
if [ ! -d vmaf ]; then
|
||||
git clone --depth=1 https://github.com/netflix/vmaf
|
||||
else
|
||||
git -C vmaf pull
|
||||
fi
|
||||
|
||||
cd vvenc && sudo make install-release install-prefix=$PREFIX disable-lto=1 && \
|
||||
cd .. && \
|
||||
cd vvdec && sudo make install-release install-prefix=$PREFIX disable-lto=1 && \
|
||||
cd .. && \
|
||||
cd fdk-aac && autoreconf -if && ./configure --prefix=$PREFIX --enable-static --disable-shared && sudo make install -j $nproc && \
|
||||
cd .. && \
|
||||
cd libxml2 && autoreconf -if && ./configure --prefix=$PREFIX --enable-static --disable-shared && sudo make install -j $nproc && \
|
||||
cd .. && \
|
||||
cd opus && autoreconf -if && CFLAGS="-O2 -D_FORTIFY_SOURCE=0" LDFLAGS="-flto -s" ./configure --prefix=$PREFIX --enable-static --disable-shared && sudo make install -j $nproc && \
|
||||
cd .. && \
|
||||
mkdir libjxl/build && cd libjxl/build && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_PLUGINS=ON -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=ON -DJPEGXL_FORCE_SYSTEM_GTEST=ON -DCMAKE_INSTALL_PREFIX=$PREFIX .. -G Ninja && sudo ninja install && \
|
||||
cd ../../ && \
|
||||
mkdir vmaf/libvmaf/build && cd vmaf/libvmaf/build && CFLAGS="-msse2 -mfpmath=sse -mstackrealign" meson -Denable_docs=false -Ddefault_library=static -Denable_float=true -Dbuilt_in_models=true -Dprefix=$PREFIX .. && sudo ninja install && \
|
||||
cd ../../../ && \
|
||||
sudo sed -i 's/-lm/-lm -lstdc++/g' $PREFIX/lib/x86_64-linux-gnu/pkgconfig/libvmaf.pc && \
|
||||
cd SDL && mkdir build && cd build && cmake -DCMAKE_EXE_LINKER_FLAGS="-static" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .. && sudo make install -j $nproc && \
|
||||
cd ../../ && \
|
||||
mkdir dav1d/build && cd dav1d/build && meson -Denable_docs=false -Ddefault_library=static -Dprefix=$PREFIX .. && sudo ninja install && \
|
||||
cd ../../ && \
|
||||
cd FFmpeg-VVC && \
|
||||
./configure --enable-static --pkg-config-flags="--static" --extra-ldexeflags="-static" \
|
||||
--enable-libfdk-aac --enable-libvvenc --enable-libvvdec --enable-pic \
|
||||
--enable-libxml2 --enable-libopus --enable-libdav1d --enable-libjxl --enable-libvmaf --enable-sdl2 && \
|
||||
make -j
|
||||
echo You are ready to preview VVC, view VVC information or convert from VVC using ffmpeg, ffplay and ffprobe.
|
||||
echo - Martin Eesmaa
|
BIN
uvg266/BSD/uvg266-BSD.7z
Normal file
2
uvg266/BSD/uvg266-BSD.sha256
Normal file
@ -0,0 +1,2 @@
|
||||
649899cac63befbe3254dcf525fb93ab41cdd71ae536a64498c2002b9f337f72 uvg266
|
||||
ff4e88cebff2d77ca5d5ed8e1e612fe11ed504fc5c812f3eb32801ead3002981 uvg266-BSD.7z
|
BIN
uvg266/Linux/uvg266-Linux.7z
Normal file
5
uvg266/Linux/uvg266-Linux.sha256
Normal file
@ -0,0 +1,5 @@
|
||||
b9a59b2bd24742a07205f017acdbc7ac6ee8a2f60d1bae55f597134db59093d0 arm64/uvg266
|
||||
67a2ac41c5145f2b5a2d1c1e9f83c13219f3f64a2c9b58b15e54e2f79ff83cad armv7/uvg266
|
||||
c400d11d25ea9561cc6ac6857703f982c2abc128535cc0d8ade13d4af7894b6d uvg266-Linux.7z
|
||||
274d2281e0dcdd9161c4c774081a3fef2fe5b7c96a0ccfc8419d3896dd466c0f x64/uvg266
|
||||
d9ca36109551ac43bacba8a849c7e6949eed522f6ffd957b24d9f90c1680630c x86/uvg266
|
BIN
uvg266/Windows/uvg266-Windows.7z
Normal file
3
uvg266/Windows/uvg266-Windows.sha256
Normal file
@ -0,0 +1,3 @@
|
||||
eef3c3c2d671802ba87c730809394327153680c395f620971cfc2f718a736b52 uvg266-Windows.7z
|
||||
7a379633acf366581cffe6160fb6e15a87749b4122311fb1b29b2e21f8e33482 Win32/uvg266.exe
|
||||
4ea5ee7aed1a614562ce10e369b4453c96645216bf46bd44c1bb786352d03bfd x64/uvg266.exe
|
BIN
uvg266/macOS/uvg266-macOS.7z
Normal file
3
uvg266/macOS/uvg266-macOS.sha256
Normal file
@ -0,0 +1,3 @@
|
||||
50017ea31da559a9733d2c9d65bc54f1bcb8c50062396cf70c54a8e37dc7a39b arm64/uvg266
|
||||
bf9673dc65592aace76f2d3b35345041be4e33b4d8deed7f6f305f5c9277e2b9 intel_x64/uvg266
|
||||
4c0f0a3f98706c614e0bb2aa82542da1fc86d7c6b2b70bf92e14b8eabd022a9c uvg266-macOS.7z
|
@ -1,20 +0,0 @@
|
||||
#!/bin/bash
|
||||
echo Martin Eesmaa / VVC Compiler (vvenc and vvdec)
|
||||
echo We will check packages called: build-essential and cmake
|
||||
echo It will check, if the build-essential and cmake packages are installed or not.
|
||||
echo If it's already, it will update.
|
||||
echo If it's not installed, we will install automatically for you.
|
||||
echo.
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install build-essential cmake -y
|
||||
cd ~/Downloads
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvenc
|
||||
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-static" .. && make
|
||||
cd ../../
|
||||
cd vvdec
|
||||
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-static" .. && make
|
||||
cd ../../
|
||||
echo Please see the build files following starting with vvenc/bin/release-static
|
||||
pause
|
@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
echo Martin Eesmaa / VVC Compiler (vvenc and vvdec)
|
||||
echo Please make sure your Xcode is installed on your Applications.
|
||||
echo.
|
||||
cd ~/Downloads
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvenc
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
cmake --build . -j $nproc
|
||||
cd ../
|
||||
cd vvdec
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
cmake --build . -j $nproc
|
||||
cd ../
|
||||
echo Please see the build files following starting with bin/release-static
|
||||
pause
|
@ -1,93 +0,0 @@
|
||||
echo off
|
||||
pushd "%~dp0"
|
||||
cls
|
||||
|
||||
echo.
|
||||
echo :: Checking For Administrator Elevation...
|
||||
echo.
|
||||
timeout /t 1 /nobreak > NUL
|
||||
openfiles > NUL 2>&1
|
||||
if %errorlevel%==0 (
|
||||
echo Elevation found! Proceeding...
|
||||
) else (
|
||||
echo :: You are NOT running as Administrator
|
||||
echo.
|
||||
echo Right-click and select ^'Run as Administrator^' and try again.
|
||||
echo Press any key to exit...
|
||||
pause > NUL
|
||||
exit
|
||||
)
|
||||
|
||||
goto main123
|
||||
|
||||
:main123
|
||||
title VVENC AND VVDEC (Build for Windows) (Script by Martin Eesmaa)
|
||||
cls
|
||||
echo Do you want build of vvenc and vvdec yourself on your computer?
|
||||
echo Before you agree to build for Windows, you need Cmake and Visual Studio on your computer.
|
||||
echo Requires build to Windows VVC by Cmake 3.13.0+ (need pathed environment) and Visual Studio 2017 and later (requires Desktop C++ and only one individual component ML.NET Model Builder).
|
||||
echo Requires download VVEnc and VVDec for (Git for Windows).
|
||||
echo Yes means build. No means will exit the program.
|
||||
echo Y/N?
|
||||
set /p main1234= Answer:
|
||||
if %main1234% == Y goto installmain123
|
||||
if %main1234% == y goto installmain123
|
||||
if %main1234% == N goto exit
|
||||
if %main1234% == n goto exit
|
||||
|
||||
:installmain123
|
||||
title Building time...
|
||||
echo Building time...
|
||||
mkdir Windows && cd Windows
|
||||
echo Download VVENC and VVDEC from Fraunhoferhhi GitHub...
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvenc
|
||||
mkdir build && cd build
|
||||
cmake ..
|
||||
cmake --build . --config Release
|
||||
cd ../bin/release-static
|
||||
explorer .
|
||||
cd ../../../
|
||||
cd vvdec
|
||||
mkdir build && cd build
|
||||
cmake ..
|
||||
cmake --build . --config Release
|
||||
cd ..\bin\release-static
|
||||
explorer .
|
||||
cd ../../../../
|
||||
goto successnow
|
||||
|
||||
:successnow
|
||||
echo.
|
||||
echo.
|
||||
echo.
|
||||
echo Successfully build of vvenc and vvdec on your Windows.
|
||||
echo Do you want delete source of VVENC and VVDEC files? Y/N?
|
||||
echo.
|
||||
echo WARNING!!!: YOU HAVE TO COPY EXECUTABLE FILES BEFORE YOU DELETE SOURCE FILES
|
||||
echo BUG: The syntax of the command is incorrect for unknown error.
|
||||
echo To see .EXE files, go to Windows/vvenc/bin/release-static in Windows Explorer.
|
||||
set /p installmain1234= Answer:
|
||||
if %installmain1234% == Y goto deletesourcefiles
|
||||
if %installmain1234% == y goto deletesourcefiles
|
||||
if %installmain1234% == N goto otherwisenow
|
||||
if %installmain1234% == n goto otherwisenow
|
||||
|
||||
:deletesourcefiles
|
||||
title Cleaning up source files on VVENC and VVDEC on your computer...
|
||||
echo Cleaning up source files on VVENC and VVDEC on your computer...
|
||||
cd ../
|
||||
rmdir /s Windows
|
||||
goto otherwisenow
|
||||
|
||||
:otherwisenow
|
||||
title Thank you for enjoying my script... (Martin Eesmaa)
|
||||
echo Thank you for enjoying my script... (Martin Eesmaa)
|
||||
echo Make sure go to Martin Eesmaa's GitHub: https://github.com/MartinEesmaa
|
||||
echo Exiting...
|
||||
timeout 3
|
||||
exit
|
||||
|
||||
:exit
|
||||
exit
|