Compare commits

..

No commits in common. "master" and "v.0.9.0" have entirely different histories.

75 changed files with 2189 additions and 2025 deletions

View File

@ -1,38 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

View File

@ -1,20 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@ -2,11 +2,9 @@ name: .NET
on:
push:
paths:
- 'Program.cs'
branches: [ master ]
pull_request:
paths:
- 'Program.cs'
branches: [ master ]
jobs:
build:

22
.gitignore vendored
View File

@ -1,22 +0,0 @@
WindowsVVC/Win32
WindowsVVC/x64
MacOSVVC/arm64
MacOSVVC/intel_x64
LinuxVVC/arm*
LinuxVVC/x*
Android/arm*
Android/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/
.vscode

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -3,16 +3,15 @@
License for use and distribution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7-Zip Copyright (C) 1999-2024 Igor Pavlov.
7-Zip Copyright (C) 1999-2021 Igor Pavlov.
The licenses for files are:
- 7z.dll:
1) 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
- The "BSD 2-clause License" for some code
- All other files: the "GNU LGPL".
2) All other files: the "GNU LGPL".
Redistributions in binary form must reproduce related license information from this file.
@ -21,8 +20,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
@ -40,107 +39,52 @@ GNU LGPL information
BSD 3-clause License in 7-Zip code
----------------------------------
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".
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":
Copyright (c) 2015-2016, Apple Inc. All rights reserved.
Copyright (c) Facebook, Inc. All rights reserved.
Copyright (c) 2023-2024 Igor Pavlov.
----
Copyright (c) 2015-2016, Apple Inc. All rights reserved.
Text of the "BSD 3-clause License"
----------------------------------
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
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.
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.
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.
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.
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.
---
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.
----
BSD 2-clause License in 7-Zip code
----------------------------------
unRAR license restriction
-------------------------
The "BSD 2-clause License" is used for the XXH64 code in 7-Zip.
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.
XXH64 code in 7-Zip was derived from the original XXH64 code developed by Yann Collet.
The license for original unRAR code has the following restriction:
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.
---
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.
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.
--
--
Igor Pavlov

View File

@ -1,18 +1,18 @@
7-Zip 24.07
7-Zip 21.07
-----------
7-Zip is a file archiver for Windows.
7-Zip Copyright (C) 1999-2024 Igor Pavlov.
7-Zip Copyright (C) 1999-2021 Igor Pavlov.
The main features of 7-Zip:
- High compression ratio in the new 7z format
- Supported formats:
- 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,
- Unpacking only: 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, Z and ZSTD.
RPM, SquashFS, UDF, UEFI, VDI, VHD, VHDX, VMDK, XAR and Z.
- Fast compression and decompression
- Self-extracting capability for 7z format
- Strong AES-256 encryption in 7z and ZIP formats

Binary file not shown.

View File

@ -1,5 +0,0 @@
78ea2486ff2f9617efea795b4284e18459859cc2f55664c603763ccfc64a6ffc AndroidUVG266-8bit.7z
9622277523b808aef088b7d99019835e8bd438fdd1e99baaea4c500b6f34da89 arm64/uvg266
4cfac9aa8129e7b320f5b4a57b7333bfe2023092d8dd7952014980756b65a1e3 armeabi/uvg266
292a3f5c021b004ff2eeeb738a934b90b18167ece3c784c73df6eb932f1f4b04 x86/uvg266
95840d9c7b572fcd436362c6e6f23fd1357dfc3aeb3218e2abb8e6b604415237 x86_64/uvg266

Binary file not shown.

View File

@ -1,5 +0,0 @@
790e6c86aa438c431be701fc2123776c4e3aaa76c3fd24cb27e730424920fa74 AndroidUVG266.7z
f1e92520d4b47e0d06ef532a07b17ce370011a9e696281dc43636132fe0d5abb arm64/uvg266
115adf7ec8614ccc87689805807496fd396ca4b445ea77041cf568816d5e2a7a armeabi/uvg266
3268c6d40029b6aaf60c1d4e08778ccf416baa9c25aea2e2ed9ed2724c324e84 x86/uvg266
3270046d3dc08addbccce4bd558358234366e4111c7cc7ca69dfcbbf37455960 x86_64/uvg266

Binary file not shown.

View File

@ -1,21 +0,0 @@
1499ca8a85459672056b429632657ef496367b367a8920cb70511d4f457aa459 AndroidVVC.7z
582888861f3b6d39ec9b051cb183981800121e2a7e4896a15b61c348eb82aa7e arm64/vvdecapp
721e349cd78054f69dbf5d24352d7686e30656c8ed74c2fcfe249ee4ce2a7c66 arm64/vvencapp
11862ff78eab8194e3fb89d1397c63983649df4e719fecb80922001c6111b236 arm64/vvencFFapp
ac86cf8b2130af0886870d33ece962990038f55abce4c4e6079b1997df14b5d7 arm64/vvencinterfacetest
d4eb8e300e45b0c13281da8639b173481b4511d860cba231c7e98a0a116335c7 arm64/vvenclibtest
17a551b4b008ba3f20c4f58fccf7e12752900510eb55f0ab13c3ac1d5d6b59ef armeabi/vvdecapp
6a38a600f23bc3a92f35f7245cac505cbcc8508cc09631f62223991adf034088 armeabi/vvencapp
3634a0b142a8fb5431b580c9f1f1f50ef01f49ec087bed07afd4267b0bb6e516 armeabi/vvencFFapp
30e2a6b6a261626b69248ba3016975e2db4cfc9c7798bc55b4e0ffe71970af45 armeabi/vvencinterfacetest
74d11d4a26d7618ab7ed5e5ec23ed95cf2b127f0e86f8ac588b929a909b52da6 armeabi/vvenclibtest
4e76b6054d4b1a00ae54a6df7b181b62d35da37b50ff6df12301b5671442e62f x86/vvdecapp
9b4f41b86485a925d750fc4547d3502f19108dae3be86b622cfeb38dacbcea85 x86/vvencapp
08fb2ebce03e41b9ee581d018777f3737d44d1e1b3091b339da5d842723d75ad x86/vvencFFapp
3f7d9f8f4e2a895aa051148219d53b414819a02d47f831edffebc500541a8d0a x86/vvencinterfacetest
4d69d3ca6c2fbf123fcbbd2777f00c0efbe8c897a3b524de7ac8baca16cedaab x86/vvenclibtest
341bd9e2bfd83834269e3e981edc9b0c8f5c9a7e971d1a0e2f556a2a128dce83 x86_64/vvdecapp
fcf33e357ba81e291beb2fdc75572fc7c8d8317da7496098677a882f66d27fb9 x86_64/vvencapp
46bf34738378907b4d46b6c8cea706af66c5d1e2dec43464798aa08f1dc5ae2b x86_64/vvencFFapp
207d90a9c2f187d5a2bbc0103274b8f96b4e31f87e620282d8111afb2d1c99a3 x86_64/vvencinterfacetest
7bd40dbecef0de45fa83b996c9a89e4513e4d8e129c33bab2095c4666b1cccf6 x86_64/vvenclibtest

View File

@ -1,59 +0,0 @@
# Android vvdec/uvg266 applications (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:
![termuxvvdecappinandroid](https://user-images.githubusercontent.com/88035011/176990694-52279bf1-86fd-419e-a2b7-1b6d1038ac18.jpg)
All system types of arm64, armeabi, x86 and x86_64 is built on vvdecapp & uvg266, it is use of Termux app.
arm64 - API 21 (64-bit phones only)
armeabi - API 19 (32-bit phones)
x86 - API 19 (32-bit tablets only)
x86_64 - API 21 (64-bit tablets only)
TIP: You can install my built applications:
```
chmod +x vvdecapp uvg266 vvencapp
cp vvencapp vvdecapp uvg266 $PREFIX/bin
```
### vvencapp encoder (Fraunhofer HHI)
Screenshot (tested my phone):
![vvencapptermux](vvencapptermux.png)
Please note, that supports 64-bit programs only.
### uvg266 encoder (Scalable video encoder)
Screenshot:
![termuxuvg266inandroid](https://user-images.githubusercontent.com/88035011/190282518-13c6dfd1-41a4-4a9b-aefe-de9e43c26759.jpg)
Before you download, there were two separated programs:
AndroidUVG266.7z - 10-bit input/encoder only.
AndroidUVG266-8bit.7z - 8-bit input/encoder only.
If you want pipe from FFmpeg to uvg266, you can do command:
```
ffmpeg -i example.mp4 -f yuv4mpegpipe -pix_fmt yuv420p10 -strict -1 - | uvg266 -i - --input-file-format y4m --input-bitdepth 10 -o converted.266
```
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.
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.
- Martin Eesmaa

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

View File

@ -1,6 +0,0 @@
f9d2fda5ef1622d20b7114b3bbe0d57ce2bf8ba523eb72cf2684f815d391d049 BSDVVC.7z
67e75a960072c6f35ece3e218dea7686d4ca07e27acd110025c1e458c0bfb32a vvdecapp
91bc16d780f15c4b6f1ee8e5a22c7981a6897f82612f71484234ac8afcef078e vvencapp
f1c3652d10f0eb00cf719137323cd543caedfef7d7b50728111becd067621f7a vvencFFapp
ae7e008495b5314e199a61dddf0797cc27979c25e271c074a594bc6dce9f44c3 vvencinterfacetest
02483e2cacdeb409325ed768fa512f82565c4db2c2d31b3c0fbabec60cf7f687 vvenclibtest

View File

@ -2,9 +2,9 @@
# Bitmovin VVDec Player (instructions of encode segments)
If you want to put your VVC file into Bitmovin VvDec Player, we need add `--segment`, `-f` as frames and `-fs` as frame skip into vvencapp.
If you want put your vvc file into Bitmovin VvDec Player, we need add `--segment`, `-f` as frames and `-fs` as frameskip into vvencapp.
Otherwise, if you put VVC file (which is all together of one file) without segments, your application might freeze your computer and application too.
Otherwise, if you put vvc file (which is all together of one file) without segments, your application might freeze your computer and application too.
To make probably decoded well for segments, here is an example of this:
@ -19,7 +19,7 @@ Middle segment (mid) will be during from video, 1 sec -> 2 sec. (segment-1.vvc)
Last segment (last) will be ending from video, 2 sec -> 3 sec. (segment-2.vvc)
Total is three seconds and three segments. Example of my segments, including log:
Total is three seconds and three segments. Still not understand? Example of my segments, including log:
[Log file](https://pastebin.com/qrCyfDEU)
@ -42,6 +42,7 @@ JSON:
}
```
# Bitmovin VVDec Player Downloads (including build instructions):
[Windows Pre-Builded](https://www.dropbox.com/s/75ouoeadcr2cl53/BitVVDecPlayerWIN.7z)
@ -50,9 +51,9 @@ JSON:
[Linux Pre-Builded](https://www.dropbox.com/s/bihm3pyh21lcvte/BitVVDecPlayerLINUX.7z)
Want to build VVDec (.dll (Windows)/.dylib (Mac OS)/.so (Linux)) yourself?
Wanna build VVDec (.dll (Windows)/.dylib (Mac OS)/.so (Linux)) yourself?
Here is a code:
Here is an code:
```
git clone https://github.com/fraunhoferhhi/vvdec.git
@ -94,7 +95,7 @@ System type: x64
Requirements to run program: Qt framework (version 5) and libvvdec.dylib
Internet required to download segments for Bitmovin streams.
Internet required to download segments for Bitmovin streams
Offline availability for segments
@ -107,11 +108,11 @@ System type: x64
Requirements to run program: Qt framework (version 5), glib (build-essential) and libvvdecLib.so
Internet required to download segments for Bitmovin streams.
Internet required to download segments for Bitmovin streams
Offline availability for segments
# Bitmovin VVDec Player (Test compatibility)
# Bitmovin VVDec Player (Test compatability)
### Windows 7+:
@ -125,6 +126,6 @@ Offline availability for segments
![LinuxBITVVCTest](https://user-images.githubusercontent.com/88035011/158130385-0f475e1f-9630-4623-acc4-6b0c842b6a35.gif)
-------------------------
Tests will be coming sooner.
Tests will be come soon later.
- Martin Eesmaa

121
CHANGELOG
View File

@ -1,121 +0,0 @@
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

View File

@ -1,5 +0,0 @@
Contributors are welcome to make pull request of Martin Eesmaa's VVCEasy repository.
If you would like to make pull request, be sure to read my Code Of Conduct (COC).
- Martin Eesmaa

View File

@ -1,168 +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 wget $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-VVC ]; 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 -b SDL2
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 zimg ]; then
git clone --depth=1 https://github.com/sekrit-twc/zimg
git -C zimg submodule update --init --recursive --depth 1
wget 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 0001-libm_wrapper-define-__CRT__NO_INLINE-before-math.h.patch
rm 0001-libm_wrapper-define-__CRT__NO_INLINE-before-math.h.patch
else
git -C zimg pull
git -C zimg submodule update --init --recursive --depth 1
fi
if [ ! -d soxr ]; then
git clone --depth=1 https://github.com/chirlu/soxr
else
git -C soxr pull
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 --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 zimg:
cd zimg && autoreconf -if && ./configure --disable-shared --prefix=$MSYSTEM_PREFIX && make install -j $nproc
cd ..
echo Starting to build soxr:
mkdir soxr/build && cd soxr/build && cmake -D{WITH_LSR_BINDINGS,BUILD_TESTS,WITH_OPENMP}=off -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -Wno-dev .. -G "MinGW Makefiles"
cmake --build . -j $nproc --target 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-gpl --enable-version3 --enable-nonfree --enable-libfdk-aac --enable-static --enable-libvvenc --enable-libvvdec --enable-pic \
--enable-zlib --enable-libxml2 --enable-libdav1d --enable-libopus --enable-libcodec2 --enable-libjxl --enable-libzimg \
--enable-libvmaf --enable-libsoxr --extra-ldexeflags=-static --pkg-config-flags=-static --disable-w32threads --enable-sdl2 --extra-version=VVCEasy && \
make -j
echo FFmpeg VVC version tools are now compiled, please see buildffmpegwin/FFmpeg folder.

View File

@ -1,317 +1,82 @@
# FFmpeg VVC En/decoder & xHE-AAC installation (Windows, Mac OS and Linux)
# FFmpeg VVC decoder installation (Windows, Mac OS and Linux)
Windows, Mac and Linux (Preview of VVC video in FFplay):
Windows, Mac and Linux (Preview of vvc video in ffplay):
![ffmpegplaypreview](Screenshots/windows-ffplay_vvceasy.png)
![ffmpegplaypreview](https://user-images.githubusercontent.com/88035011/169019033-bcb7fcc7-a196-4436-a396-61db3071280c.png)
![macos_vvceasy_ff](https://user-images.githubusercontent.com/88035011/169693891-52271091-eb92-4198-82eb-2ad38296a917.png)
![linux_vvceasy_ff](Screenshots/linux-ffplay_vvceasy.png)
![linux_vvceasy_ff](https://user-images.githubusercontent.com/88035011/169693886-3f8e97da-ad57-46ab-b3eb-45e5ff4e687d.png)
# Play video file
# Limitations of FFmpeg VVC decoder
You can play VVC video codec with .h266, .vvc, .266 and anything or .mp4 mixed with VVC codec:
For Windows, Mac OS and Linux for preview without converting, you can do sample this, including audio support:
```
ffplay_vvceasy versatile.266
ffmpeg_g -i example.266 -i example.opus -vcodec libx264 -acodec libopus -af adelay=1000 -f matroska - | ffplay_g -
```
Or if you have xHE-AAC audio codec:
Or you can play vvc with audio support:
```
ffplay_vvceasy -codec:a libfdk_aac -i versatile.m4a
ffplay_g -i convertedvvc.mp4
```
# 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.
Now 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.
# Limitations of FFmpeg VVC encoder
Before encode to VVC video codec, see the limitations below.
libvvenc (FFmpeg vvc version) works for:
- Pixel format ⚠️ (only pixel format 10 bit is default, but you can still encode 8 bit by using `-bitdepth8 1`)
- 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:
```
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:
```
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:
```
ffmpeg -c:a libfdk_aac -i mymusic.m4a -c:a aac -b:a 128k mymusic.aac
```
Replace video size for `-s` and frame rate for `-r`.
### Update 21th May 2022 of FFmpeg vvdec support
Good news, you can play .mp4 file after .h266 and audio format were merged into mp4 playable of VVC.
About [xHE-AAC](https://www.iis.fraunhofer.de/en/ff/amm/broadcast-streaming/xheaac.html), now it's available decode support xHE-AAC of FFmpeg. [Exhale](https://gitlab.com/ecodis/exhale) (encoder) is free to use and open source, but if you want Fraunhofer IIS xHE-AAC, you can download [EZ CD Audio Converter](https://www.poikosoft.com/music-converter) for Windows only. You can also merge your encoded xHE-AAC audio into mp4 too.
About [xHE-AAC](https://www.iis.fraunhofer.de/en/ff/amm/broadcast-streaming/xheaac.html), there is no decode support of FFmpeg, the reason is a license fee, but except [Exhale](https://gitlab.com/ecodis/exhale) (encoder) is free to use and open source. However, you can also merge encoded xHE-AAC audio into mp4 too.
To make playable mp4 with audio and video together, you need VVC video encoded, audio file and [GPAC Nightly build](https://gpac.wp.imt.fr/downloads/gpac-nightly-builds/). Code for mp4box/gpac to merge VVC video encoded and audio file:
To make playable mp4 with audio and video together, you need VVC video encoded, audio file and [GPAC Nightly build](https://gpac.wp.imt.fr/downloads/gpac-nightly-builds/). Code for mp4box/gpac:
```
mp4box -add video.266 -add audio.m4a -new convertedvvc.mp4
mp4box -no-probe -add video.266 -add audio.opus -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**
# FFmpeg Downloads (xHE-AAC & VVC en/decoder plugin compiled by Martin Eesmaa)
# FFmpeg Downloads (VVC decoder plugin compiled by Martin Eesmaa)
[Windows x64](https://mega.nz/file/Whc0zRbb#U0oXKGw0B_XA7U_sJWaeKi9esn0ANAlJJwIClvLAtEQ)
[Windows](https://mega.nz/file/e1MEUAwR#c7u7vDvwzp6JiSaRDwhCyOaH4cGnx1xQDPyKgbAd-qM)
[Mac OS x86_64](https://mega.nz/file/rt1HXSSa#dPlwnwrWyVtE65TPFDYye-tiLK8hyBfwjMYsa8tZaqw)
[Mac OS](https://mega.nz/file/mxNTQTLb#1ifvaXap_a_cHLCIWZ-K5B0oKXvdHjgUc3Nb-YHFIio)
[Mac OS arm64](https://mega.nz/file/at1GyYAB#GElGLtjR7pbHEmrQHCVKEqYXw8VAgszDGwZj8HaP2SY)
[Linux](https://mega.nz/file/T8l0GTqa#oWsDDrFYjzf3LhS9zRkuqqBz6H4yJmNQUNiu_erVQLo) (Only Ubuntu 20.04 build)
[Linux x64](https://mega.nz/file/S9EzybSA#m2aoEfghjSyQ2f8vgUM2OlzL2IJ41KRR373bqDeAnvU)
# Linux downloaders (Important note)
[Linux Arm64](https://mega.nz/file/m8FkiARB#oiFdFmCSCvOOIPGuz3KTjEzuwnCAB7vLA3N_oXcJ8Tc)
Unfortunately, this is Ubuntu 20.04 LTS built only.
[FFmpeg-FixVVC archived old source code](https://mega.nz/file/G81QyT5S#jcbE1sYPEy1OMIDPCF8BPeAK-3KAGF50u23MVJzmBgw) (old)
### Note about downloads
Also, please check changelog before you download the new version.
### Changelog
```
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.
01/05/2023: Added missing libvmaf feature in FFmpeg VVCEasy only.
19/04/2023: Updated of vvenc, vvdec, FFmpeg commits and others.
03/04/2023: New FFmpeg master latest VVCEasy builds with updated vvenc, vvdec and added libvmaf & libjxl. Removed AC4 for compilation/decoder errors for new AC4 audio files.
03/02/2023: Updated vvenc library on Windows FFmpeg VVCEasy build.
02/02/2023: Updated vvenc library and others on Windows FFmpeg VVCEasy build.
29/01/2023: Updated vvenc, vvdec and other libraries on Windows FFmpeg VVCEasy build.
10/01/2023: Updated vvenc latest and others.
05/01/2023: Update Linux FFmpeg static builds (still does not work for FFplay static only, others working fine)
30/12/2022: Improved vvenc codes of FFmpeg VVCEasy, thanks Thomas Siedel from Spin Digital! TIP: Type "ffmpeg_vvceasy -h encoder=libvvenc" for FFmpeg vvenc available. See the new vvenc patch: https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=7922
23/12/2022: Update all libraries, fix MP4-ALS mono audio & added libcodec2 to FFmpeg.
07/12/2022: Update vvenc, vvdec and others. Fixed Windows N version. (#22)
20/10/2022: Add Linux static binaries of FFmpeg, but only FFplay does not work only.
11/10/2022: Removed libvorbis + updated SDL2 latest.
10/10/2022: Revert from flt to s16 for two decoders of libvorbis & libspeex.
10/10/2022: Removed libvmaf (reason: not working), added libvorbis + libspeex improve decode quality.
30/09/2022: Improved vmaf (float, built models to FFmpeg) & updated sdl2. Update: Fixed libvmaf models
24/09/2022: Improved libvmaf up to date of FFmpeg code + update dav1d & vvenc.
07/09/2022: Added Dolby AC4 decoder + updated vvenc/vvdec.
01/09/2022: Added libopus with latest version for improve decode quality, libdav1d and libvmaf (optional if they want calculate score by vvc video and original video).
29/08/2022: Brought back vvenc.
```
# Mac OS downloaders (Important note)
Please note, this is not a malware of my compiled build, see the three screenshots to make run FFmpeg tools customized version
You need to allow the app on your Mac OS for chmod write access & Security & Privacy:
Step 1: Click cancel button, do not move to bin.
![Kuvatõmmis 2022-06-18 103427](https://user-images.githubusercontent.com/88035011/174431074-10a867d3-787a-47aa-9910-53fcef89e30e.png)
Step 2: Go to Security & Privacy on Mac OS Settings app, then check App Store & identified developers or anywhere is on. Click "Allow anyway" to unblock an application.
![Kuvatõmmis 2022-06-18 103518](https://user-images.githubusercontent.com/88035011/174431083-1d1d9b2b-5b45-425e-86d1-015e44588b4e.png)
Step 3: Click "Open" button, this does not hurt your computer.
![Kuvatõmmis 2022-06-18 103557](https://user-images.githubusercontent.com/88035011/174431086-9eb0df35-2fde-4ca7-99d4-2efa45a0a946.png)
### Build Mac OS for FFmpeg VVC build
Requirements:
Xcode
CMake
NASM
Homebrew
Code to build FFmpeg VVC version:
Before you use FFmpeg, make sure you install all these requirements:
```
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
cd ../../
cd vvdec && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
sudo cmake --build . --target install -j $nproc
cd ../../
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
sudo apt install libxml2 libx264-dev libx265-dev libnuma-dev libxml2 libopus-dev
```
If you are using other linux without Ubuntu 20.04 LTS, you have to build using:
```
sudo apt install build-essential cmake libx264-dev libx265-dev libnuma-dev libxml2 libopus-dev nasm && \
git clone https://github.com/fraunhoferhhi/vvdec.git && cd vvdec \
make release && make install install-prefix=/usr/local && \
cd .. && git clone https://github.com/lehmann-c/FFmpeg.git && cd FFmpeg && \
./configure --enable-gpl \
--enable-version3 \
--enable-libvvdec \
--enable-pic \
--enable-libxml2 \
--enable-libx264 \
--enable-libx265 \
--enable-libopus &&
make -j
```
# Linux builders (Important for FFplay) (old)
You can build using [Linux script](libvvdecffmpeg.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.
If compiling is success and finished, you can install FFmpeg VVC for using the code:
If compiled is success and finished, you can install FFmpeg, using the code:
```
mv ffmpeg ffmpeg_vvceasy
mv ffplay ffplay_vvceasy
mv ffprobe ffprobe_vvceasy
sudo cp ffmpeg_vvceasy ffplay_vvceasy ffprobe_vvceasy /usr/local/bin
make install
```
# Compile FFmpeg-Builds for Windows & Linux
If you want to compile your own 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.
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.
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 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:
@ -320,16 +85,6 @@ Original author: [@FFmpeg](https://github.com/FFmpeg) Repository: https://github
[@lehmann-c](https://github.com/lehmann-c) (Christian Lehmann) Repository: https://github.com/lehmann-c/FFmpeg
[@tbiat](https://github.com/tbiat) (Thibaud Biatek) Repository: https://github.com/tbiat/FFmpeg
VVC encoder programmer to FFmpeg: [@IsaMorphic](https://github.com/IsaMorphic) (Isabelle Santin) Repository: https://github.com/IsaMorphic/FFmpeg-VVC
[@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, 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
[@tbiat](https://github.com/tbiat) Repository: https://github.com/tbiat/FFmpeg
- Martin Eesmaa

View File

@ -1,7 +1,5 @@
![vlc-media-player-2-569258-4168599479](https://user-images.githubusercontent.com/88035011/175112324-06a64145-ff1a-43f0-adac-a1aeb9ce770a.png)
# 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 or below than version 3 won't work.
This can work only for VLC 3.0.9.2 and later version (eg. 3.0.17.4). VLC 4.0.0-dev 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.
@ -17,139 +15,23 @@ Step 3: Enjoy and play your h266 file into your VLC Media Player :).
### For Linux users
Open terminal and copy code:
Open terminal, type `sudo su` to gain root access, copy code:
```
sudo cp libvvcdecoder_plugin.so libvtmdec.so /lib/x86_64-linux-gnu/vlc/plugins/codec
sudo cp libvctsdemux_plugin.so /lib/x86_64-linux-gnu/vlc/plugins/demux
cp libvvcdecoder_plugin.so /lib/x86_64-linux-gnu/vlc/plugins/codec
cp libvtmdec.so /lib/x86_64-linux-gnu/vlc/plugins/codec
cp libvctsdemux_plugin.so /lib/x86_64-linux-gnu/vlc/plugins/demux
```
VLC from Snap Store:
```
sudo cp libvvcdecoder_plugin.so libvtmdec.so /snap/vlc/2344/usr/lib/vlc/plugins/codec
sudo cp libvctsdemux_plugin.so /snap/vlc/2344/usr/lib/vlc/plugins/demux
cp libvvcdecoder_plugin.so /snap/vlc/2344/usr/lib/vlc/plugins/codec
cp libvtmdec.so /snap/vlc/2344/usr/lib/vlc/plugins/codec
cp libvctsdemux_plugin.so /snap/vlc/2344/usr/lib/vlc/plugins/demux
```
Preview:
![preview](vvceasylinuxvlc.png)
# Build VLC InterDigital Plugin
Explanation of CMAKE names:
VLC_INCLUDE_DIR = Includes of VLC SDK Plugins
VLC_LIB_DIR = Libs of VLC SDK
VLC_PROGRAM_DIR = VLC Program directory
VTMDEC_LIB_NAME = Name title of libvtmdec
VTM_DIR = libvtmdec source files
VLC_SRC_DIR = VLC Source files of the desktop version
DVBPSI_DIR = DVBPSI source files
### Windows
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.
![vscodethelinecommentvlcthreads](https://user-images.githubusercontent.com/88035011/175109219-6ea70dc4-b696-4045-a071-ef1306bc9634.png)
Build Decoder Plugin, see screenshot of CMAKE GUI:
![decoderplugin](https://user-images.githubusercontent.com/88035011/175105846-646ab744-ef1f-45b3-a084-a2f7ad3464a2.png)
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:
![tsdemuxplugin](https://user-images.githubusercontent.com/88035011/175105943-1f9e41ad-2f20-451c-9123-f163252c7106.png)
### Linux
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.
![vscodethelinecommentvlcthreads](https://user-images.githubusercontent.com/88035011/175109219-6ea70dc4-b696-4045-a071-ef1306bc9634.png)
libvtmdec build:
Compiled file could be found in lib folder in libvtmdec.
```
mkdir build && cd build
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:
```
./bootstrap
./configure --enable-release
make -j
sudo make install
```
Build Decoder Plugin, see screenshot of CMAKE GUI:
![decoderpluginlinux](https://user-images.githubusercontent.com/88035011/175110060-ee1cf4e3-de96-478b-9bb6-6e7d0e11a2bd.png)
Build TS Demuxer Plugin, see screenshot of CMAKE GUI:
![tsdemuxpluginlinux](https://user-images.githubusercontent.com/88035011/175110701-d9a87f9f-ab25-40b9-b070-9e53a712b372.png)
Original documentation must be in the original repository: https://github.com/InterDigitalInc/VTMDecoder_VLCPlugin
### Alternative using command line of Windows
Open Windows Terminal/Windows Command Prompt, make sure you do cd of C:/Users/(put your username)/Downloads/VVCEasy/VLC
@ -167,6 +49,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 or latest of VLC 3 version branch.
I tried build two DLL files on VLC 4.0.0 SDK, but the compiler failed, so you have to use VLC 3.0.9.2 and latest of VLC 3 version branch.
- Martin Eesmaa

Binary file not shown.

Binary file not shown.

View File

@ -1,55 +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:
```
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.2.0 (VVC version)
MPC-HC 2.2.0 comes with LAVFilters VVC installed and it is portable.
You can download via cloud link: https://mega.nz/file/X512UBwA#5HQ6Tj2ZfsNWimMitnR73SR3PcDAKCj4fdGIxELHu0I
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:
```
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

Binary file not shown.

View File

@ -1,21 +1,6 @@
9af5ec43acc488e1a903fc67fc3b41956edc4de638cc56bdecece7ad9e1ea3ae arm64/vvdecapp
79be01be80922334dc7ae687fdc00242d4ecbba3c5676915d5bea1237e480963 arm64/vvencapp
9dd547b378d76d9943b420ee459069b5741bc70b694cd70b5c5c545f5853a1ea arm64/vvencFFapp
8c56da6c56a278e8ad4d4db36e07139676808efc6a700a6ea66cf5e3484e50fb arm64/vvencinterfacetest
e7c7ea92a228b62e90b2d791bacd00ceefe571eee341411a8fca9501a2df8fe0 arm64/vvenclibtest
71271e5f905aa06eda776570a48c4fc0b6e4c6e7ce2d255dc6075414abca8b4f armv7/vvdecapp
5a9a65fc46968feaa379c112f4059d501e89a8a115549a994abdc4984abd3114 armv7/vvencapp
06b7919a6f98c4268effd5cb92e95e8b38e3fbc36dd70e6a37cb0bd2272bced3 armv7/vvencFFapp
352ca459f8031e7376ddd57c0c0d7890d561cb3b349a23e74d51c14fda85c830 armv7/vvencinterfacetest
c5ba26d1c43b3f368f4d1b7c3380b46285b5791fce6985979a70a6018073ff7e armv7/vvenclibtest
0ef4c5192eddce1f208bc67c308c1245ea05ab45b3b5b1aecbc6cebde046a247 LinuxVVC.7z
ef05822305c47eb0bb44427aefd26bcd3002b39ff934fe8c91769c15426dd892 x64/vvdecapp
ed140cde0bdf921775dde1f3975779829b87e930de829d56fe14bc1637e7c7fd x64/vvencapp
2a56d50b9b33028d4d28e32bdf1c2fab4175c208550123e7c0b493051ade8bbf x64/vvencFFapp
da512511c199e9d0eb1174666f00bed215bc9d87274cb1bee6648545d7f96d0f x64/vvencinterfacetest
e47b311a9362955dfccf85aeb2ada0a1b73c3e746f16fc1a81068568e319e00e x64/vvenclibtest
fd314b711d6a3c017f017edbc4992b5c8f61b8565fc72de37e211ac82a742533 x86/vvdecapp
3b9a4bdce67e060742b940fef74bc3c42e3eb5881227949688be7ea568314154 x86/vvencapp
cd8652ed2363458a06d08bec4f8bb038c04b6f1989bb5d35caed060323b6bbee x86/vvencFFapp
029618610daab264a2837b5254323bc43a1208eddc5baaee4a2fc47798ebfc53 x86/vvencinterfacetest
52318eb092b94117a59e0b5fdb93720afc58fe2194c927ed3eda2bad54c794bc x86/vvenclibtest
b6b00c32aae457d3c0f1742106eb629347e8aad297e19567430fe1ce299664c1 LinuxVVC.7z
b55034464d869c9a0574ea85400b8a1c28626f0f78db1abca92bba761cd37cfc vvdecapp
37d800140740b91db8b75ba56997b3bde6ee64f4efe7c3936d3ac8df7a09a762 vvencapp
23efb4866a3fc959daa5f4f4b911414cbcebd2da07fd6807572183f42a90d273 vvencFFapp
884ab4e1b438473842967aa1a78e280b92e0fb8f2c55b1108011a0a400b7c829 vvencinterfacetest
e39176501602d6892f01f19083c56fc29f998aedd3255bbdd6da4f66eb170679 vvenclibtest

190
MPV.md
View File

@ -1,195 +1,51 @@
![mpv-icon128](https://user-images.githubusercontent.com/88035011/169686347-e7f06fa5-01ea-4b13-9ec6-c87570873db7.png)
# MPV Windows/Linux/Android Player (libvvdec + xHE-AAC support)
# MPV Android Player (OpenVVC support)
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.
MPV Android Player (OpenVVC support) can play your VVC decoded video file.
Screenshot preview, see top-left information of toggle stats on Windows/Linux/Android device:
Screenshot preview, see top-left information of toggle stats:
![mpv-vvceasy-windows](Screenshots/mpv-vvceasy-windows.png)
![vvceasy_mpv](https://user-images.githubusercontent.com/88035011/169686173-b7717e01-9cc3-4f25-8f24-ddaa1f882667.jpg)
![mpvlinuxvvceasy](Screenshots/mpv-vvceasy-linux.png)
![mpv-vvceasy-android](Screenshots/mpv-vvceasy-android.png)
# Download MPV Android Player (OpenVVC plugin)
# Download MPV Windows/Linux/Android Player (libvvdec + xHE-AAC plugin)
[Android SDK 29 .APK Debug (Recommended)](https://mega.nz/file/K4FQFATS#7E6FmEOn9h3UIQLg0ZVb66_zItlHBT8DzT2qx5Zr23Q)
[Windows 7 and later x64](https://mega.nz/file/j9N0WRCK#OpX7ySNnH82xuhIPyBpj4v4RbI_8SLRzMeUbKuhufrw)
[Android SDK 29 .APK Release unsigned](https://mega.nz/file/Ch1AgJDD#f__m02qj0F8xkYTVY8o_BOUfZQkhtNkX1Y3fhKG8PKM)
[Windows MPV.NET VVCEasy version x64](https://mega.nz/file/6okC0DDS#TQM_C-mpgPJomwvaoQHRHo_T44dF8h6bMSBlGmGR1dE)
[Android SDK 30 .APK Debug](https://mega.nz/file/v4shBToK#P8bBW70b5QG3SY4rqnz7DZaFq7vrXACmS9tHTWFHgqg)
[Windows MPVLIB VVCEasy version x64](https://mega.nz/file/G492CYII#_Ad6nswQyVbg5andNzEzxXFeQW1IVXf2ZU9fXEgfgeE)
[Android SDK 30 .APK Release unsigned](https://mega.nz/file/L1d0RCRA#JyGcjFRsVQNjo_y0j11_Kdx9oXapOt3fg87-RzppURg)
[Windows 7 and later x86_64-v3 native](https://mega.nz/file/u1l2zTYA#HmiZtkd46EMd9pqcTnhWGC-M3nCv3Y__jLN9T7jLc-c)
[Windows MPVLIB VVCEasy version x86_64-v3 native](https://mega.nz/file/24UggbYD#CsTqPGLa4nEfs_9UheV0auISenDXqFdu465PZfRqozY)
[Linux MPV VVCEasy version x64](https://mega.nz/file/GoFiCK5A#qal_VVgzBuxVUa10NHEumencJ4L2kRQNEdX2zxxaito)
[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.
```
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.
03/04/2023 - New MPV and MPV.NET latest VVCEasy build with new FFmpeg VVCEasy libraries for updated vvenc, vvdec and added libjxl, shaderc, libplacebo and vulkan to make gpu-next available.
29/03/2023 - Update MPV Android package and icons. Tip: You can have two builds between official and VVCEasy build.
19/02/2023 - Add Android TV support of APK builds & update Android MPV VVCEasy builds.
15/02/2023 - Added Android MPV VVCEasy build with gpu-next support.
14/02/2023 - Update Android MPV VVCEasy build latest, but vulkan support is removed for some reason.
29/01/2023 - Updated vvdec code, mpv.net and others on Windows MPV VVCEasy build.
11/01/2023 - Updated vvdec, added Vulkan with shaderc on MPV Android VVCEasy build.
11/10/2022 - Removed libvorbis + updated SDL2 & mpv.net latest.
10/10/2022 - libplacebo removed (does not work Dolby Vision with my custom build) + update mpv, added zimg, & two improved decoders of libspeex & libvorbis.
11/09/2022 - Complete static adding LDFLAGS="-static" to fix new Intel CPU processor users for mpv.net.
11/09/2022 - Added libplacebo + ffnvcodec.
11/09/2022 - Added optional features: SDL2 gamepad, dvdnav & libbluray.
10/09/2022 - Initial release of MPV.NET.
01/09/2022 - New complete static of Windows MPV VVCEasy build.
```
[Android .APK Debug Stable](https://mega.nz/file/H8kRUDBT#zWax2e1xxebrIZMmYPrmiWcbZBHnVAzAVZlY3EmuPnU)
# 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, Windows requires to run x64 or Linux requires to run x64.
This app might crash, slow or freeze on your Android phone for playing VVC high resolutions or/and old devices.
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.
MPV Android OpenVVC App requires your system type of ARM64 (aarch64) and x86_64 to run on Android.
Some Android users for 10-bit pixel format or/and tier high might not show video in mp4 container with VVC video codec only.
Android MPV Player doesn't work seek duration of VVC decoded file.
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.
Standby or sleep Android device may not return of your resume playback after you unlock device.
### Tips
Make sure to allow apps from unknown sources. Link: [Wikihow](https://www.wikihow.com/Allow-Apps-from-Unknown-Sources-on-Android)
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 claimed is malicious by Play Protect, press "Install anyway" on your phone.
If Google warns you, that Android MPV (OpenVVC plugin) app is malicious by Play Protect, press "Install anyway".
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
You can also play external sound audio file from VVC video codec file.
# SHA256 SUMS
```
ee5d8b2ebdda7e9bacfe4a9dd2ce199e96f2a16ac56a8840190a5c66d86e2471 MPV-VVCEasy-API29debug.apk
cc4ba84d91b91edda102bc0086fbfbfdee1a8b1dd9196bc76edd00101fdaff10 MPV-VVCEasy-API29release-unsigned.apk
9a54dcc4f0afe2dc86eb0053afd9231e87d67272327709b412ef1b836925c3d8 MPV-VVCEasy-Windows-x64.7z
80fb94921463e1c1b7e1afe19ba785d5aaedb14da22ccd59c2efbcea6b7fc3de MPV.NET-VVCEasy-Windows-x64.7z
596d5381baa9c460f6f88fc9ea63eb5d3d0357267ad32b951b7ddc0730bbdb2c MPVLIB-VVCEasy-Windows-x64.7z
8d486291a371c8663e7ddd1d9845cf54f81c316a9c795333a5b490f7621a6cb3 MPV-VVCEasy-Windows-NativeX64.7z
003dbdf1cd6639ff906c2c17dde69a16c1df7fa565cf310ba014ea24b5b330a5 MPVLIB-VVCEasy-Windows-NativeX64.7z
94a7c7372cb6309a891f6f7d5670cb21bd706e15fecf861699777b977efe1b85 MPV-VVCEasy-Linux-x64.7z
ab23b1928069bd3584297dae1d90a95fe2910f91936766ddfa5bdafd53c8a300 MPV-VVCEasy-ArchLinux-x64.7z
ead8e9bdf617cc61bd1ed13f246bd3b247afc4f529dd50bba445975d7f3b7266 MPV-VVCEasy-API29debug.apk
f184ee6eed67c944a79ae76a9efefd48adb6666313dc2e6f7fddfad2aee0ac77 MPV-VVCEasy-API29release-unsigned.apk
f806f216b7eb407dcbfd3c05bbb2fc9c2b771fb482f0a111ddeefb110ac71e8e MPV-VVCEasy-debug.apk
06bc7a8c3b2a97e96c89b9dca5d9b0f034afa6cdf1aec8ed80081890a6392985 MPV-VVCEasy-release-unsigned.apk
f8c13279b23e334b985b69080e9cf755e593ac9f1fb0d2b98e0fa5ccf3ff4610 MPV-VVCEasy-stable.apk
```
# Build MPV Android with VVC and xHE-AAC:
If you want to build MPV Android, you need to update & upgrade first, then install packages:
```
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential cmake nasm libsimde-dev python3 git
```
Next download Temurin from Adoptium and follow the install instructions:
https://adoptium.net/installation/linux
After you installed Temurin from Adoptium, you can verify that is installed on your system:
```
java --version
```
After installing the packages on Linux, clone mpv-android-vvc repository:
```
cd
git clone https://github.com/MartinEesmaa/mpv-android-vvc
cd mpv-android-vvc/buildscripts
```
Give shell scripts permission in buildscripts folder:
```
chmod +x scripts/*.sh
```
Before you build, you need to search `#ifdef __ANDROID__` and delete the lines by end `#endif`:
```
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.**
Continue follow instructions to build your own MPV build:
https://github.com/MartinEesmaa/mpv-android-vvc/blob/master/buildscripts/README.md
- Martin Eesmaa
- Martin Eesmaa

Binary file not shown.

View File

@ -1,11 +1,6 @@
adbf61d729c2ee907fb53fe52b0ef2ea08d37aeb5f49c48e6124b9ee7c34ad5b arm64/vvdecapp
87f11d4e5248f837ed30cf4348be94af6726bf8e0beacae0ebebce8d306e2365 arm64/vvencapp
21a8afcd98df9dd137830f8cc794d33647dab7fc8074a095644beb97b72fa5c5 arm64/vvencFFapp
f0e50202b9f9d7aba886fededc060b0a1355db4d7d3dd95e0d40298ed1861c85 arm64/vvencinterfacetest
b461943b3ef51698fc399570791b93f8d25724f0c1a5b96f75704001d78c3724 arm64/vvenclibtest
cd00681655936c47ae98bed139900d3bff32a3c4bf14c8414d3c75cb2270a53f intel_x64/vvdecapp
f744cdf5eeaf69f0e3f7229e7007a23d31c59f48ebfd322066bf2c549471d838 intel_x64/vvencapp
b7fa714504a975c1ae013d5762810d881b486df4f29026a3cb272f6039f239fe intel_x64/vvencFFapp
0c579120465a0f500733ee80d978ad66addfec3e24f81474dfa3d18e17905cd0 intel_x64/vvencinterfacetest
2bd52b8e79bf1543b6b428b00ff30304ac8a0a1334926333d9f447da18e9daab intel_x64/vvenclibtest
d7153e93c77e1c898a1820f9b743f02517e9de7b908a4ffe2957e23387af1520 MacOSVVC.7z
bd4df44d5aa6b472e57e6a3b6ed4e5d1ea6d6a8e4d51fb114a51a3153faa310c MacOSVVC.7z
0387616bdeb26de30cd9b5465321cd7292fc40cd4b00975401d17e7c9f91effb vvdecapp
32fa76374ed08be1f2b4b70676afca71cccf6ecb8d450d0233dc0adc11b08129 vvencapp
db0e243caab9e242378f239c29a4a4c88babe81f94a0e8a78aaadb8a47a54850 vvencFFapp
e4f68a7a67eb0bcc33009f301204515ed5a608b7684d77ab54659302daadfc6e vvencinterfacetest
59159c71eb2d324b1f6f86a8c5daad877fdd8b47f732bdd863b8c0eee5795cd0 vvenclibtest

View File

@ -1,3 +1,5 @@
using System;
using System.Threading;
using System.Net;
namespace VVCEasy
@ -6,21 +8,18 @@ namespace VVCEasy
{
public static void Main()
{
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.Title = "Martin Eesmaa / VVCEasy";
Console.WriteLine("Martin Eesmaa / VVCEasy");
Console.WriteLine("Welcome to VVCEasy. (.NET Console Beta Version, v.0.9.0)");
Console.ReadLine();
do
{
Console.Clear();
Console.WriteLine("VVCEasy (.NET Console Release Version, " + version + ")");
Console.WriteLine("Version codename: " + codeversion);
Console.WriteLine("VVCEasy (.NET Console Beta Version, v.0.9.0)");
Console.WriteLine("Note: C# is not ready yet, malfunction mode\n");
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.Title = "Martin Eesmaa / VVCEasy";
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 VLC VTM Plugins (Windows/Linux x64 of VLC, plugins by Inter Digital Inc)\n12. Install MPV Android (OpenVVC plugin)");
string input = Console.ReadLine();
@ -44,7 +43,7 @@ namespace VVCEasy
{
Console.Clear();
Console.Title = "VVC ENCODER (YUV LOSSY)";
Console.WriteLine("Before we start encode from your YUV file to VVC file, I'm afraid I cannot do automatically for you.\nYou have to manually encode to VVC, the batch file won't work.\nHere is code: vvencapp --qp 38 -i yourinput.yuv -s 854x480 -r 30 -o youroutputlossy.266\nYOU HAVE TO REPLACE VIDEO SIZE AND FRAME RATE. -s is video size and -r is frame rate.\nYou can also add for --tier high or/and 10-bit video -c yuv420_10, if necessary.");
Console.WriteLine("Before we start encode from your YUV file to VVC file, I'm afraid I cannot do automatically for you.\nYou have to manually encode to VVC, the batchfile won't work.\nHere is code: vvencapp --qp 38 -i yourinput.yuv -s 854x480 -r 30 -o youroutputlossy.266\nYOU HAVE TO REPLACE VIDEO SIZE AND FRAME RATE. -s is video size and -r is frame rate.\nYou can also add for --tier high or/and 10-bit video -c yuv420_10, if necessary.");
Console.ReadLine();
}
else if (input3 == "2")
@ -120,7 +119,7 @@ namespace VVCEasy
}
else if (readytestbefore == "I")
{
Console.WriteLine("Installer path environment will be only for 7-Zip.\nOther programs should need manual, but Python, FFmpeg, wget and git must be installed manually and add automatically path environments.\nDo you want patch 7-Zip on your path environment, so you can type 7z next time.\n Would you like to install 7-Zip on your path environments? Y/N? No means go back to test menu.\n\nAnswer: ");
Console.WriteLine("Installer path environment will be only for 7-Zip.\nOthers programs should need manual, but Python, FFmpeg, wget and git must be installed manually and add automatically path environments.\nDo you want patch 7-Zip on your path environment, so you can type 7z next time.\nInstall 7-Zip on your path environments? Y/N? No means go back to test menu.\n\nAnswer: ");
string installpath1 = Console.ReadLine();
@ -142,7 +141,7 @@ 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 favourite 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.ReadLine();
}
}
@ -174,7 +173,7 @@ namespace VVCEasy
Console.Title = "INSTALLING VVDEC WEB PLAYER...";
using (WebClient web1 = new())
web1.DownloadFile("", "");
web1.DownloadFile("", "");
Console.WriteLine("Sorry, the command is not ready yet...");
Console.ReadLine();
@ -208,7 +207,7 @@ namespace VVCEasy
Console.WriteLine("Installing vvDecPlayer from BitMovin for Windows...\nSorry, the C# console is not ready yet...");
using (WebClient web1 = new())
web1.DownloadFile("", "");
web1.DownloadFile("", "");
Console.ReadLine();
}
@ -217,7 +216,7 @@ namespace VVCEasy
Console.WriteLine("Installing vvDecPlayer from BitMovin for Mac OS...\nSorry, the C# console is not ready yet...");
using (WebClient web1 = new())
web1.DownloadFile("", "");
web1.DownloadFile("", "");
Console.ReadLine();
}
@ -226,7 +225,7 @@ namespace VVCEasy
Console.WriteLine("Installing vvDecPlayer from BitMovin for Linux...\nSorry, the C# console is not ready yet...");
using (WebClient web1 = new())
web1.DownloadFile("", "");
web1.DownloadFile("", "");
Console.ReadLine();
}
@ -255,7 +254,7 @@ namespace VVCEasy
Console.WriteLine("Installing of VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)\nSorry C# is malfunction mode...");
using (WebClient web1 = new())
web1.DownloadFile("", "");
web1.DownloadFile("", "");
Console.ReadLine();
}
@ -263,17 +262,10 @@ namespace VVCEasy
else if (input == "12")
{
Console.Clear();
Console.Title = "Android MPV Player (OpenVVC support)";
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")
{
Console.Clear();
Console.Title = "Tests of VVC videos";
Console.WriteLine("Please see the paragraph in README.md.\nhttps://github.com/MartinEesmaa/VVCEasy/#tests-of-vvc-videos\n\nSee information on FFMPEGVVC.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md\n\nPress enter to go back menu.");
Console.ReadLine();
}
}
while (exit == false);
}

336
README.md
View File

@ -9,50 +9,39 @@ https://github.com/MartinEesmaa/VVCEasy/actions/workflows/dotnet.yml)
![Matrix](https://img.shields.io/matrix/vvceasy:matrix.org?label=VVCEasy%20Matrix)
![Discord](https://img.shields.io/discord/974611343237869619?label=VVCEasy%20Discord%20Chat)
# VVCEasy (Windows, macOS, Linux, BSD & Android) (by Martin Eesmaa)
# VVCEasy (Windows, Mac OS, Linux & Android) (by Martin Eesmaa)
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.
VVCEasy comes to one-easy command of ffmpeg, VVC Tools, python, VLC o266player, VVDEC Web Player, Bitmovin VVDec Player, YUView, libvvdec and more.
Installation: Go to the releases and download latest version.
Windows source run (Batch-file): VVCEasy.bat
VVCEasy is not finished yet. I'm trying to work out with my codes. I'm not good for code programming, just simple coding.
Sorry to say this. I will give you of my update announcement once I release the news.
Windows source run (Batchfile): VVCEasy.bat
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.
Matrix chat: https://matrix.to/#/#vvceasy:matrix.org
Revolt: https://app.revolt.chat/invite/0Y10qHzP
Revolt: https://app.revolt.chat/server/01G1QSBZ4AMGDBWPVJ63EDZCD7/channel/01G1QSBZ4ABH7REMG6T47R8KS4
Discord: https://discord.gg/t54cADTbWW
Reddit's community: https://reddit.com/r/VVCEasy
Lemmy's community of VVC (lemmy.world & lemmy.ml): https://lemmy.world/c/vvc
https://lemmy.ml/c/vvc
Lemmy's community of VVCEasy (lemmy.world & lemmy.ml): https://lemmy.world/c/vvceasy
https://lemmy.ml/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.*
# All lists
- [Donate to Martin Eesmaa using cryptocurrency](#donate-to-martin-eesmaa-for-an-cryptocurrencies)
- [Tests of VVC videos](#tests-of-vvc-videos)
- [Donate to Martin Eesmaa using cryptocurrency](#donate-to-martin-eesmaa-using-cryptocurrency)
- [VLC InterDigital VTM VVC Plugin](#vlc-interdigital-vtm-vvc-plugin)
- [FFmpeg VVC En/Decoder & xHE-AAC support](#ffmpeg-vvencdec--xhe-aac-support)
- [VLC o266player](#vlc-o266player-windows-only-mac-os-will-be-later)
- [MPV libvvdec + xHE-AAC support (Windows x64/Linux/Android only)](#mpv-libvvdec--xhe-aac-support-windows-x64linuxandroid-only)
- [Bitmovin VVDec Player](#bitmovin-vvdec-player)
- [LAVFilters VVC version x64](#lavfilters-vvc-version-x64)
- [FFmpeg VVC Decoder support](#ffmpeg-vvdec-support)
- [Deprecated builds](#deprecated-builds)
- [MPV OpenVVC support (Android only)](#mpv-openvvc-support-android-only)
- [Compile for VVCEasy](#compile-for-vvceasy)
@ -62,8 +51,6 @@ https://lemmy.ml/c/vvceasy
- [Encode/Decode easy](#encodedecode-easy)
- [GUI applications easy](#gui-applications-easy)
- [Hard option](#without-vvceasy-experimental-option-for-professional-coders-other-developers-and-everyone-hard)
- [VVEnc & VVDec compatibility test](#compatibility-results-vvenc-and-vvdec-tested-by-martin-eesmaa)
@ -72,7 +59,7 @@ https://lemmy.ml/c/vvceasy
- [Credits & Licenses](#credits--licenses)
# Donate to Martin Eesmaa for a cryptocurrencies
# Donate to Martin Eesmaa using cryptocurrency
- **BTC (BITCOIN):**
```
@ -80,30 +67,17 @@ bc1qhf4zu5uythr7vyt2dru73qp0k2rzrx355fsx47yjxc2ueunz8frqxmwap3
```
- **XMR (MONERO):**
```
46Fk6k3qzhwXpLsDRWo4Uh63DDmwRX7gbL6P3zodAnvnRDr9Psi9uau19nCRQFHbmp3nLR3d5Ve8WRid71nuLZxAGygZ258
85Ahh93M88gV8ekymtYwb6TS14TZ36jNGTFgceaRH7hj8Rtx1qVB9PobnJLR5siz4nYBnzWy3pkV6KaVroifGMVh7n4br3J
```
- **BAT (BASIC ATTENTION TOKEN):** For Brave Browser users only, you can also contribute by supporting me, I'm a verified Brave user on Brave Rewards.
- **Estonian bank account (Luminor Eesti IBAN):** You can donate to me. You have to pay a little network send fees before donate.
```
EE511700017003558571
```
# Tests of VVC videos
You can test Martin Eesmaa's encoded movies of VVC video codec and follow README.txt instructions.
[Tears of Steel VVC](https://mega.nz/folder/64swUYxI#WE5njn2aX6-6fxypNC3gtA)
[Martin Eesmaa's VVC sample videos](https://mega.nz/folder/C5lFhALL#5fRQfHN4ulzdaq-B33WQ7w)
- **BAT (BASIC ATTENTION TOKEN):** For Brave Browser users only, you can also contribute by supporting me, I'm verified Brave user on Brave Rewards.
# 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...
I have a great news. VLC latest version worked out well of Inter Digital VTM plugins. On o266player, there was 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:
Here is a my comparision of o266player version and VTM VVC plugins:
Top left and right is o266player by Tencent Cloud.
@ -119,35 +93,35 @@ When you try to play your MPEG-TS or TS file, it will crash with your InterDigit
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.
# FFmpeg VVENC/DEC & xHE-AAC support
About o266player: Since o266player repository have no new commits than one year.
FFmpeg VVC En/Decoder & xHE-AAC supports of Windows, Mac and Linux.
We will remove o266player list, if no new commits than one year.
See [FFMPEGVVC.md](FFMPEGVVC.md).
# VLC o266player (Windows only, Mac OS will be later)
# MPV libvvdec + xHE-AAC support (Windows x64/Linux/Android only)
For more information about o266player.
MPV libvvdec & xHE-AAC supports only of Windows x64, Linux & Android.
See [o266player.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/o266player.md).
The VVC and MP4 mux with VVC codec can be played on MPV libvvdec + xHE-AAC version. Only MP4 mixed with VVC supports seek.
# Bitmovin VVDec Player
MPV.NET is also only available for Windows.
For more information about Bitmovin VVDec Player.
See [MPV.md](MPV.md).
See [Bitmovin.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/Bitmovin.md).
# LAVFilters VVC version x64
# FFmpeg VVDEC support
For more information about LAVFilters Windows VVC version.
FFmpeg VVC Decoder supports of Windows, Mac and Linux.
See [LAVFilters folder](LAVFilters/README.md)
See [FFMPEGVVC.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md).
# Deprecated builds
# MPV OpenVVC support (Android only)
Those deprecated builds were no new commits/codes after one year.
MPV OpenVVC Decoder supports only of Android.
For Bitmovin VVDec Player, see [Bitmovin.md](Bitmovin.md).
Only VVC file can play, but merged .mp4 is black screen, so you need external sound from vvc video codec, if necessary.
For VLC o266player build, see [o266player.md](o266player.md).
See [MPV.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md).
# Compile for VVCEasy
@ -159,14 +133,14 @@ Inno Setup link: https://jrsoftware.org/isdl.php
Step 1: Clone VVCEasy git and open VVCEasy_compiler.iss
```
cd %userprofile%\Downloads
git clone --depth=1 https://github.com/MartinEesmaa/VVCEasy && cd VVCEasy
git clone https://github.com/MartinEesmaa/VVCEasy.git
VVCEasy_compiler.iss
```
Step 2: Before you compile, please replace example username by your username of LicenseFile, OutputDir and Source. See the image:
![Instructionsofcompilevvceasy](https://user-images.githubusercontent.com/88035011/153736145-a24a1997-1133-4933-8797-de7c62295d1d.png)
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 3: Once you replaced of your username, press F9 to compile on your keyboard. After compiling, VVCEasy.exe (Installer) will be on your Downloads folder.
![VVCEasyclickblueplaybutton](https://user-images.githubusercontent.com/88035011/153736303-b0949f5a-5ac5-4123-92c5-305211a8aadc.png)
---
@ -178,17 +152,17 @@ Link: https://dotnet.microsoft.com/en-us/download
Step 1: Clone git and cd VVCEasy
```
git clone --depth=1 https://github.com/MartinEesmaa/VVCEasy && cd VVCEasy
git clone https://github.com/MartinEesmaa/VVCEasy.git && 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: Before you build, make sure to build and test it. Don't worry, when you build with .NET, it will restore project and build.
```
dotnet build -c Release
dotnet build && dotnet test --no-build --verbosity normal
```
Step 3: Once building is done, the build folder directory is bin/Release
Step 3: Once building is done, the build folder directory is bin/Debug
```
cd bin/Release
cd bin/debug
```
*Tip: You can run VVCEasy without building.*
@ -198,34 +172,14 @@ 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. From 21 October 2021 to 23 June 2022, VVCEasy was pre-release, but it's construction mode and you can have look with .BAT source code.
Since 23 June 2022, VVCEasy was initial released on v1.0.0.
To encode/decode, please see the GUI applications.
Before you run VVCEasy.bat or VVCEasy.exe, you need to change from your input video file name into input.mp4 (as example)
Follow the instructions, the commands will give your 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
# GUI applications (easy)
If you're not familiar for using CLI, you can use GUI with application window for ease use and without typing commands on your terminal.
These VVC programs of encode/decode are listed:
* [FastFlix](https://github.com/cdgriffith/FastFlix) (Note: 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) (created by Chris Griffith)
* [VVC-GUI-Encoder](https://github.com/Disa-Kizonda/VVC-GUI-Encoder) (only encoder) (created by Disa Kizonda)
* [aVVCator](https://github.com/gianni-rosato/aVVCator) (only encoder & Linux only) (created by 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) (created by 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) (created by Alec Carter) ([source code](https://github.com/alectr0/VVConvert))
# 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).
You need 7-Zip (requires ffmpeg and ffplay), ffmpeg, ffplay, vvenc/vvdec(app) and YUView.
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)
@ -234,6 +188,9 @@ Windows: https://github.com/MartinEesmaa/VVCEasy/blob/master/WindowsVVC/WindowsV
Mac: https://github.com/MartinEesmaa/VVCEasy/tree/master/MacOSVVC/MacOSVVC.7z
Linux: https://github.com/MartinEesmaa/VVCEasy/blob/master/LinuxVVC/LinuxVVC.7z
YUView:
https://github.com/IENT/YUView/releases
Before we start, you need to make path environments for ffmpeg, ffplay and vvenc/vvdec to make easily.
In Command Prompt (Windows):
@ -254,53 +211,31 @@ Transcode any video formats to YUV/Y4M
For YUV transcode (lossy from web quality, YouTube videos and others):
```
ffmpeg -i input.mp4 -pix_fmt yuv420p inputtranscode.yuv
ffmpeg -i input.mp4 -pix_fmt yuv420p -strict 1 inputtranscode.yuv
```
For Y4M transcode (lossless from uncompressed video files, only 8 bit):
```
ffmpeg -i input.mp4 -pix_fmt yuv420p inputtranscode.y4m
ffmpeg -i input.mp4 -pix_fmt yuv420p -strict 1 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):
Verify uncompressed video using ffplay before encode to VVENC (important replace video size, otherwise it will not correctly show video, it's like scrambled eggs video):
```
ffplay inputtranscode.yuv -video_size 1280x720
ffplay -i 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`.
For y4m videos, replace `-i inputtranscode.yuv` with `-i inputtranscode.y4m`. For yuv420p10 on your input video 10 bit, add `-pix_fmt yuv420p10`.
Playing FFplay for y4m video with wrapped_avframe, you don't need to put anything commands, just simple play this:
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.
```
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
After verifying correctly 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
```
-s means video size, -r means frame per second and -o means output. Note: (Simple) as Default settings is YUV420P (8-bit)
**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.**
@ -314,48 +249,44 @@ ffmpeg -i example.mp4 -pix_fmt yuv420p -f rawvideo - | vvencapp -i - -s 1920x108
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)
The default of VVENC: Constant Quality is 32 and speed is medium.
If you want to get smaller video size and lossy video, add --qp 38. (Not recommended)
If you want to get lossless video without losing quality (minimum loss quality), use CQ 16-19 and preset slow (optional slower). (Recommended, only Y4M, Raw and Uncompressed video files)
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: If you want have true lossless on your video, please visit [FFV1](http://ffv1.org) or H.264 Lossless video codec**
**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.**
**NOTE 2: VVENC does not support lossless.**
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):
Lossless video (minimum loss quality, only Y4M, Raw, Uncompressed video used) (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 Apple Mac OS 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`)
Encode with VVENC (Best settings (lossless only of Y4M, Raw and Uncompressed video files), replace video size (-s), framerate (-r) and maximize threads of your cores (--threads), example) (Minimum loss quality) If you want true lossless video, use FFV1 latest version 3.4. (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 10-bit YUV users: If you encode YUV 10 bit to VVC file, add `-c yuv420_10` before you type ending word of -o EXTREME.266.
Note to 8-bit Y4M users: It's only from input video (8-bit) to Y4M (8 bit)
Note to 8-bit Y4M users: It is 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.
After VVEnc, you can play in YUView of latest version.
Drag any your video file of .h266, .266 or .vvc to play. YUView will play your video only about 10 seconds limit.
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.
![VLC Media Player (VVC test)](https://user-images.githubusercontent.com/88035011/145756567-d156f630-9e7f-4042-99b5-6ffe8a6b4b64.png)
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.
@ -372,41 +303,34 @@ 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 real creator of VVCEasy?
Yes... but I'm not real creator of VVC, I didn't built VVC, it was Fraunhofer 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.
Well yes... it takes longer time to make VVCEasy easier, but VVCEasy is not yet finished until further/update announcement. I don't have a employees, so I'm only the one.
Is it okay to bring my proof screenshots of errors?
I allow you to bring error screenshots, you can bring proof. More proofs, easier to solve it.
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 :).
My question is not listed on FAQ. Can I ask any question?
Sure, just go to Issues tab, ask questions or/and give your issue to me.
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.
I know about Batch file and HTML programmer. Some hard programming languages might be difficult to me :/.
Update of 19th February 2022: Maybe I should make C# Console program, that will be easy of 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 chat us: https://matrix.to/#/#vvceasy:matrix.org
- Martin Eesmaa
# Credits & Licenses
[VVCEasy](https://github.com/MartinEesmaa/VVCEasy) - VVCEasy is easy VVC, that no need to compile.
[VVCEasy](https://github.com/MartinEesmaa/VVCEasy) - VVCEasy is easy VVC, that no need compile.
License: MIT
© 2021-2024 [Martin Eesmaa](https://github.com/MartinEesmaa) (All rights reserved)
© 2021-2022 [Martin Eesmaa](https://github.com/MartinEesmaa) (All rights reserved)
---
@ -416,31 +340,23 @@ License: MIT
[Versatile Video Decoder Web Player](https://github.com/fraunhoferhhi/vvdecWebPlayer) - A minimal proof-of-concept VVC player for the web using WebAssembly
License: BSD 3-Clause Clear License (all of three repositories)
License: Clear BSD (two repositories of vvenc & vvdec) + BSD (vvdecWebPlayer)
© 2018-2024, Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. & The VVC Authors. (All rights reserved)
© 2018-2022, Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. & The VVC Authors. (All rights reserved)
GitHub: [Fraunhoferhhi](https://github.com/fraunhoferhhi)
---
[VLC VTM Decoder Plugin](https://github.com/InterDigitalInc/VTMDecoder_VLCPlugin) - VVC decoder plugin for VLC based on a multithreaded VTM
[O266Player](https://github.com/TencentCloud/o266player) - VLC Media Player (o266player, Vetinari v3.0.11.1, modified version)
[VLC Original Version](https://code.videolan.org/videolan/vlc) - VLC Media Player
License: GPL Version 2 (VLC Original version) & LGPL-2.1 (VLC VTM Decoder Plugin)
License: GPL Version 2 (both repositories)
© 2000-2024 [VLC Media Player](https://code.videolan.org/) Developers (All rights reserved)
© 2020-2021 [Tencent Cloud](https://github.com/TencentCloud) (All rights reserved)
© 2021-2023 [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-2023, Tampere University, ITU/ISO/IEC, project contributors (All rights reserved)
© 2000-2022 [VLC Media Player](https://code.videolan.org/) Developers (All rights reserved)
---
@ -452,33 +368,21 @@ License: MIT
---
[VLC VTM Decoder Plugin](https://github.com/InterDigitalInc/VTMDecoder_VLCPlugin) - VVC decoder plugin for VLC based on a multithreaded VTM
License: LGPL-2.1
© 2021-2022 [Inter Digital Inc](https://github.com/InterDigitalInc) (All rights reserved)
---
[FFmpeg](https://github.com/FFmpeg/FFmpeg) - Mirror of https://git.ffmpeg.org/ffmpeg.git
VVC developers & forkers: [Christian Lehmann](https://github.com/lehmann-c), [tbiat](https://github.com/tbiat), [Isabelle Santin](https://github.com/IsaMorphic) & [Martin Eesmaa](https://github.com/MartinEesmaa)
VVC developers & forkers: [lehmann-c](https://github.com/lehmann-c) and [tbiat](https://github.com/tbiat)
License: LGPL-2.1+ & GPL-2.0+
For my custom build configuration license is LGPL-2.1.
© 2000-2024 [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-2023 [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-2024 [Vincent Lang, MPlayer, mplayer2 & MPV developers](https://github.com/mpv-player) (All rights reserved)
© 2000-2022 [FFmpeg developers](https://github.com/FFmpeg) (All rights reserved)
---
@ -488,7 +392,15 @@ VVC developer & forker: [tbiat](https://github.com/tbiat) & [Martin Eesmaa](http
License: MIT
© 2016-2024 Ilya Zhuravlev, sfan5 & mpv developers (All rights reserved)
© 2016-2022 Ilya Zhuravlev, sfan5 & mpv developers (All rights reserved)
---
[OpenVVC](https://github.com/OpenVVC/OpenVVC) - VVC Decoder
License: LGPL-2.1
© 2021-2022 OpenVVC developers (All rights reserved)
---
@ -496,42 +408,4 @@ License: MIT
License: LGPL-2.1
© 2003-2024 [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-2023 [Hendrik Leppkes](https://github.com/Nevcairiel) (All rights reserved)
---
[MPC-HC](https://github.com/clsid2/mpc-hc/) - Media Player Classic (forked by clsid2)
License: GPL-3.0
© 2007-2018 [MPC-HC Community Forum & contributors](https://github.com/mpc-hc) (Original) (All rights reserved)
© 2018-2024 [clsid2](https://github.com/clsid2) (forked) (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-2023 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)
© 2003-2022 [Jean Le Feuvre](https://github.com/jeanlf) & [GPAC developers/contributors](https://github.com/gpac/gpac/graphs/contributors)

View File

@ -1,13 +1,9 @@
# 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)
@ -18,10 +14,4 @@ LinkedIn: https://www.linkedin.com/in/martin-eesmaa-4b355587/
Wikipedia: [MartinHero13](https://en.wikipedia.org/wiki/User:MartinHero13)
Imgur: [MartinHero13](https://imgur.com/user/MartinHero13)
Doom9 Forum: [MartinEesmaa](https://forum.doom9.org/member.php?u=248978)
Hydrogenaudio account (registered members to view my profile or search my username of Hydrogenaudio to see posts/replies in web search engine): [MartinEesmaa](https://hydrogenaud.io/index.php?action=profile;u=160252)
- Martin Eesmaa

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 763 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

View File

@ -8,10 +8,4 @@ See the lists:
- ありがとう, ネクストスケープ (delsoladmin)! [NEXTSPACE Streaming Tech Blog](https://media-streaming.nextscape.net/blog/1153/)
- Thank you, Doom9 Forum Community! Search "VVCEasy" on Doom9 Forum.
- Danke, LigH (@LigH-de)! [My issue mention of xHE-AAC](https://forum.doom9.org/showthread.php?p=1970068&highlight=Martin+Eesmaa#post1970068)
- Thanks, Artem! [VVCEasy thread](https://forum.doom9.org/showthread.php?p=1974413#post1974413)
- Martin Eesmaa (@MartinEesmaa)

4
UpdateVVCLinux.sh Normal file
View File

@ -0,0 +1,4 @@
#!/bin/bash
sudo apt update && sudo apt upgrade -y
sudo apt install ffmpeg qt5-default build-essential git -y
git pull

4
UpdateVVCMacOS.sh Normal file
View File

@ -0,0 +1,4 @@
#!/bin/bash
brew update
brew upgrade ffmpeg
git pull

View File

@ -1,22 +1,7 @@
echo off
set welcometitle=Martin Eesmaa / VVCEasy
set version=v2.7.0
set versionname=Martin Eesmaa at age 19, wow nice!
set vvceasydate=11 April 2024
IF EXIST "%PROGRAMFILES(X86)%" (set bit=x64) ELSE (set bit=Win32)
pushd "%~dp0"
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
@ -26,16 +11,16 @@ REM --> Check for permissions
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
if '%1' EQU '1' (
echo Cannot elevate administrator privilege
echo Please try again with "Run as Administrator"
echo Installation failed.
pause
exit /B
) else (
echo Requesting administrative privileges...
goto UACPrompt
)
if '%1' EQU '1' (
echo Cannot elevate administrator privilege
echo Please try again with "Run as Administrator"
echo Installation failed.
pause
exit /B
) else (
echo Requesting administrative privileges...
goto UACPrompt
)
) else ( goto gotAdmin )
:UACPrompt
@ -44,7 +29,7 @@ if '%errorlevel%' NEQ '0' (
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
@ -55,66 +40,58 @@ goto welcomenow
:welcomenow
cls
title %welcometitle%
echo %welcometitle%
echo Welcome to VVCEasy. (Batch file Release Version, %version%, %vvceasydate%)
echo Version codename: %versionname%
title Martin Eesmaa / VVCEasy
echo Martin Eesmaa / VVCEasy
echo Welcome to VVCEasy. (Batchfile Beta Version, v.0.9.0)
pause
goto start
:start
title %welcometitle%
title Martin Eesmaa / VVCEasy
color 07
cls
echo VVCEasy (Batchfile Release Version, %version%, %vvceasydate%)
echo Version codename: %versionname%
echo VVCEasy (Batchfile Beta Version, v.0.9.0)
echo.
echo What would you like to do to encode/decode of VVC?
echo What would you like to do for encode/decode of VVC?
echo 1. Encode
echo 2. Decode
echo 3. Help
echo 4. Exit
echo 5. Install/Test path environment.
echo 6. Install quickly through Anaconda (Python distribution) for FFmpeg (Windows)
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. Install Windows VVC binaries
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
echo 10. Install VLC VTM Plugins (Windows/Linux x64 of VLC, plugins by Inter Digital Inc)
echo 11. Install FFmpeg VVDec support
echo 12. Install MPV Android (OpenVVC plugin)
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
echo Invalid input. Please enter a number between 1 and 13.
pause
goto start
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 vvdecffmpeg
if %VVCSTART% == 12 goto mpvandroidvvc
:encodestart
title Encode to VVC
cls
echo Welcome to VVC encoder.
echo What do you like to encode to VVC?
echo What do you like 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 RAW video, Apple ProRes and others uncompressed files)
echo 3. Go back to the menu.
echo 2. Lossless (example XIPH Media, Camera uncompressed (MOV/MP4/AVI), Apple ProRes and others uncompressed files)
echo 3. Go back to menu
set /p vvencquestion1=Number:
if "%vvencquestion1%" == 1 goto losslessvvenc2
if "%vvencquestion1%" == 2 goto lossyvvenc2
if "%vvencquestion1%" == 3 goto start
if %vvencquestion1% == 1 goto losslessvvenc2
if %vvencquestion1% == 2 goto lossyvvenc2
if %vvencquestion1% == 3 goto start
:losslessvvenc2
title Lossless settings with Lossless uncompressed (VVC Encoder)
@ -128,14 +105,14 @@ echo If you don't have Y4M already... you need transcode file from your uncompre
echo Example: ffmpeg -i yourfile.mov -strict 1 yourfinal.y4m
echo Only 8-bit uncompressed movies input to Y4M.
set /p doyouhavey4mvvencquestion3=Number:
if "%doyouhavey4mvvencquestion3%" == 1 goto startlosslessvvenc2
if "%doyouhavey4mvvencquestion3%" == 2 goto encodestart
if %doyouhavey4mvvencquestion3% == 1 goto startlosslessvvenc2
if %doyouhavey4mvvencquestion3% == 2 goto encodestart
: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 encode from your Y4M file to VVC file, I'm afraid I cannot do automatically for you.
echo You have to manually encode to VVC, the batchfile 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 INPUT VIDEO BIT DEPTH IS 8-BIT ONLY FOR UNCOMPRESSED MOVIE FILES.
@ -153,18 +130,19 @@ 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 Example: ffmpeg -i yourfile.mp4 -strict 1 yourfinal.yuv
set /p doyouhaveyuvvvencquestion4=Number:
if "%doyouhaveyuvvvencquestion4%" == 1 goto startlossyvvenc2
if "%doyouhaveyuvvvencquestion4%" == 2 goto encodestart
if %doyouhaveyuvvvencquestion4% == 1 goto startlossyvvenc2
if %doyouhaveyuvvvencquestion4% == 2 goto encodestart
: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 encode from your YUV file to VVC file, I'm afraid I cannot do automatically for you.
echo You have to manually encode to VVC, the batchfile 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 can also add for "--tier high" or/and 10-bit video "-c yuv420_10", if necessary.
pause
pause
goto start
:decodestart
@ -175,13 +153,13 @@ echo Do you want to transcode back from VVC to YUV or Y4M? Which did you choose
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 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 Note, if you are using portable, like you 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 1. YUV (lossy video VVC)
echo 2. Y4M (lossless video VVC, recommended)
echo 2. Y4M (lossless video VVC)
set /p decodestart1=Number:
if "%decodestart1%" == 1 goto DECODESTARTFROMVVCTOYUV
if "%decodestart1%" == 2 goto DECODESTARTFROMVVCTOY4M
if %decodestart1% == 1 goto DECODESTARTFROMVVCTOYUV
if %decodestart1% == 2 goto DECODESTARTFROMVVCTOY4M
:DECODESTARTFROMVVCTOYUV
cls
@ -192,7 +170,7 @@ vvdecapp -b VVC.vvc -o VVCTOYUV.yuv
move VVCTOYUV.yuv ../
move VVCTOYUV.yuv transcodedback
explorer "C:\Program Files\VVCEasy\transcodedback"
echo FINISHED. Going back to the menu...
echo FINISHED. Going back to menu...
timeout 3
goto start
@ -205,7 +183,7 @@ vvdecapp -b VVC.vvc --y4m -o VVCTOYUV.y4m
move VVCTOYUV.y4m ../
move VVCTOYUV.y4m transcodedback
explorer "C:\Program Files\VVCEasy\transcodedback"
echo FINISHED. Going back to the menu...
echo FINISHED. Going back to menu...
timeout 3
goto start
@ -214,15 +192,15 @@ 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, Google, SearX or your favorite search engine.
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.
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 %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
:nowtestingtime
title Testing time...
@ -231,37 +209,38 @@ ffmpeg
ffplay
wget
git
python --version
echo You need exit in Python for typing "exit()".
python
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 %testdidworkq% == Y goto youdidworktest
if %testdidworkq% == N goto ahhdidnotwork
if %testdidworkq% == y goto youdidworktest
if %testdidworkq% == n goto ahhdidnotwork
:youdidworktest
title Great!
echo Great, your PATHS working now. Now back to the menu...
echo Great, your PATHS working now. Now back to 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 Still not working? You can ask question in 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 Others 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 Install 7-Zip on your path environments? Y/N? No means go back to 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 %installpath1% == Y goto installingpath
if %installpath1% == N goto test
if %installpath1% == y goto installingpath
if %installpath1% == n goto test
:installingpath
title INSTALLING 7-ZIP on your path environments...
@ -274,9 +253,9 @@ goto test
:exit
cls
title Have a nice day!
echo Have a nice day! Thank you for using VVCEasy! :)
::: _ _ _
title Have a wonderful day!
echo Have a wonderful day! Thank you for using VVCEasy. :)
::: _ _ _
::: | | | | | |
::: | |_| |__ __ _ _ __ | | ___ _ ___ _ _
::: | __| '_ \ / _` | '_ \| |/ / | | |/ _ \| | | |
@ -304,25 +283,25 @@ echo Have a nice day! Thank you for using VVCEasy! :)
for /f "delims=: tokens=*" %%A in ('findstr /b ::: "%~f0"') do @echo(%%A
echo.
echo Copyright (C) 2021-2024 Martin Eesmaa
echo Copyright (C) 2021-2022 Martin Eesmaa
echo.
echo ------------ END OF WINDOWS BATCHFILE PROGRAM ----------------
echo ------------ END OF THE 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?
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
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...
echo SUCCESS, going to back menu...
pause
goto start
@ -332,16 +311,16 @@ echo Welcome to VVCEasy help instructions!
echo Here is 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 2: Here are 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.
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 of VVCEasy. Please contact to 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 beginning. If No, going to back 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 %helper% == Y goto help
if %helper% == N goto start
if %helper% == y goto help
if %helper% == n goto start
:installvvdecweb
cls
@ -349,17 +328,17 @@ 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 When you agree to install, it will clone of 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 Would you like to install VVDEC Web Player?
echo Would you like to install of 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 %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
:installnowplayer
cls
@ -370,10 +349,10 @@ 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.
echo The python file is porting 8000 on your localhost 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 Thanks for trying out of 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.
timeout 10
goto start
@ -385,39 +364,28 @@ echo UPDATING VVDEC WEB PLAYER...
cd vvdecWebPlayer
git pull
cd ../
echo vvdecWebPlayer is now updated.
echo Your up to date is now latest.
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 "%decompwinvvc%" == Y goto decompresswin7z1
if "%decompwinvvc%" == N goto start
if "%decompwinvvc%" == y goto decompresswin7z1
if "%decompwinvvc%" == n goto start
:decompresswin7z1
title WindowsVVC.7z (decompressing)
echo Decompressing........
cd WindowsVVC
7z 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 Now please make sure double check that needs to be same hash. If it matches hash same as .exe of WindowsVVC.sha256 and CertUtil. This means good.
echo If the hashes are not matched correctly, please try again or manually extract the compressed file using 7-Zip.
echo.
echo Otherwise, please create issue to Martin Eesmaa/VVCEasy on GitHub for your own problem.
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 is 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.
pause
echo Thank you for decompressing Windows VVC binaries. Now back to the menu.
echo Thank you for decompressing WindowsVVC.7z... Now back to menu.
timeout 3
goto start
@ -427,14 +395,14 @@ 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.
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 %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 %installbitmovindt% == n goto start
:installbitmovin1windows
title Installing BitVVDecPlayer from BitMovin...
@ -443,13 +411,12 @@ 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 -aoa
7z x BitVVDecPlayerWIN.7z
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 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.
goto downloadbitmovinvvcsample
:installbitmovin1macos
@ -459,13 +426,12 @@ 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 -aoa
7z x BitVVDecPlayerMAC.7z
del /q BitVVDecPlayerMAC.7z
echo Download completed, please put to macOS and run it, now if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
./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 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.
echo For more information, see Bitmovin.md.
echo Or contact Bitmovin at https://www.bitmovin.com.
goto downloadbitmovinvvcsample
:installbitmovin1linux
@ -475,41 +441,43 @@ 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 -aoa
7z x BitVVDecPlayerLINUX.7z
del /q BitVVDecPlayerLINUX.7z
echo Download completed, please put and run on your Linux machine, 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.
echo To build vvDecPlayer, please go to https://github.com/bitmovin/vvDecPlayer
./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 You might get this message error, that you can't run vvDecPlayer without Qt framework:
echo ./vvDecPlayer: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./vvDecPlayer)
echo ./vvDecPlayer: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./vvDecPlayer)
echo ./vvDecPlayer: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.12' not found (required by ./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 Or contact Bitmovin at https://www.bitmovin.com or create issue on VVCEasy.
echo Or contact Bitmovin at https://www.bitmovin.com.
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 %vvcsampleyeah% == Y goto downloadvvcnowbit
if %vvcsampleyeah% == y goto downloadvvcnowbit
if %vvcsampleyeah% == N goto start
if %vvcsampleyeah% == n goto start
:downloadvvcnowbit
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"
echo Extracting from archived file...
7z x vvcBlogPostDemo.7z -aoa
7z x vvcBlogPostDemo.7z
echo Deleting archived file...
del /q vvcBlogPostDemo.7z
title Installation of BitVVDecPlayer
echo Please edit the location downloaded folder of vvcBlogPostDemo...
echo Please edit of location downloaded folder of vvcBlogPostDemo...
CoffeeRun.json && SpriteFright.json
echo Press any key, when you finished configured of your location folder...
pause
echo Okay, it seems you configured completely. Please run vvDecPlayer on your computer.
echo Okay, it seems you configured completed. 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 create the new issue on GitHub or join community available with Discord, Revolt and Matrix.
echo Still not working? Please chat us on https://matrix.to/#/#vvceasy:matrix.org to solve your problem or add new issue on GitHub.
pause
goto start
@ -521,44 +489,28 @@ echo You need to run Windows version of Windows Vista / Windows Server 2008 to p
echo Windows XP can't load VTM plugins, but other plugins work.
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 Available: VLC 3.0.9.2 and later latest version 3 (it will work same latest version 3)
echo Current version = 3.0.16, latest version 3.0.17-4 (it will work same latest version)
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 %vlcvtmyesorno% == Y goto installvlcvtmpluginnow
if %vlcvtmyesorno% == y goto installvlcvtmpluginnow
if %vlcvtmyesorno% == N goto start
if %vlcvtmyesorno% == n goto start
: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
: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 installing VLC, you can try again by pressing number one.
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
)
copy libvtmdec.dll "%programfiles%\VideoLAN\VLC\plugins\codec"
copy libvvcdecoder_plugin.dll "%programfiles%\VideoLAN\VLC\plugins\codec"
copy libvvctsdemux_plugin.dll "%programfiles%\VideoLAN\VLC\plugins\demux"
cd ../
taskkill /im vlc.exe
echo Three dll files are patched to your VLC Media Player.
echo Restarting and starting 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 Once, you're finished, you don't have to patch again. You can continue normally VLC Media Player next time after VVCEasy.
"%programfiles%\VideoLAN\VLC\vlc.exe"
pause
goto start
@ -567,16 +519,20 @@ goto start
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
set /p vvcnow0
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.
echo Your favourite operating system is available on FFmpeg VVDec support. Please copy 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 Windows: https://mega.nz/file/e1MEUAwR#c7u7vDvwzp6JiSaRDwhCyOaH4cGnx1xQDPyKgbAd-qM
echo.
echo Mac OS: https://mega.nz/file/K09gRbYJ#SewWjY4LqVdvlivXJhqQMjrsXO6ec8a1jmapj5nO2Gs
echo.
echo Linux (Only Ubuntu 20.04 built): https://mega.nz/file/T8l0GTqa#oWsDDrFYjzf3LhS9zRkuqqBz6H4yJmNQUNiu_erVQLo
echo.
echo See information on FFMPEGVVC.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md
echo.
@ -588,31 +544,8 @@ goto start
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
:testsofvideo
echo Please see the paragraph in README.md.
echo https://github.com/MartinEesmaa/VVCEasy/#tests-of-vvc-videos
echo.
echo See information on FFMPEGVVC.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md
echo See information 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
:error
echo Your Windows version is not supported and outdated which may not work to run with VVC binaries and others too.
echo This requires for Windows XP and later to use this script.
pause
exit
:doserror
echo DOS is not supported and outdated which may not work to run with VVC binaries and others too.
echo Also MS-DOS, DOSBox and FreeDOS were also not supported.
echo This requires for Windows XP and later to use this script.
pause
exit

View File

@ -2,7 +2,7 @@
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "VVCEasy"
#define MyAppVersion "2.7.0"
#define MyAppVersion "0.5.0"
#define MyAppPublisher "Martin Eesmaa"
#define MyAppURL "https://github.com/MartinEesmaa/VVCEasy"

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -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");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;
"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",function(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"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];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 instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports});self.onmessage=(e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;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).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();if(!initializedJS){Module["___embind_register_native_and_builtin_types"]();pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["__emscripten_thread_exit"](result)}}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{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==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}});

Binary file not shown.

View File

@ -1,11 +1,6 @@
987967ccb722ea8b113aafd328ae8b96a46ed02a897e0c4ddd0012d33c609edd Win32/vvdecapp.exe
913f20673acdab55869c54939e7ab70904be96ca01697f306a74709c92a5de07 Win32/vvencapp.exe
c1b7274796e3aaf68c576bb2bba5b4c26763209371a0018515be8063b7a71091 Win32/vvencFFapp.exe
e9d2cfc7cf3f48c870fd8f2158cb55a92ae0a7f9fbe4c86e73f266c59a7129b2 Win32/vvencinterfacetest.exe
71b108a7392a27c4135f7a732d31c5e5f698699a67ed51c5de49ae5cc419fa5b Win32/vvenclibtest.exe
446a28d5ac49b576c697040411ddfcb1cdaa2274a93fe319e5a6385d4f32b077 WindowsVVC.7z
d9b923dbcb554d47d817b86c65864faa9b931b41e82467f69c4be32929d1e6cd x64/vvdecapp.exe
7c9bfd540a930063ff89c2a965147eb3cfaefdd99e0a41900b275ae76eb1bf3c x64/vvencapp.exe
40fc87a47d410757e0b1bdbaa2d96817620b9304045880dbd124852d2e6c8525 x64/vvencFFapp.exe
fd2c98e1cb6ae75f3d8bef74d6a9af9847b3228874bd4d9a6a639eb0580bb32b x64/vvencinterfacetest.exe
da2a167729dffb720cf9c337ec7fd260080eff767206c5d5a90bc243773d7cde x64/vvenclibtest.exe
1ac79ae1553e5e52f7fdf0e3d952d6755b39a1a480f1279eb858543b5d0adc34 vvdecapp.exe
ed0e90795b04ea4a906e09772dad20c555f0658a5904b7f5a89272d34a424d8e vvencapp.exe
9c08748131220e382b03f911fa62e62b580bcbbd5792477c1932f0666622f56d vvencFFapp.exe
ae6570cbd021ca079b0eb2ac064e414cb6c054108c6a84f68003351df4c0aedc vvencinterfacetest.exe
6b01073ff7b402db159cbe0cae566b2f58ee98e1dca752d543599210413fb8fb vvenclibtest.exe
26071beb1006498b9e4dd505a55012373ff82ce54a29bd7757c89b3e5383d089 WindowsVVC.7z

View File

@ -1,117 +1,15 @@
#!/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-VVC ]; 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 -b SDL2
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 zimg ]; then
git clone --depth=1 https://github.com/sekrit-twc/zimg
git -C zimg submodule update --init --recursive --depth 1
wget https://raw.githubusercontent.com/m-ab-s/mabs-patches/master/zimg/0001-libm_wrapper-define-__CRT__NO_INLINE-before-math.h.patch
else
git -C zimg pull
git -C zimg submodule update --init --recursive --depth 1
fi
if [ ! -d soxr ]; then
git clone --depth=1 https://github.com/chirlu/soxr
else
git -C soxr pull
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 ../../ && \
cd zimg && autoreconf -if && ./configure --disable-shared --prefix=$PREFIX && sudo make install -j $nproc && \
cd .. && \
mkdir soxr/build && cd soxr/build && cmake -D{WITH_LSR_BINDINGS,BUILD_TESTS,WITH_OPENMP}=off -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -Wno-dev .. && \
sudo cmake --build . -j $nproc --target install && \
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-libzimg --enable-libvmaf --enable-libsoxr --enable-sdl2 && \
make -j
echo You are ready to preview VVC, view VVC information or convert from VVC using ffmpeg, ffplay and ffprobe.
sudo apt update && sudo apt upgrade -y
sudo apt install libxml2 libsdl2-dev libx264-dev libx265-dev libvpx-dev -y
echo Downloading libvvdec...
cd ~/Downloads
git clone https://github.com/fraunhoferhhi/vvdec.git
cd vvdec
make install install-prefix=/usr/local
cd ../
echo Downloading FFmpeg with VVC support
git clone https://github.com/lehmann-c/FFmpeg.git
cd FFmpeg
./configure --enable-libvvdec --enable-pic --enable-libxml2 --enable-libx264 --enable-libx265 --enable-libvpx && make -j
echo You're ready to preview VVC, view VVC information or convert from VVC using ffmpeg, ffplay and ffprobe.
echo - Martin Eesmaa

View File

@ -6,18 +6,18 @@ Note to Mac and Linux of o266player VLC: Sorry Mac and Linux users :(, here is a
On macOS 10.15.6, I tried build, but it failed, you can have a look for Stack Overflow: [Link](https://stackoverflow.com/questions/70387126/error-1-and-2-trying-to-compile-vlc-o266player-missing-git-and-txt).
On Linux, it doesn't support VLC (o266player build).
If you want to run VLC (o266player version), you need to run Windows only for a virtual machine or a real computer.
On Linux, it doesn't support of VLC (o266player build).
If you want to run VLC (o266player version), you need to run Windows only for a virtual machine or your a real computer.
Windows | Compatibility (only x64) | Screenshot | Date report (DD/MM/YYYY, 24hr)
------- | ------- | --------------- | ------------- |
Windows 2000/ME or older | :x: (Cannot run custom build) | [Link](https://i.imgur.com/hHnh5Cx.png) | 19/02/2022 18:35:34 (AEDT)
Windows XP | ⚠️ (Terminal only, GUI is not working) | [Link](https://i.imgur.com/v3jMW3d.png) | 11/12/2021 15:18:29 (AEDT)
Windows Vista | :white_check_mark: (All checked)
Windows Vista | ⚠️ (GUI Works, but VVC won't show video)
Windows 7 | :white_check_mark: (All checked) | [Link](https://i.imgur.com/4cANwDQ.png) | 17/12/2021 21:32:38 (AEDT)
Windows 8.0 | :white_check_mark: (All checked) | [Link](https://i.imgur.com/cl8qASz.png) | 20/02/2022 15:27:40 (AEDT)
Windows 8.0 | ⚠️ (GUI Works, but VVC won't show video) | [Link](https://i.imgur.com/cl8qASz.png) | 20/02/2022 15:27:40 (AEDT)
Windows 8.1 | :white_check_mark: (All checked) | [Link](https://i.imgur.com/1Fe6xGW.png) | 17/12/2021 18:23:35 (AEDT)
Windows 10 | :white_check_mark: (All checked)
Windows 10 | ⚠️ (GUI Works, but VVC won't show video)
Windows 11 | :white_check_mark: (All checked) | [Link](https://i.imgur.com/Me2L998.png) | 13/12/2021 15:58:55 (AEDT)
Windows Server | Compatibility (only x64) | Screenshot | Date report (DD/MM/YYYY, 24hr)
@ -26,22 +26,17 @@ Windows Server 2003 | ⚠️ (Terminal only, GUI is not working) | [Link](https:
Windows Server 2008 | ⚠️ (GUI Works, but VVC won't show video) | [Link](https://i.imgur.com/GXFgIt8.png) | 20/02/2022 14:02:28 (AEDT)
Windows Server 2012 | :white_check_mark: (All checked) | [Link](https://i.imgur.com/Vcgag8B.png) | 17/12/2021 20:57:16 (AEDT)
Windows Server 2016 | :white_check_mark: (Already checked by Tencent Cloud)
Windows Server 2019 | :white_check_mark: (All checked)
Windows Server 2022 | :white_check_mark: (All checked)
Windows Server 2019 | :black_square_button: (Needs to be tested)
Windows Server 2022 | :black_square_button: (Needs to be tested)
VLC Custom build of o266player only accepts to run 64-bit / x64 on your computer. 32-bit / x86 won't work.
This cannot be run on Windows Vista / Windows Server 2008 or older and Windows 8.0 to play VVC video file of VLC Custom build.
***IMPORTANT: o266player closed source decoder commits built to .DLL/.dylib are expired since 1st February 2022 to disable showing VVC video. MP4 Mixed with VVC is unplayable showing.***
This cannot be run on Windows Vista / Windows Server 2008 or older and Windows 8.0 to play VVC video file of VLC Custom build.
Note: I'm trying to work it out of VLC 3.0.16.
Reminder: Some operating systems are working to load VVC video format in Virtual Machine software, but real machines will work every operating system, for example Windows Server 2016 has already been tested by Tencent Cloud.
Reminder: Some operating systems are working to load VVC video format in Virtual Machine softwares, but real machines will work every operating system, example Windows Server 2016 has already been tested by Tencent Cloud.
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)
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.
![VLC Media Player (VVC test)](https://user-images.githubusercontent.com/88035011/145756567-d156f630-9e7f-4042-99b5-6ffe8a6b4b64.png)
- Martin Eesmaa
- Martin Eesmaa

View File

@ -0,0 +1,66 @@
{
"format": 1,
"restore": {
"C:\\Users\\marti\\source\\repos\\VVCEasy\\VVCEasy\\VVCEasy.csproj": {}
},
"projects": {
"C:\\Users\\marti\\source\\repos\\VVCEasy\\VVCEasy\\VVCEasy.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\marti\\source\\repos\\VVCEasy\\VVCEasy\\VVCEasy.csproj",
"projectName": "VVCEasy",
"projectPath": "C:\\Users\\marti\\source\\repos\\VVCEasy\\VVCEasy\\VVCEasy.csproj",
"packagesPath": "C:\\Users\\marti\\.nuget\\packages\\",
"outputPath": "C:\\Users\\marti\\source\\repos\\VVCEasy\\VVCEasy\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\marti\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.101\\RuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\marti\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.0.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\marti\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

72
obj/project.assets.json Normal file
View File

@ -0,0 +1,72 @@
{
"version": 3,
"targets": {
"net6.0": {}
},
"libraries": {},
"projectFileDependencyGroups": {
"net6.0": []
},
"packageFolders": {
"C:\\Users\\marti\\.nuget\\packages\\": {},
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\marti\\source\\repos\\VVCEasy\\VVCEasy\\VVCEasy.csproj",
"projectName": "VVCEasy",
"projectPath": "C:\\Users\\marti\\source\\repos\\VVCEasy\\VVCEasy\\VVCEasy.csproj",
"packagesPath": "C:\\Users\\marti\\.nuget\\packages\\",
"outputPath": "C:\\Users\\marti\\source\\repos\\VVCEasy\\VVCEasy\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\marti\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.101\\RuntimeIdentifierGraph.json"
}
}
}
}

8
obj/project.nuget.cache Normal file
View File

@ -0,0 +1,8 @@
{
"version": 2,
"dgSpecHash": "WbFYV8fBnNlVfr+NRbXghaKnGfEHWanrZQqLeGD8y6DLIYfJ2JLipeqlPP64QCsGFpfbeY8OvnTCGBRpDXqOCg==",
"success": true,
"projectFilePath": "C:\\Users\\marti\\source\\repos\\VVCEasy\\VVCEasy\\VVCEasy.csproj",
"expectedPackageFiles": [],
"logs": []
}

20
openvvc.sh Normal file
View File

@ -0,0 +1,20 @@
#!/bin/bash
sudo apt update && sudo apt upgrade -y
echo Downloading OpenVVC...
cd ~/Downloads
mkdir OpenVVC && cd OpenVVC
git clone https://github.com/OpenVVC/OpenVVC.git
echo Configuring, making and installing of OpenVVC on your computer...
cd OpenVVC
./configure && make && sudo make install
cd ../
echo Downloading FFmpeg with OpenVVC support...
git clone https://github.com/OpenVVC/FFmpeg.git
cd FFmpeg
echo Configuring and making of FFmpeg with OpenVVC support...
echo One more thing to do is type code to finish it:
echo export LD_LIBRARY_PATH=~/Downloads/OpenVVC/OpenVVC/install/lib
echo export PKG_CONFIG_PATH=~/Downloads/OpenVVC/OpenVVC/install/lib/pkgconfig
echo ./configure && make -j
echo Once you typed code, you're ready to preview VVC, view VVC information or convert from VVC using ffmpeg, ffplay and ffprobe.
echo - Martin Eesmaa

Binary file not shown.

View File

@ -1,2 +0,0 @@
7b5bfd73d2566bea76d5c077421bd665b246cb70b4c30bac3801ccda5bc85ef9 uvg266
78051e259d96ffb1a246569d7cb773508565023b357d233bec296100a3fe9217 uvg266-BSD.7z

Binary file not shown.

View File

@ -1,5 +0,0 @@
7e38cf5433b3095decfa9ec31b89bc6325ebbbd43dc9c73f9875096b055e5d75 arm64/uvg266
1f8e7d641722ca3cc32261d64ffcd103aac1384f9b5025f721aa228c9ac417bd armv7/uvg266
73bca054ef49f5a2fd3bae68fc7899883cbfb601c1aa3682d7720686f4869acc uvg266-Linux.7z
8c90222561094513178e4ad28e63d85f78b02e9429453ae1ca5f6ddebe8869a8 x64/uvg266
ab636fa27c6c3bb8eb3b4cecc1959c166967b55ccd9e0b176c66700d7d20f36b x86/uvg266

Binary file not shown.

View File

@ -1,3 +0,0 @@
599936327fc7c308aa492949bab4504a5dee05d84c76276a0563bd560c4111c5 uvg266-Windows.7z
3ff834f328307e457484a0625c134c06e18a63b6735cfb1a63d0b664eb53bc56 Win32/uvg266.exe
10f33345551b54e65f6009fff265d449092013c77e0deab5e37c7279817ba59e x64/uvg266.exe

Binary file not shown.

View File

@ -1,3 +0,0 @@
aa17dd72cc10193ca4930663f615856378d92a3c29bb398745e2aacb705408b7 arm64/uvg266
fe8fa64a86aca949e939f5864062a9458fb4da18f3d50f92798c5b7d2cef5967 intel_x64/uvg266
de7e38cc93e594ba5350907dbcf9b3918368a85e7879f2fc2b5741d7edd7b5e0 uvg266-macOS.7z

View File

@ -7,14 +7,14 @@ 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 /Home/Downloads/
git clone https://github.com/fraunhoferhhi/vvenc.git
git clone https://github.com/fraunhoferhhi/vvdec.git
cd vvenc
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-static" .. && make
cd ../../
make release
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
make release
cd ../
echo Please see the build files following starting with vvenc/bin/release-shared
pause

View File

@ -2,18 +2,14 @@
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 /Home/Downloads/
git clone https://github.com/fraunhoferhhi/vvenc.git
git clone https://github.com/fraunhoferhhi/vvdec.git
cd vvenc
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . -j $nproc
make release
cd ../
cd vvdec
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . -j $nproc
make release
cd ../
echo Please see the build files following starting with bin/release-static
echo Please see the build files following starting with vvenc/bin/release-shared
pause

View File

@ -27,7 +27,7 @@ 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 Yes means build. No means it will exit.
echo Y/N?
set /p main1234= Answer:
if %main1234% == Y goto installmain123
@ -40,13 +40,13 @@ 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
git clone https://github.com/fraunhoferhhi/vvenc.git
git clone https://github.com/fraunhoferhhi/vvdec.git
cd vvenc
mkdir build && cd build
cmake ..
cmake --build . --config Release
cd ../bin/release-static
cd ..\bin\release-static
explorer .
cd ../../../
cd vvdec

BIN
wget.exe

Binary file not shown.