mirror of
https://github.com/MartinEesmaa/VVCEasy.git
synced 2025-06-05 21:59:20 +02:00
Compare commits
234 Commits
alpha-(v.0
...
v.0.9.0
Author | SHA1 | Date | |
---|---|---|---|
a09fed7ac0 | |||
149151817d | |||
2c7a5ee2fd | |||
fa7935c674 | |||
24fcda99e8 | |||
b386e6b394 | |||
8b66900f3e | |||
3d7abf2fe2 | |||
de45fb1d1f | |||
5a5fd66aae | |||
d646d397e1 | |||
d2ab403b09 | |||
4152d2b687 | |||
f1dbbd6b0f | |||
d669a87a3f | |||
6d9b45db48 | |||
2c2f8ff29c | |||
40686abc7e | |||
336ef3b0b6 | |||
e72177a508 | |||
e33dc5b29f | |||
1c4db07ce9 | |||
8408b41a8c | |||
34fa72347d | |||
5e6e9a06c3 | |||
43b8445839 | |||
6ea6f7ac47 | |||
9b24ce70a1 | |||
ffd480741c | |||
3a9be77e8a | |||
886983a399 | |||
1179e44648 | |||
499cc738b4 | |||
33d9e45383 | |||
5ceebac52a | |||
4f6f0f8a7a | |||
055782d0ee | |||
94c46a866d | |||
935864b349 | |||
9f73d1cd3b | |||
7cfb6a1b2c | |||
6392235e49 | |||
5556b8cf7a | |||
3b62fe78d7 | |||
4196fa2488 | |||
44c13e8c71 | |||
e46f477bb9 | |||
351d557477 | |||
970ee2c981 | |||
6771c8ae93 | |||
d5ef45dc87 | |||
1559726c03 | |||
8b1e08574c | |||
8e8dabf7b9 | |||
c13decd7af | |||
c8e5257bbd | |||
560d86bf04 | |||
6b97019441 | |||
af35ce44ce | |||
04a3747e8f | |||
a5c064df75 | |||
42783bb9dd | |||
36c2a34cd4 | |||
6d20aeadd3 | |||
907a57e095 | |||
edcd7d0821 | |||
a447573ad0 | |||
1cadbbcaf4 | |||
949c1026c2 | |||
d9c8d18c6b | |||
40b7d198e6 | |||
ce79ae26d6 | |||
4322090b0b | |||
f3d945fd13 | |||
4b2204bf77 | |||
fcad744a70 | |||
31a708f03d | |||
985d8109e8 | |||
6649af1a9d | |||
3a2bd88916 | |||
db9995454a | |||
17464f612c | |||
57e0593f2f | |||
123bba687d | |||
7d6cd5b918 | |||
93de8d3bf9 | |||
ee7b5301ad | |||
686cbe2eee | |||
ca0382c870 | |||
3674d21327 | |||
72d9bca3f6 | |||
3b062932df | |||
ab7eb05ef3 | |||
71c9334cd2 | |||
f30ed9de9c | |||
5afee29fe6 | |||
7fda1de5a4 | |||
65dbef55f4 | |||
907001821e | |||
7d6165a09f | |||
cfd59c6324 | |||
bf71f7c122 | |||
92e9a111b3 | |||
9553a2ae65 | |||
f25795fa86 | |||
5145f0fc26 | |||
c3d72e127c | |||
63cb51c6a8 | |||
44316ec827 | |||
628299b837 | |||
4f8feda014 | |||
291ef25881 | |||
d96a88b62d | |||
df86ec8703 | |||
aa92c854d0 | |||
d7b5a4d757 | |||
8e724a1a10 | |||
8c990c82df | |||
9b17b2109d | |||
4abbc54f41 | |||
ad108a0dd1 | |||
b4247ff6f8 | |||
1a709ca8ef | |||
7af53b6eed | |||
7226aa7c8c | |||
6ab2574379 | |||
c929268580 | |||
a8411a7401 | |||
e28e84fefd | |||
4ae407986a | |||
3b5cebea9c | |||
aa2ceecdb6 | |||
750c9c6698 | |||
35ccda9b1f | |||
8b95ddf7d6 | |||
eb30ed6f48 | |||
8d7e647e02 | |||
ff3c52948d | |||
54afd8b2e6 | |||
a1df759e30 | |||
91751100ea | |||
3d0ce59341 | |||
f75ab34221 | |||
e266c88e7d | |||
f2f8b4ea80 | |||
0807ac0528 | |||
7a10274f64 | |||
58db0d5833 | |||
fb8871958e | |||
113add1d68 | |||
b14b025078 | |||
0ae25fe6ba | |||
365827ace0 | |||
1990cc4f9b | |||
e271f2adb7 | |||
32f20288fc | |||
2aa7efc460 | |||
0065a08eb6 | |||
6c95438dc1 | |||
1ec8fd07ad | |||
a43b508a22 | |||
c0761f508c | |||
1960ea2ceb | |||
2f170934e3 | |||
ef183ebf74 | |||
8d3dc26399 | |||
06ad24ae68 | |||
c6f22468ac | |||
582b4435d0 | |||
666efa5297 | |||
d0a8afa243 | |||
1b97f7e659 | |||
fcd688e043 | |||
5602a4d563 | |||
2c7feb973d | |||
4a7622f57a | |||
42b633060c | |||
454057cb1e | |||
8a12ad43a0 | |||
8f97346c34 | |||
e7bc7df144 | |||
74eff64c67 | |||
1620e1059e | |||
ae3f5d53ba | |||
1a0f71a71e | |||
e83a312a78 | |||
5492abef00 | |||
f54c8038bf | |||
b79b9b93e7 | |||
4681606216 | |||
1e41347098 | |||
e9d5e79376 | |||
1a24d433c8 | |||
d1d055d391 | |||
9c931f476d | |||
860d7a3193 | |||
f10ceb3796 | |||
ade31cff92 | |||
78839ef1af | |||
79c3323774 | |||
6ce39edf33 | |||
49e4effdff | |||
472aec66d4 | |||
58ee795f66 | |||
67cd01e83a | |||
b86ab7a854 | |||
f5ce149e5b | |||
b32627b7d6 | |||
73d6999e37 | |||
b84fb1671a | |||
4a60f0dfc3 | |||
53f8d92dc4 | |||
c1ca531b5a | |||
6d6d13925a | |||
65e1f272dd | |||
9a591190b1 | |||
3750964a9e | |||
8969a339ef | |||
3f94dec185 | |||
dbaae4cbf4 | |||
8316f78aae | |||
2598deced5 | |||
25284150a4 | |||
4dc921ea8a | |||
307f7f22c9 | |||
e6f57a2bf6 | |||
79012fcf17 | |||
7f7b65656c | |||
524523e138 | |||
2c11d4479f | |||
a05c33ab29 | |||
fd5f28761d | |||
e8727bf50a | |||
f7abe663da |
25
.github/workflows/dotnet.yml
vendored
Normal file
25
.github/workflows/dotnet.yml
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
name: .NET
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: 6.0.x
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
- name: Build VVCEasy (.NET Console Version)
|
||||
run: dotnet build --no-restore
|
||||
- name: Test VVCEasy (.NET Console Version)
|
||||
run: dotnet test --no-build --verbosity normal
|
BIN
7-Zip/7z.dll
BIN
7-Zip/7z.dll
Binary file not shown.
BIN
7-Zip/7z.exe
BIN
7-Zip/7z.exe
Binary file not shown.
@ -1,6 +1,19 @@
|
||||
HISTORY of the 7-Zip
|
||||
--------------------
|
||||
|
||||
21.07 2021-12-26
|
||||
-------------------------
|
||||
- 7-Zip now can extract VHDX disk images (Microsoft Hyper-V Virtual Hard Disk v2 format).
|
||||
- New switches: -spm and -im!{file_path} to exclude directories from processing
|
||||
for specified paths that don't contain path separator character at the end of path.
|
||||
- In the "Add to Archive" window, now it is allowed to use -m prefix for "Parameters"
|
||||
field as in command line: -mparam.
|
||||
- The sorting order of files in archives was slightly changed to be more consistent
|
||||
for cases where the name of some directory is the same as the prefix part of the name
|
||||
of another directory or file.
|
||||
- TAR archives created by 7-Zip now are more consistent with archives created by GNU TAR program.
|
||||
|
||||
|
||||
21.06 2021-11-24
|
||||
-------------------------
|
||||
- The window "Add to Archive" now allows to set a limit on memory usage (RAM)
|
||||
@ -30,7 +43,7 @@ HISTORY of the 7-Zip
|
||||
New -shd{dir_path} switch to set the directory that is used to check files
|
||||
referenced by "file.sha256" file for "Test" operation.
|
||||
If -shd{dir_path} is not specified, 7-Zip uses the directory where "file.sha256" is stored.
|
||||
- New -xtd switch to exclude directory items from processing.
|
||||
- New -xtd switch to exclude directory metadata records from processing.
|
||||
|
||||
|
||||
21.03 beta 2021-07-20
|
||||
|
@ -1,4 +1,4 @@
|
||||
7-Zip 21.06
|
||||
7-Zip 21.07
|
||||
-----------
|
||||
|
||||
7-Zip is a file archiver for Windows.
|
||||
@ -12,7 +12,7 @@ The main features of 7-Zip:
|
||||
- Packing / unpacking: 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM.
|
||||
- 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, VMDK, XAR and Z.
|
||||
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
|
||||
|
3
AUTHORS.md
Normal file
3
AUTHORS.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Authors
|
||||
|
||||
* Martin Eesmaa, @MartinEesmaa, Embassy of Estonia in Australia
|
131
Bitmovin.md
Normal file
131
Bitmovin.md
Normal file
@ -0,0 +1,131 @@
|
||||

|
||||
|
||||
# Bitmovin VVDec Player (instructions of encode segments)
|
||||
|
||||
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.
|
||||
|
||||
To make probably decoded well for segments, here is an example of this:
|
||||
|
||||
Example of code (1 second/24 frames). After first segment (1 sec), it will go up 1 second (total frames 48):
|
||||
```
|
||||
vvencapp --qp 34 -i out.yuv -s 854x480 -r 24 --preset slow --threads 16 --tier high --segment mid -f 24 -fs 24 -o EXTREME-1.266
|
||||
```
|
||||
|
||||
First segment (first) will be beginning from video, 0 sec -> 1 sec. (segment-0.vvc)
|
||||
|
||||
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. Still not understand? Example of my segments, including log:
|
||||
|
||||
[Log file](https://pastebin.com/qrCyfDEU)
|
||||
|
||||
[VVC Segments](https://github.com/MartinEesmaa/VVCEasy/files/8308682/BBBVVCTHREESEC.zip)
|
||||
|
||||
JSON:
|
||||
```
|
||||
{
|
||||
"Name": "Big Buck Bunny Test Video Three Sec",
|
||||
"NrSegments": 2,
|
||||
"PlotMaxBitrate": 400000,
|
||||
"Renditions": [
|
||||
{
|
||||
"Name": "720p",
|
||||
"Resolution": "1280x720",
|
||||
"Fps": 24,
|
||||
"Url": "C:/Users/User/Downloads/BBBVVCTHREESEC/segment-%i.vvc"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
# Bitmovin VVDec Player Downloads (including build instructions):
|
||||
|
||||
[Windows Pre-Builded](https://www.dropbox.com/s/75ouoeadcr2cl53/BitVVDecPlayerWIN.7z)
|
||||
|
||||
[Mac OS Pre-Builded](https://www.dropbox.com/s/ilsoica7c8dh4hq/BitVVDecPlayerMAC.7z)
|
||||
|
||||
[Linux Pre-Builded](https://www.dropbox.com/s/bihm3pyh21lcvte/BitVVDecPlayerLINUX.7z)
|
||||
|
||||
Wanna build VVDec (.dll (Windows)/.dylib (Mac OS)/.so (Linux)) yourself?
|
||||
|
||||
Here is an code:
|
||||
|
||||
```
|
||||
git clone https://github.com/fraunhoferhhi/vvdec.git
|
||||
cd vvdec
|
||||
mkdir build && cd build
|
||||
cmake -DBUILD_SHARED_LIBS=1 ..
|
||||
cmake --build . --config Release
|
||||
```
|
||||
|
||||
The build files might be vvdec/bin/release-shared
|
||||
|
||||
Windows: vvdec.dll
|
||||
|
||||
Mac OS: libvvdec.dylib
|
||||
|
||||
Linux: libvvdecLib.so
|
||||
|
||||
***Note to Linux: If the file (.so) can't load into your Bitmovin VVDec Player. You have to rename libvvdec.so into libvvdecLib.so***
|
||||
|
||||
# System requirements
|
||||
|
||||
### Windows
|
||||
Operating System: Windows 7 / Windows Server 2012 and earlier versions
|
||||
|
||||
System type: x64
|
||||
|
||||
Requirements to run program: Microsoft Visual C++ Redistributable 2015-2017-2019-2022 and vvdec.dll
|
||||
|
||||
Internet required to download segments for Bitmovin streams
|
||||
|
||||
Offline availability for segments
|
||||
|
||||
---
|
||||
|
||||
### Mac OS
|
||||
Operating System: macOS 10.15 and earlier versions.
|
||||
|
||||
System type: x64
|
||||
|
||||
Requirements to run program: Qt framework (version 5) and libvvdec.dylib
|
||||
|
||||
Internet required to download segments for Bitmovin streams
|
||||
|
||||
Offline availability for segments
|
||||
|
||||
---
|
||||
|
||||
### Linux
|
||||
Operating System: Linux (Ubuntu 18.04 and earlier versions)
|
||||
|
||||
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
|
||||
|
||||
Offline availability for segments
|
||||
|
||||
# Bitmovin VVDec Player (Test compatability)
|
||||
|
||||
### Windows 7+:
|
||||
|
||||

|
||||
-------------------------
|
||||
### macOS 10.15+:
|
||||
|
||||

|
||||
-------------------------
|
||||
### Linux:
|
||||
|
||||

|
||||
-------------------------
|
||||
Tests will be come soon later.
|
||||
|
||||
- Martin Eesmaa
|
128
CODE_OF_CONDUCT.md
Normal file
128
CODE_OF_CONDUCT.md
Normal file
@ -0,0 +1,128 @@
|
||||
# Contributor Covenant Code of Conduct (Martin Eesmaa)
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the
|
||||
overall community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or
|
||||
advances of any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email
|
||||
address, without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
Martin Eesmaa.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series
|
||||
of actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or
|
||||
permanent ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within
|
||||
the community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.0, available at
|
||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||
enforcement ladder](https://github.com/mozilla/diversity).
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
90
FFMPEGVVC.md
Normal file
90
FFMPEGVVC.md
Normal file
@ -0,0 +1,90 @@
|
||||
# FFmpeg VVC decoder installation (Windows, Mac OS and Linux)
|
||||
|
||||
Windows, Mac and Linux (Preview of vvc video in ffplay):
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
# Limitations of FFmpeg VVC decoder
|
||||
|
||||
For Windows, Mac OS and Linux for preview without converting, you can do sample this, including audio support:
|
||||
|
||||
```
|
||||
ffmpeg_g -i example.266 -i example.opus -vcodec libx264 -acodec libopus -af adelay=1000 -f matroska - | ffplay_g -
|
||||
```
|
||||
|
||||
Or you can play vvc with audio support:
|
||||
|
||||
```
|
||||
ffplay_g -i convertedvvc.mp4
|
||||
```
|
||||
|
||||
### 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), 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:
|
||||
```
|
||||
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 (VVC decoder plugin compiled by Martin Eesmaa)
|
||||
|
||||
[Windows](https://mega.nz/file/e1MEUAwR#c7u7vDvwzp6JiSaRDwhCyOaH4cGnx1xQDPyKgbAd-qM)
|
||||
|
||||
[Mac OS](https://mega.nz/file/mxNTQTLb#1ifvaXap_a_cHLCIWZ-K5B0oKXvdHjgUc3Nb-YHFIio)
|
||||
|
||||
[Linux](https://mega.nz/file/T8l0GTqa#oWsDDrFYjzf3LhS9zRkuqqBz6H4yJmNQUNiu_erVQLo) (Only Ubuntu 20.04 build)
|
||||
|
||||
# Linux downloaders (Important note)
|
||||
|
||||
Unfortunately, this is Ubuntu 20.04 LTS built only.
|
||||
|
||||
Before you use FFmpeg, make sure you install all these requirements:
|
||||
|
||||
```
|
||||
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
|
||||
```
|
||||
|
||||
If compiled is success and finished, you can install FFmpeg, using the code:
|
||||
|
||||
```
|
||||
make install
|
||||
```
|
||||
|
||||
# Special thanks
|
||||
|
||||
VVC programmers of FFmpeg:
|
||||
|
||||
Original author: [@FFmpeg](https://github.com/FFmpeg) Repository: https://github.com/FFmpeg/FFmpeg
|
||||
|
||||
[@lehmann-c](https://github.com/lehmann-c) (Christian Lehmann) Repository: https://github.com/lehmann-c/FFmpeg
|
||||
|
||||
[@tbiat](https://github.com/tbiat) Repository: https://github.com/tbiat/FFmpeg
|
||||
|
||||
- Martin Eesmaa
|
54
INSTALLVLCPLUGIN/README.md
Normal file
54
INSTALLVLCPLUGIN/README.md
Normal file
@ -0,0 +1,54 @@
|
||||
# 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 (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.
|
||||
|
||||
Step 1: Copy libvtmdec.dll and libvvcdecoder_plugin.dll into your VLC Media Player folder following folder: VLC/plugins/codec
|
||||
|
||||
C:\Program Files\VideoLAN\VLC\plugins\codec
|
||||
|
||||
Step 2: Copy libvvctsdemux_plugin.dll into your VLC Media Player folder following: VLC/plugins/demux
|
||||
|
||||
C:\Program Files\VideoLAN\VLC\plugins\demux
|
||||
|
||||
Step 3: Enjoy and play your h266 file into your VLC Media Player :).
|
||||
|
||||
### For Linux users
|
||||
|
||||
Open terminal, type `sudo su` to gain root access, copy code:
|
||||
```
|
||||
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:
|
||||
```
|
||||
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:
|
||||
|
||||

|
||||
|
||||
### 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
|
||||
|
||||
Copy code following:
|
||||
```
|
||||
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"
|
||||
```
|
||||
|
||||
Note to VLC 4.0.0-dev users:
|
||||
|
||||
The VVC video file cannot loaded by newest version of VLC 4.0.0-dev, because it is nightly build and it's unstable.
|
||||
|
||||
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 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
|
BIN
INSTALLVLCPLUGIN/libvctsdemux_plugin.so
Normal file
BIN
INSTALLVLCPLUGIN/libvctsdemux_plugin.so
Normal file
Binary file not shown.
BIN
INSTALLVLCPLUGIN/libvtmdec.dll
Normal file
BIN
INSTALLVLCPLUGIN/libvtmdec.dll
Normal file
Binary file not shown.
BIN
INSTALLVLCPLUGIN/libvtmdec.so
Normal file
BIN
INSTALLVLCPLUGIN/libvtmdec.so
Normal file
Binary file not shown.
BIN
INSTALLVLCPLUGIN/libvvcdecoder_plugin.dll
Normal file
BIN
INSTALLVLCPLUGIN/libvvcdecoder_plugin.dll
Normal file
Binary file not shown.
BIN
INSTALLVLCPLUGIN/libvvcdecoder_plugin.so
Normal file
BIN
INSTALLVLCPLUGIN/libvvcdecoder_plugin.so
Normal file
Binary file not shown.
BIN
INSTALLVLCPLUGIN/libvvctsdemux_plugin.dll
Normal file
BIN
INSTALLVLCPLUGIN/libvvctsdemux_plugin.dll
Normal file
Binary file not shown.
BIN
INSTALLVLCPLUGIN/vvceasylinuxvlc.png
Normal file
BIN
INSTALLVLCPLUGIN/vvceasylinuxvlc.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 592 KiB |
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 Martin Eesmaa
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
BIN
LinuxVVC/LinuxVVC.7z
Normal file
BIN
LinuxVVC/LinuxVVC.7z
Normal file
Binary file not shown.
6
LinuxVVC/LinuxVVC.sha256
Normal file
6
LinuxVVC/LinuxVVC.sha256
Normal file
@ -0,0 +1,6 @@
|
||||
b6b00c32aae457d3c0f1742106eb629347e8aad297e19567430fe1ce299664c1 LinuxVVC.7z
|
||||
b55034464d869c9a0574ea85400b8a1c28626f0f78db1abca92bba761cd37cfc vvdecapp
|
||||
37d800140740b91db8b75ba56997b3bde6ee64f4efe7c3936d3ac8df7a09a762 vvencapp
|
||||
23efb4866a3fc959daa5f4f4b911414cbcebd2da07fd6807572183f42a90d273 vvencFFapp
|
||||
884ab4e1b438473842967aa1a78e280b92e0fb8f2c55b1108011a0a400b7c829 vvencinterfacetest
|
||||
e39176501602d6892f01f19083c56fc29f998aedd3255bbdd6da4f66eb170679 vvenclibtest
|
51
MPV.md
Normal file
51
MPV.md
Normal file
@ -0,0 +1,51 @@
|
||||

|
||||
|
||||
# MPV Android Player (OpenVVC support)
|
||||
|
||||
MPV Android Player (OpenVVC support) can play your VVC decoded video file.
|
||||
|
||||
Screenshot preview, see top-left information of toggle stats:
|
||||
|
||||

|
||||
|
||||
|
||||
# Download MPV Android Player (OpenVVC plugin)
|
||||
|
||||
[Android SDK 29 .APK Debug (Recommended)](https://mega.nz/file/K4FQFATS#7E6FmEOn9h3UIQLg0ZVb66_zItlHBT8DzT2qx5Zr23Q)
|
||||
|
||||
[Android SDK 29 .APK Release unsigned](https://mega.nz/file/Ch1AgJDD#f__m02qj0F8xkYTVY8o_BOUfZQkhtNkX1Y3fhKG8PKM)
|
||||
|
||||
[Android SDK 30 .APK Debug](https://mega.nz/file/v4shBToK#P8bBW70b5QG3SY4rqnz7DZaFq7vrXACmS9tHTWFHgqg)
|
||||
|
||||
[Android SDK 30 .APK Release unsigned](https://mega.nz/file/L1d0RCRA#JyGcjFRsVQNjo_y0j11_Kdx9oXapOt3fg87-RzppURg)
|
||||
|
||||
[Android .APK Debug Stable](https://mega.nz/file/H8kRUDBT#zWax2e1xxebrIZMmYPrmiWcbZBHnVAzAVZlY3EmuPnU)
|
||||
|
||||
# Limitations & Tips
|
||||
|
||||
This app might crash, slow or freeze on your Android phone for playing VVC high resolutions or/and old devices.
|
||||
|
||||
MPV Android OpenVVC App requires your system type of ARM64 (aarch64) and x86_64 to run on Android.
|
||||
|
||||
Android MPV Player doesn't work seek duration of VVC decoded file.
|
||||
|
||||
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)
|
||||
|
||||
If Google warns you, that Android MPV (OpenVVC plugin) app is malicious by Play Protect, press "Install anyway".
|
||||
|
||||
You can also play external sound audio file from VVC video codec file.
|
||||
|
||||
# SHA256 SUMS
|
||||
```
|
||||
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
|
||||
```
|
||||
|
||||
- Martin Eesmaa
|
BIN
MacOSVVC/MacOSVVC.7z
Normal file
BIN
MacOSVVC/MacOSVVC.7z
Normal file
Binary file not shown.
6
MacOSVVC/MacOSVVC.sha256
Normal file
6
MacOSVVC/MacOSVVC.sha256
Normal file
@ -0,0 +1,6 @@
|
||||
bd4df44d5aa6b472e57e6a3b6ed4e5d1ea6d6a8e4d51fb114a51a3153faa310c MacOSVVC.7z
|
||||
0387616bdeb26de30cd9b5465321cd7292fc40cd4b00975401d17e7c9f91effb vvdecapp
|
||||
32fa76374ed08be1f2b4b70676afca71cccf6ecb8d450d0233dc0adc11b08129 vvencapp
|
||||
db0e243caab9e242378f239c29a4a4c88babe81f94a0e8a78aaadb8a47a54850 vvencFFapp
|
||||
e4f68a7a67eb0bcc33009f301204515ed5a608b7684d77ab54659302daadfc6e vvencinterfacetest
|
||||
59159c71eb2d324b1f6f86a8c5daad877fdd8b47f732bdd863b8c0eee5795cd0 vvenclibtest
|
Binary file not shown.
Binary file not shown.
273
Program.cs
Normal file
273
Program.cs
Normal file
@ -0,0 +1,273 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Net;
|
||||
|
||||
namespace VVCEasy
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
public static void Main()
|
||||
{
|
||||
bool exit = false;
|
||||
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 Beta Version, v.0.9.0)");
|
||||
Console.WriteLine("Note: C# is not ready yet, malfunction mode\n");
|
||||
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();
|
||||
|
||||
if (input == "1")
|
||||
{
|
||||
encodestart:
|
||||
Console.Clear();
|
||||
Console.Title = "Encode to VVC";
|
||||
Console.WriteLine("Welcome to VVC encoder.\nWhat do you like encode to VVC?\nBefore we move to settings quality, is your video lossy or lossless?\n1. Lossy (example YouTube videos, Web videos, lossy compressed videos, and other webs)\n2. Lossless (example XIPH Media, Camera uncompressed (MOV/MP4/AVI), Apple ProRes and others uncompressed files)\n3. Go back to menu");
|
||||
|
||||
string input2 = Console.ReadLine();
|
||||
if (input2 == "1")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Lossy settings with Lossy compressed (VVC Encoder)";
|
||||
Console.WriteLine("Do you have YUV?\nIf you have YUV already, move your YUV file into C:/Program Files/VVCEasy/\nIf you do not have YUV, your instruction will go to next...\n1. I have YUV already (I am ready)\n2. No, I am not ready yet (go back to previous)\nIf you don't have Y4M already... you need transcode file from your lossy video file to YUV.\nExample: ffmpeg -i yourfile.mp4 -strict 1 yourfinal.yuv\n");
|
||||
|
||||
string input3 = Console.ReadLine();
|
||||
|
||||
if (input3 == "1")
|
||||
{
|
||||
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 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")
|
||||
{
|
||||
goto encodestart;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (input == "2")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Decode from VVC to YUV/Y4M";
|
||||
Console.WriteLine("Do you want to transcode back from VVC to YUV or Y4M? Which did you choose settings?\nChoosing settings will transcode back.\nYou need copy from your VVC file to C:/Program Files/VVCEasy/WindowsVVC/.\nWindows Explorer will open automatically.\nAfter copying your VVC file into VVCEasy folder, you need rename to VVC.vvc.\nIt will transcode from your VVC file to YUV/Y4M.\nAfter transcoding, your transcoded file should be: C:/Program Files/VVCEasy/transcodedback\nNote, if you are using portable, like you git cloned VVCEasy or downloaded source files, go to your Downloads folder and select VVCEasy.\nPortable won't work, you need move from your Downloads folder/VVCEasy into Program Files/VVCEasy.\n1. YUV (lossy video VVC)\n2. Y4M (lossless video VVC)");
|
||||
|
||||
string decodestart1 = Console.ReadLine();
|
||||
|
||||
if (decodestart1 == "1")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "STARTING TRANSCODING BACK FROM VVC TO YUV...";
|
||||
Console.Beep();
|
||||
Console.WriteLine("Sorry, this is currently maintenance of C#");
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (decodestart1 == "2")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "STARTING TRANSCODING BACK FROM VVC TO Y4M...";
|
||||
Console.Beep();
|
||||
Console.WriteLine("Sorry, this is currently maintenance of C#");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "3")
|
||||
{
|
||||
helpingvvc:
|
||||
Console.Clear();
|
||||
Console.WriteLine("Welcome to VVCEasy help instructions!\nHere is tutorial about... How to use VVCEasy?");
|
||||
Console.ReadLine();
|
||||
Console.WriteLine("Step 1: Run on VVCEasy.bat. When you see the screen of Welcome to VVCEasy. You can press any key continue to main menu.\nStep 2: Here are the list of main menus, that you need type any number will go to direction like (goto) command.\nStep 3: Follow the command instructions and that is easy.");
|
||||
Console.ReadLine();
|
||||
Console.WriteLine("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.\nDo you want to start over help instructions? If yes, then it will go back from beginning. If No, going to back menu. Y/N?");
|
||||
|
||||
string helper = Console.ReadLine();
|
||||
|
||||
if (helper == "Y")
|
||||
{
|
||||
goto helpingvvc;
|
||||
}
|
||||
}
|
||||
else if (input == "4")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Have a wonderful day!";
|
||||
Console.WriteLine("Have a wonderful day! Thank you for using VVCEasy. :)");
|
||||
Console.WriteLine(" _ _ _ \n | | | | | | \n | |_| |__ __ _ _ __ | | ___ _ ___ _ _ \n | __| '_ / / _` | '_ /| |/ / | | |/ _ /| | | |\n | |_| | | | (_| | | | | <| |_| | (_) | |_| |\n /__|_| |_|/__,_|_| |_|_|/_\\__, |/___/ /__,_|\n __/ | \n |___/\n\n\n __ ____ _______ ______ \n / / / // / / / ____| ____| \n / // / / // /| | | __| / _` / __| | | |\n / / / / | |____| |___| (_| /__ / |_| |\n // // /_____|______/__,_|___//__, |\n __/ |\n |___/ \n\n\n __ __ _ _ ______ \n | // | | | (_) | ____| \n | / / | __ _ _ __| |_ _ _ __ | |__ ___ ___ _ __ ___ __ _ __ _ \n | |//| |/ _` | '__| __| | '_ / | __| / _ // __| '_ ` _ / / _` |/ _` |\n | | | | (_| | | | |_| | | | | | |___| __//__ / | | | | | (_| | (_| |\n |_| |_|/__,_|_| /__|_|_| |_| |______/___||___/_| |_| |_|/__,_|/__,_|\nCopyright 2021-2022 Martin Eesmaa\n\nExiting program...");
|
||||
Thread.Sleep(5000);
|
||||
exit = true;
|
||||
}
|
||||
else if (input == "5")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "INSTALL/TEST PATH ENVIRONMENT";
|
||||
Console.WriteLine("Martin Eesmaa is testing your paths, that you installed programs in PATH. Not sure, what is path?\nYou can go here for link: https://stackoverflow.com/questions/4910721/python-on-cmd-path\nAlso you can also search What is PATH in Windows? in DuckDuckGo or SearX.\nAre you ready to test? (Y/N) or type I to install path environment.");
|
||||
|
||||
string readytestbefore = Console.ReadLine();
|
||||
|
||||
if (readytestbefore == "Y")
|
||||
{
|
||||
Console.Title = "Testing time...";
|
||||
Console.WriteLine("Sorry, it's malfunction mode in C#...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (readytestbefore == "I")
|
||||
{
|
||||
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();
|
||||
|
||||
if (installpath1 == "Y")
|
||||
{
|
||||
Console.Title = "INSTALLING 7-ZIP on your path environments...";
|
||||
Console.WriteLine("Sorry, it's malfunction mode in C#...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (input == "6")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "FFmpeg VVDec support";
|
||||
Console.WriteLine("Hello, would you like to download FFmpeg VVDec support? Y/N?");
|
||||
|
||||
string vlcinstall = Console.ReadLine();
|
||||
|
||||
if (vlcinstall == "Y")
|
||||
{
|
||||
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();
|
||||
}
|
||||
}
|
||||
else if (input == "7")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "ANACONDA";
|
||||
Console.WriteLine("Welcome to Anaconda Quick Install. This will only one task for ffmpeg. Would you like to install? Y/N?");
|
||||
|
||||
string anacondaman = Console.ReadLine();
|
||||
|
||||
if (anacondaman == "Y")
|
||||
{
|
||||
Console.WriteLine("SUCCESS, going to back menu...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "8")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "VVdec Web Player.";
|
||||
Console.WriteLine("By installing, you will have to agree to download VVDec Web Player from Fraunhoferhhi GitHub.\nSee the code of VVDEC Web Player: https://github.com/fraunhoferhhi/vvdecWebPlayer\nWhen 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.\nAfter all of that, we will run Python to start web server of your localhost port 8000.\nWould you like to install of VVDEC Web Player?");
|
||||
|
||||
string okletsdoit = Console.ReadLine();
|
||||
|
||||
if (okletsdoit == "Y")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "INSTALLING VVDEC WEB PLAYER...";
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.WriteLine("Sorry, the command is not ready yet...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "9")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "WindowsVVC.7z (decompressing)";
|
||||
Console.WriteLine("Decompressing...\nSorry, the command is not ready yet...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (input == "10")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Install vvDecPlayer from BitMovin";
|
||||
Console.WriteLine("Would you like to install?\nY/N?\n");
|
||||
|
||||
string installbitmovin = Console.ReadLine();
|
||||
|
||||
if (installbitmovin == "Y")
|
||||
{
|
||||
bitmovingotoinstall:
|
||||
Console.Title = "Installing vvDecPlayer from BitMovin...";
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin on your computer...\nWhich operating system are you using?\nWindows, Mac or Linux?\nType W for Windows\nType M for Mac\nType L for Linux");
|
||||
|
||||
string installbitmovin1 = Console.ReadLine();
|
||||
|
||||
if (installbitmovin1 == "W")
|
||||
{
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Windows...\nSorry, the C# console is not ready yet...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (installbitmovin1 == "M")
|
||||
{
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Mac OS...\nSorry, the C# console is not ready yet...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (installbitmovin1 == "L")
|
||||
{
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Linux...\nSorry, the C# console is not ready yet...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (installbitmovin1 == "Back")
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("You typed wrong input command, follow the commands instructions... type Back to go back menu...");
|
||||
goto bitmovingotoinstall;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (input == "11")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "VLC VTM Plugins Install (Windows & Linux)";
|
||||
Console.WriteLine("Welcome to VLC Media Player of VTM Plugins Installation.\nYou need to run Windows version of Windows Vista / Windows Server 2008 to play VVC files.\nWindows XP can't load VTM plugins, but other plugins work.\nSystem type only = x64\nLinux is now available, see Linux installation at: https://github.com/MartinEesmaa/VVCEasy/tree/master/INSTALLVLCPLUGIN#for-linux-users\nCurrent version = 3.0.17.4\nWould you like to install VTM plugins to your VLC Media Player? Y/N?");
|
||||
|
||||
string vtmvlcinstallnow1 = Console.ReadLine();
|
||||
|
||||
if (vtmvlcinstallnow1 == "Y")
|
||||
{
|
||||
Console.Title = "Installing of VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)";
|
||||
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("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "12")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Android MPV PLayer (OpenVVC support)";
|
||||
Console.WriteLine("See information MPV.md or online Github: https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md\nPress enter to go back menu.\n");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
while (exit == false);
|
||||
}
|
||||
}
|
||||
}
|
@ -1 +0,0 @@
|
||||
sudo apt install ffmpeg -y
|
400
README.md
400
README.md
@ -1,57 +1,195 @@
|
||||
# VVCEasy (Windows (Full), Mac and Linux (partial)
|
||||
VVCEasy is that you don't have to compile or/and coding to encode VVC (known as Versatile Video Codec). Simple. Easy. Encode. Decode
|
||||

|
||||

|
||||

|
||||
[](
|
||||
https://github.com/MartinEesmaa/VVCEasy/actions/workflows/dotnet.yml)
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
VVCEasy comes to one-easy of ffmpeg, vvenc, vvdec and YUView.
|
||||
# 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.
|
||||
|
||||
Installation: Go to releases and download latest version.
|
||||
VVCEasy comes to one-easy command of ffmpeg, VVC Tools, python, VLC o266player, VVDEC Web Player, Bitmovin VVDec Player, YUView, libvvdec and more.
|
||||
|
||||
VVCEasy is not yet finished. I'm trying to work with codes. I'm not good coding programming, just simple coding.
|
||||
Sorry to say that. I will give update, once I release news.
|
||||
Installation: Go to the releases and download latest version.
|
||||
|
||||
Windows source run: RUNVVCEASY.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.
|
||||
|
||||
Note to Mac and Linux of o266player VLC: Sorry Mac and Linux users :(, on macOS 10.15.6, I tried build, but it failed, you can have a look for Stack Overflow: https://bit.ly/3GTtNTJ
|
||||
On Linux, it won't support of VLC (o266player build).
|
||||
If you want to run VLC (o266player version), you have to run Windows only for virtual machine or your real computer.
|
||||
Windows source run (Batchfile): VVCEasy.bat
|
||||
|
||||
# Compatability Windows Operating System (VLC Media Player, o266player build version)
|
||||
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.
|
||||
|
||||
Windows Normal O.S. | x64 | x86 |
|
||||
------------- | ------------- | -------------
|
||||
Windows 7 SP1 | :white_check_mark: | ?
|
||||
Windows 8 | :white_check_mark: | ?
|
||||
Windows 8.1 | :white_check_mark: | ?
|
||||
Windows 10 | :white_check_mark: | ?
|
||||
Windows 11 | :white_check_mark: | ?
|
||||
Matrix chat: https://matrix.to/#/#vvceasy:matrix.org
|
||||
|
||||
Windows Server O.S. | x64 | x86 |
|
||||
------------- | ------------- | -------------
|
||||
Windows Server 2012 | :white_check_mark: | ?
|
||||
Windows Server 2016 | :white_check_mark: | ?
|
||||
Windows Server 2019 | :white_check_mark: | ?
|
||||
Windows Server 2022 | :white_check_mark: | ?
|
||||
Revolt: https://app.revolt.chat/server/01G1QSBZ4AMGDBWPVJ63EDZCD7/channel/01G1QSBZ4ABH7REMG6T47R8KS4
|
||||
|
||||
If any operating system is not listed, like Windows XP, this cannot be run on Windows Vista / Windows Server 2008 or older to play VVC of VLC custom build. I'll make sure update to VLC 3.0.16 possible, including VVC dll.
|
||||
Discord: https://discord.gg/t54cADTbWW
|
||||
|
||||
# All lists
|
||||
|
||||
- [Donate to Martin Eesmaa using cryptocurrency](#donate-to-martin-eesmaa-using-cryptocurrency)
|
||||
|
||||
- [VLC InterDigital VTM VVC Plugin](#vlc-interdigital-vtm-vvc-plugin)
|
||||
|
||||
- [VLC o266player](#vlc-o266player-windows-only-mac-os-will-be-later)
|
||||
|
||||
- [Bitmovin VVDec Player](#bitmovin-vvdec-player)
|
||||
|
||||
- [FFmpeg VVC Decoder support](#ffmpeg-vvdec-support)
|
||||
|
||||
- [MPV OpenVVC support (Android only)](#mpv-openvvc-support-android-only)
|
||||
|
||||
- [Compile for VVCEasy](#compile-for-vvceasy)
|
||||
|
||||
- [VVCEasy Batchfile Compile](#vvceasy-batchfile-version-optional-windows-only)
|
||||
|
||||
- [VVCEasy .NET Compile](#vvceasy-net-console-version-optional)
|
||||
|
||||
- [Encode/Decode easy](#encodedecode-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)
|
||||
|
||||
- [FAQ](#faq-known-as-frequently-asked-questions)
|
||||
|
||||
- [Credits & Licenses](#credits--licenses)
|
||||
|
||||
# Donate to Martin Eesmaa using cryptocurrency
|
||||
|
||||
- **BTC (BITCOIN):**
|
||||
```
|
||||
bc1qhf4zu5uythr7vyt2dru73qp0k2rzrx355fsx47yjxc2ueunz8frqxmwap3
|
||||
```
|
||||
- **XMR (MONERO):**
|
||||
```
|
||||
85Ahh93M88gV8ekymtYwb6TS14TZ36jNGTFgceaRH7hj8Rtx1qVB9PobnJLR5siz4nYBnzWy3pkV6KaVroifGMVh7n4br3J
|
||||
```
|
||||
- **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 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 my comparision of o266player version and VTM VVC plugins:
|
||||
|
||||
Top left and right is o266player by Tencent Cloud.
|
||||
|
||||
Bottom left and right is VLC VTM plugins by Inter Digital Inc.
|
||||
|
||||

|
||||
|
||||
***UPDATE of 19/04/2022 00:20 AEST:***
|
||||
|
||||
Bug of Inter Digital VTM VLC Plugin:
|
||||
|
||||
When you try to play your MPEG-TS or TS file, it will crash with your InterDigital VLC VTM Plugin installed on your VLC Media Player.
|
||||
|
||||
Without InterDigital VLC VTM Plugin, playing MPEG-TS or TS file will play fine in your all original plugins (except VLC VTM Plugin) on your VLC Media Player.
|
||||
|
||||
About o266player: Since o266player repository have no new commits than one year.
|
||||
|
||||
We will remove o266player list, if no new commits than one year.
|
||||
|
||||
# VLC o266player (Windows only, Mac OS will be later)
|
||||
|
||||
For more information about o266player.
|
||||
|
||||
See [o266player.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/o266player.md).
|
||||
|
||||
# Bitmovin VVDec Player
|
||||
|
||||
For more information about Bitmovin VVDec Player.
|
||||
|
||||
See [Bitmovin.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/Bitmovin.md).
|
||||
|
||||
# FFmpeg VVDEC support
|
||||
|
||||
FFmpeg VVC Decoder supports of Windows, Mac and Linux.
|
||||
|
||||
See [FFMPEGVVC.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md).
|
||||
|
||||
# MPV OpenVVC support (Android only)
|
||||
|
||||
MPV OpenVVC Decoder supports only of Android.
|
||||
|
||||
Only VVC file can play, but merged .mp4 is black screen, so you need external sound from vvc video codec, if necessary.
|
||||
|
||||
See [MPV.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md).
|
||||
|
||||
# Compile for VVCEasy
|
||||
|
||||
### VVCEasy Batchfile Version (optional) (Windows only)
|
||||
|
||||
First, before you compile to VVCEasy Batchfile Version, you need Inno Setup to compile VVCEasy.
|
||||
Inno Setup link: https://jrsoftware.org/isdl.php
|
||||
|
||||
Step 1: Clone VVCEasy git and open VVCEasy_compiler.iss
|
||||
```
|
||||
cd %userprofile%\Downloads
|
||||
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:
|
||||

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

|
||||
|
||||
---
|
||||
|
||||
### VVCEasy .NET Console Version (optional)
|
||||
|
||||
First, before you compile to VVCEasy .NET Console Version, you need .NET SDK x64 from Microsoft.
|
||||
Link: https://dotnet.microsoft.com/en-us/download
|
||||
|
||||
Step 1: Clone git and cd VVCEasy
|
||||
```
|
||||
git clone https://github.com/MartinEesmaa/VVCEasy.git && cd VVCEasy
|
||||
```
|
||||
|
||||
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 && dotnet test --no-build --verbosity normal
|
||||
```
|
||||
|
||||
Step 3: Once building is done, the build folder directory is bin/Debug
|
||||
```
|
||||
cd bin/debug
|
||||
```
|
||||
|
||||
*Tip: You can run VVCEasy without building.*
|
||||
```
|
||||
dotnet run
|
||||
```
|
||||
|
||||
# Encode/Decode (easy)
|
||||
|
||||
Before you run of RUNVVCEASY.bat or VVCEASY.exe, you need to change input from file name to 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 code.
|
||||
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
|
||||
- Martin Eesmaa
|
||||
|
||||
# Without VVCEasy, experimental option for professional coders, other developers and everyone (hard)
|
||||
# Without VVCEasy, experimental option for professional coders, other developers, and everyone (hard)
|
||||
|
||||
You need 7Zip (requires ffmpeg and ffplay), ffmpeg, ffplay, vvenc/vvdec(app) and YUView.
|
||||
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)
|
||||
VVENC/VVDEC:
|
||||
https://github.com/MartinEesmaa/VVCEasy/blob/main/VVC/vvencapp.exe
|
||||
https://github.com/MartinEesmaa/VVCEasy/blob/main/VVC/vvdecapp.exe
|
||||
FFMPEG/FFPLAY: https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z (go to bin folder and extract two files of ffmpeg and ffplay)
|
||||
VVENC/VVDEC (Windows, Mac and Linux):
|
||||
Windows: https://github.com/MartinEesmaa/VVCEasy/blob/master/WindowsVVC/WindowsVVC.7z
|
||||
Mac: https://github.com/MartinEesmaa/VVCEasy/tree/master/MacOSVVC/MacOSVVC.7z
|
||||
Linux: https://github.com/MartinEesmaa/VVCEasy/blob/master/LinuxVVC/LinuxVVC.7z
|
||||
|
||||
YUView:
|
||||
https://github.com/IENT/YUView/actions/runs/1365560321
|
||||
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):
|
||||
@ -59,61 +197,100 @@ In Command Prompt (Windows):
|
||||
```
|
||||
set PATH=%PATH%;C:\Users\blah\Downloads\VVCEasy\Executables
|
||||
```
|
||||
Verify using Windows Command Prompt:
|
||||
Verify path using Windows Command Prompt/Windows Terminal (CMD):
|
||||
```
|
||||
echo %PATH%
|
||||
path
|
||||
```
|
||||
|
||||
First of all:
|
||||
First:
|
||||
Transcode any video formats to YUV/Y4M
|
||||
|
||||
For YUV transcode:
|
||||
**We recommend that you use from video to yuv/y4m for pixel format YUV420P, because YUV420P is smaller size than YUV420P10.**
|
||||
|
||||
**VVENC only supports pixel formats of YUV420 (8-bit) and YUV420_10 (10-bit), otherwise it will corrupt after vvc encoding.**
|
||||
|
||||
For YUV transcode (lossy from web quality, YouTube videos and others):
|
||||
```
|
||||
ffmpeg -i input.mp4 -strict 1 inputtranscode.yuv
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p -strict 1 inputtranscode.yuv
|
||||
```
|
||||
|
||||
For Y4M transcode:
|
||||
For Y4M transcode (lossless from uncompressed video files, only 8 bit):
|
||||
```
|
||||
ffmpeg -i input.mp4 -strict 1 inputtranscode.y4m
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p -strict 1 inputtranscode.y4m
|
||||
```
|
||||
|
||||
Verify ffplay before encode with VVENC (replace video size, important otherwise it will not show correctly video, it's like scramble eggs):
|
||||
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 -f rawvideo -pixel_format yuv420p -video_size 854x480 -i inputtranscode.yuv
|
||||
ffplay -i inputtranscode.yuv -video_size 1280x720
|
||||
```
|
||||
Or replace -i inputtranscode.yuv with `-i inputtranscode.y4m` for y4m users. For yuv420p10 on your input video 10 bit, replace `-pixel_format yuv420p10`.
|
||||
|
||||
For easy to verify YUV/Y4M, use YUView, open your YUV or Y4M encoded, make sure video size, YUV format and frame rate same like from input video file (eg. MP4, AVI, MKV and others.
|
||||
Default pixel format of ffplay for yuv and y4m is yuv420p without `-pix_fmt` command.
|
||||
|
||||
After verifying correctly
|
||||
For y4m videos, replace `-i inputtranscode.yuv` with `-i inputtranscode.y4m`. For yuv420p10 on your input video 10 bit, add `-pix_fmt yuv420p10`.
|
||||
|
||||
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 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
|
||||
-s means video size, -r means frame per second and -o means output. Note: (Simple) as Default settings is YUV420P (8-bit)
|
||||
|
||||
Note to Apple Mac OS and Linux users: Command with `./vvencapp`
|
||||
**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.**
|
||||
|
||||
Encode with VVENC (Best settings, replace video size (-s), framerate (-r) and maximize threads of your cores (--threads), example)
|
||||
11.988 fps = `--fps 12000/1001`
|
||||
|
||||
14.985 fps = `--fps 15000/1001`
|
||||
|
||||
23.976 fps = `--fps 24000/1001`
|
||||
|
||||
29.970 fps = `--fps 30000/1001`
|
||||
|
||||
59.940 fps = `--fps 60000/1001`
|
||||
|
||||
The default of VVENC: 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 -i out.yuv -s 854x480 -r 30 --preset slow --threads 16 --tier high -o EXTREME.266
|
||||
vvencapp --qp 38 -i out.yuv -s 854x480 -r 30 -o vvc.266
|
||||
```
|
||||
|
||||
**NOTE: If you want have true lossless on your video, please visit [FFV1](http://ffv1.org) or H.264 Lossless video codec**
|
||||
|
||||
**NOTE 2: VVENC does not support lossless.**
|
||||
|
||||
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 Mac OS and Linux terminal users: Command with `./vvencapp`
|
||||
|
||||
For Windows Users using Windows PowerShell: Command with `.\vvencapp`
|
||||
|
||||
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 encoding YUV 10 bit to VVC file, add `-c yuv420_10` before you type ending 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.
|
||||
|
||||
After VVEnc, you can play in YUView develop version, unfortunately this should not work on release version of June.
|
||||
Drag any your video file of .h266, .266 or .vvc to play. YUView will play your video about only 10 seconds.
|
||||
Note to 8-bit Y4M users: It is only from input video (8-bit) to Y4M (8 bit)
|
||||
|
||||
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.
|
||||

|
||||
|
||||
If you are still not happy VVC, that you think this is too hard to encode and decode, or this cannot be played on VLC Media Player of VVC Video Codec, use AOMEDIA ONE that is recommended for most users for easily play VLC Media Player and others.
|
||||
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.
|
||||
|
||||
|
||||
|
||||
# Compatability results (VVENC AND VVDEC) TEST COMPLETED BY MARTIN EESMAA
|
||||
# Compatibility results (VVENC AND VVDEC) TESTED BY MARTIN EESMAA
|
||||
|
||||
Windows (vvencapp):
|
||||

|
||||
@ -124,20 +301,111 @@ Mac (./vvencapp):
|
||||
Linux (./vvencapp):
|
||||

|
||||
|
||||
|
||||
# FAQ (known as Frequently Asked Questions)
|
||||
|
||||
Are you real creator of VVCEasy?
|
||||
Yes... but I'm not creator of VVC, I didn't build VVC, so it was Fraunhofer built VVC.
|
||||
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 yeah... 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 only one.
|
||||
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 proof screenshots of my errors?
|
||||
I allow you to bring error screenshots, you can bring proof. More proofs, more easy to solve it.
|
||||
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.
|
||||
|
||||
My question is not listed on FAQ. Can I ask any question?
|
||||
Sure, just go to Issues tab and ask questions or give it issue to me.
|
||||
Sure, just go to Issues tab, ask questions or/and give your issue to me.
|
||||
|
||||
If you have any questions or any issues, please go to Issues tab and create your issue.
|
||||
- Martin Eesmaa
|
||||
Do you know what you have skills in your programming?
|
||||
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
|
||||
- Martin Eesmaa
|
||||
|
||||
# Credits & Licenses
|
||||
|
||||
[VVCEasy](https://github.com/MartinEesmaa/VVCEasy) - VVCEasy is easy VVC, that no need compile.
|
||||
|
||||
License: MIT
|
||||
|
||||
© 2021-2022 [Martin Eesmaa](https://github.com/MartinEesmaa) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[Versatile Video Encoder](https://github.com/fraunhoferhhi/vvenc) - Fraunhofer Versatile Video Encoder (VVenC)
|
||||
|
||||
[Versatile Video Decoder](https://github.com/fraunhoferhhi/vvdec) - Fraunhofer Versatile Video Encoder (VVdeC)
|
||||
|
||||
[Versatile Video Decoder Web Player](https://github.com/fraunhoferhhi/vvdecWebPlayer) - A minimal proof-of-concept VVC player for the web using WebAssembly
|
||||
|
||||
License: Clear BSD (two repositories of vvenc & vvdec) + BSD (vvdecWebPlayer)
|
||||
|
||||
© 2018-2022, Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. & The VVC Authors. (All rights reserved)
|
||||
|
||||
GitHub: [Fraunhoferhhi](https://github.com/fraunhoferhhi)
|
||||
|
||||
---
|
||||
|
||||
[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 (both repositories)
|
||||
|
||||
© 2020-2021 [Tencent Cloud](https://github.com/TencentCloud) (All rights reserved)
|
||||
|
||||
© 2000-2022 [VLC Media Player](https://code.videolan.org/) Developers (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[BitMovin Versatile Video Decoder Player](https://github.com/bitmovin/vvDecPlayer) - BitMovin VVDecPlayer
|
||||
|
||||
License: MIT
|
||||
|
||||
© 2021-2022 [Christian Feldmann](https://github.com/ChristianFeldmann) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[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: [lehmann-c](https://github.com/lehmann-c) and [tbiat](https://github.com/tbiat)
|
||||
|
||||
License: LGPL-2.1+ & GPL-2.0+
|
||||
|
||||
© 2000-2022 [FFmpeg developers](https://github.com/FFmpeg) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[mpv-android](https://github.com/mpv-android/mpv-android) - #mpv-android @ libera.chat
|
||||
|
||||
VVC developer & forker: [tbiat](https://github.com/tbiat) & [Martin Eesmaa](https://github.com/MartinEesmaa/mpv-android-vvc)
|
||||
|
||||
License: MIT
|
||||
|
||||
© 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)
|
||||
|
||||
---
|
||||
|
||||
[GPAC/MP4BOX](https://github.com/gpac/gpac) - Modular Multimedia framework for packaging, streaming and playing your favorite content.
|
||||
|
||||
License: LGPL-2.1
|
||||
|
||||
© 2003-2022 [Jean Le Feuvre](https://github.com/jeanlf) & [GPAC developers/contributors](https://github.com/gpac/gpac/graphs/contributors)
|
||||
|
158
RUNVVCEasy.bat
158
RUNVVCEasy.bat
@ -1,158 +0,0 @@
|
||||
echo off
|
||||
cd /d "%~dp0"
|
||||
cls
|
||||
title Martin Eesmaa / VVCEasy
|
||||
echo MARTIN EESMAA / VVCEasy
|
||||
echo Welcome to VVCEasy. (Alpha version, v.0.0.1)
|
||||
pause
|
||||
goto start
|
||||
|
||||
:start
|
||||
title Martin Eesmaa / VVCEasy
|
||||
color 07
|
||||
cls
|
||||
echo What do you like to do for encode/decode VVC?
|
||||
echo 1. Encode (construction)
|
||||
echo 2. Decode (construction)
|
||||
echo 3. Help (construction)
|
||||
echo 4. Exit
|
||||
echo 5. Test benchmark (construction)
|
||||
echo 6. Install VLC Media Player (o266player, Windows x64)
|
||||
echo 7. Install quickly through Anaconda for ffmpeg (Windows)
|
||||
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 vlc
|
||||
if %VVCSTART% == 7 goto conda
|
||||
|
||||
:encodestart
|
||||
title Encode
|
||||
cls
|
||||
echo Welcome to VVC encoder.
|
||||
echo What do you like to make VVC encode?
|
||||
echo 1. Default settings
|
||||
echo 2. Best settings
|
||||
echo 3. Go back to menu
|
||||
set /p goodvvcenc=Number:
|
||||
if %goodvvcenc% == 1 goto defaultvvcenc1
|
||||
if %goodvvcenc% == 2 goto bestvvcenc1
|
||||
if %goodvvcenc% == 3 goto start
|
||||
|
||||
:defaultvvcenc1
|
||||
title Did you encode to YUV/Y4M?
|
||||
echo Okay, did you encode to YUV/Y4M?
|
||||
echo 1. Yes (YUV)
|
||||
echo 2. Yes (Y4M)
|
||||
echo 3. No
|
||||
set /p encoderyu4m=Number:
|
||||
if %encoderyu4m% == 1 goto YUVdefaultsetting
|
||||
if %encoderyu4m% == 2 goto Y4Mdefaultsetting
|
||||
if %encoderyu4m% == 3 goto nextoptionsetting
|
||||
|
||||
:test
|
||||
cls
|
||||
title TEST BENCHMARK
|
||||
echo Martin Eesmaa is testing your benchmark for two settings between default and best settings.
|
||||
echo Are you ready to test? (Y/N)
|
||||
set /p readytestbefore=Answer:
|
||||
if %readytestbefore% == Y goto nowtestingtime
|
||||
if %readytestbefore% == N goto start
|
||||
if %readytestbefore% == y goto nowtestingtime
|
||||
if %readytestbefore% == n goto start
|
||||
|
||||
:nowtestingtime
|
||||
title Testing time...
|
||||
cd /d "%~dp0"
|
||||
cd 7-Zip
|
||||
|
||||
:exit
|
||||
cls
|
||||
title Have a nice day!
|
||||
echo Have a nice day! :)
|
||||
::: _ _ _
|
||||
::: | | | | | |
|
||||
::: | |_| |__ __ _ _ __ | | ___ _ ___ _ _
|
||||
::: | __| '_ \ / _` | '_ \| |/ / | | |/ _ \| | | |
|
||||
::: | |_| | | | (_| | | | | <| |_| | (_) | |_| |
|
||||
::: \__|_| |_|\__,_|_| |_|_|\_\\__, |\___/ \__,_|
|
||||
::: __/ |
|
||||
::: |___/
|
||||
|
||||
for /f "delims=: tokens=*" %%A in ('findstr /b ::: "%~f0"') do @echo(%%A
|
||||
echo Copyright 2021 Martin Eesmaa
|
||||
echo ------------END----------------
|
||||
timeout 5 /nobreak
|
||||
exit
|
||||
|
||||
:vlc
|
||||
color 6F
|
||||
title VLC Media Player (custom build of o266player)
|
||||
cls
|
||||
echo Hello, would you like to install VLC Media Player (v3.0.11.1 Vetinari, custom build of o266player) on your computer?
|
||||
echo Before you install...
|
||||
echo The VLC Media Player (custom build of o266player) works only on Windows 11, Windows 10, Windows 8.1, Windows 8, Windows 7 SP1, Windows Server 2022, Windows Server 2019, Windows Server 2016 and Windows Server 2012.
|
||||
echo Windows XP and older versions won't work, because it could be terminal error or/and cannot decode format.
|
||||
echo You need to run 64-bit / x64. On 32-bit / x86, it won't work.
|
||||
echo Install? Y/N?
|
||||
set /p vlcinstall=Answer:
|
||||
if %vlcinstall% == Y goto vlcinstaller
|
||||
if %vlcinstall% == N goto start
|
||||
if %vlcinstall% == y goto vlcinstaller
|
||||
if %vlcinstall% == n goto start
|
||||
|
||||
:vlcinstaller
|
||||
wget https://www.dropbox.com/s/hs7yoa9hkxa6ugd/vlc-3.0.11.1-w64.7z
|
||||
mkdir VLC
|
||||
copy 7-Zip VLC
|
||||
move vlc-3.0.11.1-w64.7z VLC
|
||||
cd VLC
|
||||
del /q readme.txt
|
||||
del /q license.txt
|
||||
del /q History.txt
|
||||
7z x vlc-3.0.11.1-w64.7z
|
||||
del /q 7z.dll
|
||||
del /q 7z.exe
|
||||
del /q vlc-3.0.11.1-w64.7z
|
||||
cd ../
|
||||
color 6E
|
||||
cls
|
||||
echo SUCCESSFUL! Now, would you like to download test sample VVC file test it out to VLC custom build of o266player?
|
||||
echo If Yes, wget will download the example of VVC file and run to VLC a few seconds.
|
||||
echo If No, you will be prompted go back to menu.
|
||||
echo TIP: Run VLC.exe on your own VVC file for example, if your input frame rate is 30 and you encoded to VVC same frame rate input file.
|
||||
echo Example to run correctly frame rate on your VVC: vlc.exe yourownfile.266 --no-drop-late-frames --avformat-fps=30
|
||||
set /p vlccompleted=Answer:
|
||||
if %vlccompleted% == Y goto sample266
|
||||
if %vlccompleted% == N goto start
|
||||
if %vlccompleted% == y goto sample266
|
||||
if %vlccompleted% == n goto start
|
||||
|
||||
:sample266
|
||||
color 07
|
||||
wget https://www.dropbox.com/s/zp8b3xg0b5p1pwe/VVCEasy.266
|
||||
move VVCEasy.266 VLC
|
||||
cd VLC
|
||||
vlc.exe VVCEasy.266 --no-drop-late-frames --avformat-fps=24
|
||||
cd ../
|
||||
echo OK! Test completed!
|
||||
timeout 5
|
||||
goto start
|
||||
|
||||
:conda
|
||||
cls
|
||||
title ANACONDA
|
||||
echo Welcome to Anaconda Quick Install. This will only one task for ffmpeg. Would you like to install? Y/N?
|
||||
set /p anacondaman=
|
||||
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 menu...
|
||||
pause
|
||||
goto start
|
17
SOCIALMEDIA.md
Normal file
17
SOCIALMEDIA.md
Normal file
@ -0,0 +1,17 @@
|
||||
# Martin Eesmaa's social media links
|
||||
|
||||
YouTube: https://www.youtube.com/channel/UC8uLpZMsXjU3G3etHj4rr1Q
|
||||
|
||||
Reddit: [u/MartinEesmaa](https://reddit.com/u/MartinEesmaa)
|
||||
|
||||
Pastebin: https://pastebin.com/u/MartinEesmaa
|
||||
|
||||
Github: [MartinEesmaa](https://github.com/MartinEesmaa)
|
||||
|
||||
Gitlab: [MartinEesmaa](https://gitlab.com/MartinEesmaa)
|
||||
|
||||
LinkedIn: https://www.linkedin.com/in/martin-eesmaa-4b355587/
|
||||
|
||||
Wikipedia: [MartinHero13](https://en.wikipedia.org/wiki/User:MartinHero13)
|
||||
|
||||
- Martin Eesmaa
|
11
THANKS.md
Normal file
11
THANKS.md
Normal file
@ -0,0 +1,11 @@
|
||||
# Thanks for recommending my VVCEasy software!
|
||||
|
||||
See the lists:
|
||||
|
||||
- ¡Gracias, TRASTARO! [Eletrolado.net](https://www.elotrolado.net/hilo_fraunhofer-versatile-video-coding-h266-el-rival-para-av1_2386654#p1752441408)
|
||||
|
||||
- Спасибі, Снеговик ХФорума (Forum Snowman)! Стойте з Україною! [Kharkov Forum #StandwithUkraine](https://www.kharkovforum.com/showthread.php?p=70577507#post70577507)
|
||||
|
||||
- ありがとう, ネクストスケープ (delsoladmin)! [NEXTSPACE Streaming Tech Blog](https://media-streaming.nextscape.net/blog/1153/)
|
||||
|
||||
- Martin Eesmaa (@MartinEesmaa)
|
4
UpdateVVCLinux.sh
Normal file
4
UpdateVVCLinux.sh
Normal 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
4
UpdateVVCMacOS.sh
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
brew update
|
||||
brew upgrade ffmpeg
|
||||
git pull
|
BIN
VVC/vvdecapp
BIN
VVC/vvdecapp
Binary file not shown.
BIN
VVC/vvdecapp.exe
BIN
VVC/vvdecapp.exe
Binary file not shown.
BIN
VVC/vvencapp
BIN
VVC/vvencapp
Binary file not shown.
BIN
VVC/vvencapp.exe
BIN
VVC/vvencapp.exe
Binary file not shown.
BIN
VVCEasy.266
Normal file
BIN
VVCEasy.266
Normal file
Binary file not shown.
551
VVCEasy.bat
Normal file
551
VVCEasy.bat
Normal file
@ -0,0 +1,551 @@
|
||||
echo off
|
||||
pushd "%~dp0"
|
||||
cls
|
||||
|
||||
REM === check and get the UAC for administrator privilege ===
|
||||
REM === code from https://sites.google.com/site/eneerge/scripts/batchgotadmin
|
||||
:: BatchGotAdmin
|
||||
:-------------------------------------
|
||||
REM --> Check for permissions
|
||||
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
|
||||
|
||||
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
|
||||
)
|
||||
) else ( goto gotAdmin )
|
||||
|
||||
:UACPrompt
|
||||
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
|
||||
echo UAC.ShellExecute "%~s0", "1", "", "runas", 1 >> "%temp%\getadmin.vbs"
|
||||
|
||||
"%temp%\getadmin.vbs"
|
||||
exit /B
|
||||
|
||||
:gotAdmin
|
||||
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
|
||||
pushd "%CD%"
|
||||
CD /D "%~dp0"
|
||||
:--------------------------------------
|
||||
|
||||
goto welcomenow
|
||||
|
||||
:welcomenow
|
||||
cls
|
||||
title Martin Eesmaa / VVCEasy
|
||||
echo Martin Eesmaa / VVCEasy
|
||||
echo Welcome to VVCEasy. (Batchfile Beta Version, v.0.9.0)
|
||||
pause
|
||||
goto start
|
||||
|
||||
:start
|
||||
title Martin Eesmaa / VVCEasy
|
||||
color 07
|
||||
cls
|
||||
echo VVCEasy (Batchfile Beta Version, v.0.9.0)
|
||||
echo.
|
||||
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 7. Install/Update VVdec Web Player
|
||||
echo 8. Decompress WindowsVVC.7z (Before you use new VVCEasy version!!!)
|
||||
echo 9. Install vvDecPlayer from BitMovin
|
||||
echo 10. Install 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 vvdecffmpeg
|
||||
if %VVCSTART% == 12 goto mpvandroidvvc
|
||||
|
||||
:encodestart
|
||||
title Encode to VVC
|
||||
cls
|
||||
echo Welcome to VVC encoder.
|
||||
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 (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
|
||||
|
||||
:losslessvvenc2
|
||||
title Lossless settings with Lossless uncompressed (VVC Encoder)
|
||||
cls
|
||||
echo Do you have Y4M?
|
||||
echo If you have Y4M already, move your Y4M file into C:\Program Files\VVCEasy\
|
||||
echo If you do not have Y4M, your instruction will go to next...
|
||||
echo 1. I have Y4M already (I am ready)
|
||||
echo 2. No, I am not ready yet (go back to previous)
|
||||
echo If you don't have Y4M already... you need transcode file from your uncompressed file to Y4M.
|
||||
echo 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
|
||||
|
||||
:startlosslessvvenc2
|
||||
cls
|
||||
title VVC ENCODER (Y4M LOSSLESS)
|
||||
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.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:lossyvvenc2
|
||||
title Lossy settings with Lossy compressed (VVC Encoder)
|
||||
cls
|
||||
echo Do you have YUV?
|
||||
echo If you have YUV already, move your YUV file into C:\Program Files\VVCEasy\
|
||||
echo If you do not have YUV, your instruction will go to next...
|
||||
echo 1. I have YUV already (I am ready)
|
||||
echo 2. No, I am not ready yet (go back to previous)
|
||||
echo If you don't have Y4M already... you need transcode file from your lossy video file to YUV.
|
||||
echo Example: ffmpeg -i yourfile.mp4 -strict 1 yourfinal.yuv
|
||||
set /p doyouhaveyuvvvencquestion4=Number:
|
||||
if %doyouhaveyuvvvencquestion4% == 1 goto startlossyvvenc2
|
||||
if %doyouhaveyuvvvencquestion4% == 2 goto encodestart
|
||||
|
||||
:startlossyvvenc2
|
||||
cls
|
||||
title VVC ENCODER (YUV LOSSY)
|
||||
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
|
||||
explorer "C:\Program Files\VVCEasy\WindowsVVC"
|
||||
cls
|
||||
title Decode from VVC to YUV/Y4M
|
||||
echo Do you want to transcode back from VVC to YUV or Y4M? Which did you choose settings? Choosing settings will transcode back.
|
||||
echo You need copy from your VVC file to C:\Program Files\VVCEasy\WindowsVVC\. Windows Explorer will open automatically.
|
||||
echo After copying your VVC file into VVCEasy folder, you need rename to VVC.vvc. It will transcode from your VVC file to YUV/Y4M.
|
||||
echo After transcoding, your transcoded file should be: C:\Program Files\VVCEasy\transcodedback
|
||||
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)
|
||||
set /p decodestart1=Number:
|
||||
if %decodestart1% == 1 goto DECODESTARTFROMVVCTOYUV
|
||||
if %decodestart1% == 2 goto DECODESTARTFROMVVCTOY4M
|
||||
|
||||
:DECODESTARTFROMVVCTOYUV
|
||||
cls
|
||||
title STARTING TRANSCODING BACK FROM VVC TO YUV...
|
||||
mkdir transcodedback
|
||||
cd WindowsVVC
|
||||
vvdecapp -b VVC.vvc -o VVCTOYUV.yuv
|
||||
move VVCTOYUV.yuv ../
|
||||
move VVCTOYUV.yuv transcodedback
|
||||
explorer "C:\Program Files\VVCEasy\transcodedback"
|
||||
echo FINISHED. Going back to menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:DECODESTARTFROMVVCTOY4M
|
||||
cls
|
||||
title STARTING TRANSCODING BACK FROM VVC TO Y4M...
|
||||
mkdir transcodedback
|
||||
cd WindowsVVC
|
||||
vvdecapp -b VVC.vvc --y4m -o VVCTOYUV.y4m
|
||||
move VVCTOYUV.y4m ../
|
||||
move VVCTOYUV.y4m transcodedback
|
||||
explorer "C:\Program Files\VVCEasy\transcodedback"
|
||||
echo FINISHED. Going back to menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:test
|
||||
cls
|
||||
title INSTALL/TEST PATH ENVIRONMENT
|
||||
echo Martin Eesmaa is testing your paths, that you installed programs in PATH. Not sure, what is path?
|
||||
echo You can go here for link: https://stackoverflow.com/questions/4910721/python-on-cmd-path
|
||||
echo Also you can also search "What is PATH in Windows?" in DuckDuckGo or SearX.
|
||||
echo Are you ready to test? (Y/N) or type "I" to install path environment.
|
||||
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
|
||||
|
||||
:nowtestingtime
|
||||
title Testing time...
|
||||
7z
|
||||
ffmpeg
|
||||
ffplay
|
||||
wget
|
||||
git
|
||||
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
|
||||
|
||||
:youdidworktest
|
||||
title Great!
|
||||
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 question in Stack Overflow.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:installpath
|
||||
echo Installer path environment will be only for 7-Zip.
|
||||
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 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
|
||||
|
||||
:installingpath
|
||||
title INSTALLING 7-ZIP on your path environments...
|
||||
echo INSTALLING 7-ZIP on your path environments...
|
||||
set PATH=%PATH%;C:\Program Files\7-Zip
|
||||
echo DONE!
|
||||
echo Returning to test menu...
|
||||
timeout 3 /nobreak
|
||||
goto test
|
||||
|
||||
:exit
|
||||
cls
|
||||
title Have a wonderful day!
|
||||
echo Have a wonderful day! Thank you for using VVCEasy. :)
|
||||
::: _ _ _
|
||||
::: | | | | | |
|
||||
::: | |_| |__ __ _ _ __ | | ___ _ ___ _ _
|
||||
::: | __| '_ \ / _` | '_ \| |/ / | | |/ _ \| | | |
|
||||
::: | |_| | | | (_| | | | | <| |_| | (_) | |_| |
|
||||
::: \__|_| |_|\__,_|_| |_|_|\_\\__, |\___/ \__,_|
|
||||
::: __/ |
|
||||
::: |___/
|
||||
|
||||
::: __ ____ _______ ______
|
||||
::: \ \ / /\ \ / / ____| ____|
|
||||
::: \ \ / / \ \ / / | | |__ __ _ ___ _ _
|
||||
::: \ \/ / \ \/ /| | | __| / _` / __| | | |
|
||||
::: \ / \ / | |____| |___| (_| \__ \ |_| |
|
||||
::: \/ \/ \_____|______\__,_|___/\__, |
|
||||
::: __/ |
|
||||
::: |___/
|
||||
|
||||
::: __ __ _ _ ______
|
||||
::: | \/ | | | (_) | ____|
|
||||
::: | \ / | __ _ _ __| |_ _ _ __ | |__ ___ ___ _ __ ___ __ _ __ _
|
||||
::: | |\/| |/ _` | '__| __| | '_ \ | __| / _ \/ __| '_ ` _ \ / _` |/ _` |
|
||||
::: | | | | (_| | | | |_| | | | | | |___| __/\__ \ | | | | | (_| | (_| |
|
||||
::: |_| |_|\__,_|_| \__|_|_| |_| |______\___||___/_| |_| |_|\__,_|\__,_|
|
||||
|
||||
|
||||
for /f "delims=: tokens=*" %%A in ('findstr /b ::: "%~f0"') do @echo(%%A
|
||||
echo.
|
||||
echo Copyright (C) 2021-2022 Martin Eesmaa
|
||||
echo.
|
||||
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?
|
||||
set /p anacondaman=Answer:
|
||||
if %anacondaman% == Y goto condainstall
|
||||
if %anacondaman% == N goto start
|
||||
if %anacondaman% == y goto condainstall
|
||||
if %anacondaman% == n goto start
|
||||
|
||||
:condainstall
|
||||
conda install -c conda-forge ffmpeg
|
||||
echo SUCCESS, going to back menu...
|
||||
pause
|
||||
goto start
|
||||
|
||||
:help
|
||||
cls
|
||||
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 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 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
|
||||
|
||||
:installvvdecweb
|
||||
cls
|
||||
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 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 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
|
||||
|
||||
:installnowplayer
|
||||
cls
|
||||
title INSTALLING VVDEC WEB PLAYER...
|
||||
git clone https://github.com/fraunhoferhhi/vvdecWebPlayer.git
|
||||
copy VVDECWEBINSTALL "vvdecWebPlayer/bin" /y
|
||||
cd vvdecWebPlayer
|
||||
wget https://www.dropbox.com/s/zp8b3xg0b5p1pwe/VVCEasy.266
|
||||
rename VVCEasy.266 dummy_raw_bitstream.266
|
||||
echo Note: If you want to go back to menu, press CTRL + C on your keyboard in Windows Terminal/CMD and type "Y" to terminate server and this will go back to main menu options.
|
||||
echo The python file is porting 8000 on your localhost computer.
|
||||
python wasm_test-server.py
|
||||
cd ../
|
||||
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
|
||||
|
||||
:updatevvdecwebplayer
|
||||
cls
|
||||
title UPDATING VVDEC WEB PLAYER...
|
||||
echo UPDATING VVDEC WEB PLAYER...
|
||||
cd vvdecWebPlayer
|
||||
git pull
|
||||
cd ../
|
||||
echo Your up to date is now latest.
|
||||
echo Returning to main menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:decompresswin7z
|
||||
cls
|
||||
title WindowsVVC.7z (decompressing)
|
||||
echo Decompressing........
|
||||
cd WindowsVVC
|
||||
7z x WindowsVVC.7z
|
||||
certutil -hashfile vvencapp.exe SHA512
|
||||
certutil -hashfile vvdecapp.exe SHA512
|
||||
certutil -hashfile vvencFFapp.exe SHA512
|
||||
certutil -hashfile vvencinterfacetest.exe SHA512
|
||||
certutil -hashfile vvenclibtest.exe SHA512
|
||||
rename SHA512SUMS SHA512SUMS.txt
|
||||
SHA512SUMS.txt
|
||||
echo Now please make sure double check that needs to be same hash. If it 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 WindowsVVC.7z... Now back to menu.
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:installbitmovin
|
||||
cls
|
||||
title Install BitVVDecPlayer from BitMovin
|
||||
echo Would you like to install on your operating system?
|
||||
echo Windows for W, Mac OS for M and Linux for L, Main Menu for N/n.
|
||||
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 %installbitmovindt% == n goto start
|
||||
|
||||
:installbitmovin1windows
|
||||
title Installing BitVVDecPlayer from BitMovin...
|
||||
echo Installing BitVVDecPlayer from BitMovin...
|
||||
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
|
||||
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 Or contact Bitmovin at https://www.bitmovin.com.
|
||||
goto downloadbitmovinvvcsample
|
||||
|
||||
:installbitmovin1macos
|
||||
title Installing BitVVDecPlayer from BitMovin...
|
||||
echo Installing BitVVDecPlayer from BitMovin...
|
||||
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
|
||||
del /q BitVVDecPlayerMAC.7z
|
||||
./vvDecPlayer
|
||||
echo Successfully running on vvDecPlayer, now if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
|
||||
echo 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 Or contact Bitmovin at https://www.bitmovin.com.
|
||||
goto downloadbitmovinvvcsample
|
||||
|
||||
:installbitmovin1linux
|
||||
title Installing BitVVDecPlayer from BitMovin...
|
||||
echo Installing BitVVDecPlayer from BitMovin...
|
||||
mkdir BitVVDecPlayerLINUX
|
||||
cd BitVVDecPlayerLINUX
|
||||
echo Downloading BitVVDecPlayer (Linux) from Bitmovin, compiled by Martin Eesmaa
|
||||
wget https://www.dropbox.com/s/bihm3pyh21lcvte/BitVVDecPlayerLINUX.7z?dl=0
|
||||
7z x BitVVDecPlayerLINUX.7z
|
||||
del /q BitVVDecPlayerLINUX.7z
|
||||
./vvDecPlayer
|
||||
echo Successfully running on vvDecPlayer, now if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
|
||||
echo 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.
|
||||
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
|
||||
|
||||
: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
|
||||
echo Deleting archived file...
|
||||
del /q vvcBlogPostDemo.7z
|
||||
title Installation of BitVVDecPlayer
|
||||
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 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 chat us on https://matrix.to/#/#vvceasy:matrix.org to solve your problem or add new issue on GitHub.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:vlcvtmplugininstall
|
||||
cls
|
||||
title VLC VTM Plugins Install (Windows & Linux)
|
||||
echo Welcome to VLC Media Player of VTM Plugins Installation.
|
||||
echo You need to run Windows version of Windows Vista / Windows Server 2008 to play VVC files.
|
||||
echo Windows XP can't load VTM plugins, but other plugins work.
|
||||
echo System type only = x64
|
||||
echo Linux is now available, see Linux installation at: https://github.com/MartinEesmaa/VVCEasy/tree/master/INSTALLVLCPLUGIN#for-linux-users
|
||||
echo Current version = 3.0.16, latest version 3.0.17-4 (it will work same latest version)
|
||||
echo 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
|
||||
|
||||
:installvlcvtmpluginnow
|
||||
title Installing of VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)
|
||||
echo Installing VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)
|
||||
cd INSTALLVLCPLUGIN
|
||||
copy libvtmdec.dll "%programfiles%\VideoLAN\VLC\plugins\codec"
|
||||
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.
|
||||
"%programfiles%\VideoLAN\VLC\vlc.exe"
|
||||
pause
|
||||
goto start
|
||||
|
||||
:ffmpegvvdec
|
||||
cls
|
||||
title FFmpeg VVDec support
|
||||
echo Hello, would you like to download FFmpeg VVDec support? Y/N?
|
||||
set /p vvcnow0
|
||||
if %vvcnow0% == Y goto installvvdecffmpegnow
|
||||
if %vvcnow0% == N goto start
|
||||
if %vvcnow0% == y goto installvvdecffmpegnow
|
||||
if %vvcnow0% == n goto start
|
||||
|
||||
:installvvdecffmpegnow
|
||||
echo Your favourite operating system is available on FFmpeg VVDec support. Please copy the link to a web browser.
|
||||
echo.
|
||||
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.
|
||||
echo Press enter to go back menu.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:mpvandroidvvc
|
||||
echo Please see the document. The command will open the document for you.
|
||||
MPV.md
|
||||
echo.
|
||||
echo See information MPV.md or online Github: https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md
|
||||
echo.
|
||||
echo Press enter to go back menu.
|
||||
pause
|
||||
goto start
|
10
VVCEasy.csproj
Normal file
10
VVCEasy.csproj
Normal file
@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
BIN
VVCEasy.png
Normal file
BIN
VVCEasy.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 112 KiB |
39
VVCEasy_compiler.iss
Normal file
39
VVCEasy_compiler.iss
Normal file
@ -0,0 +1,39 @@
|
||||
; Script generated by the Inno Setup Script Wizard.
|
||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||
|
||||
#define MyAppName "VVCEasy"
|
||||
#define MyAppVersion "0.5.0"
|
||||
#define MyAppPublisher "Martin Eesmaa"
|
||||
#define MyAppURL "https://github.com/MartinEesmaa/VVCEasy"
|
||||
|
||||
[Setup]
|
||||
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
|
||||
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
||||
AppId={{CEFE5C0E-F29A-4459-A5FC-53267C743303}}
|
||||
AppName={#MyAppName}
|
||||
AppVersion={#MyAppVersion}
|
||||
;AppVerName={#MyAppName} {#MyAppVersion}
|
||||
AppPublisher={#MyAppPublisher}
|
||||
AppPublisherURL={#MyAppURL}
|
||||
AppSupportURL={#MyAppURL}
|
||||
AppUpdatesURL={#MyAppURL}
|
||||
DefaultDirName={autopf}\{#MyAppName}
|
||||
DefaultGroupName={#MyAppName}
|
||||
LicenseFile=C:\Users\User\Downloads\VVCEasy\LICENSE
|
||||
; Uncomment the following line to run in non administrative install mode (install for current user only.)
|
||||
;PrivilegesRequired=lowest
|
||||
OutputDir=C:\Users\User\Downloads
|
||||
OutputBaseFilename=VVCEasy
|
||||
Compression=lzma2/ultra64
|
||||
SolidCompression=yes
|
||||
WizardStyle=modern
|
||||
InternalCompressLevel=ultra64
|
||||
CompressionThreads=1
|
||||
|
||||
[Languages]
|
||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||
|
||||
[Files]
|
||||
Source: "C:\Users\User\Downloads\VVCEasy\*"; DestDir: "{win}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
21
VVDECWEBINSTALL/vvdecapp.js
Normal file
21
VVDECWEBINSTALL/vvdecapp.js
Normal file
File diff suppressed because one or more lines are too long
BIN
VVDECWEBINSTALL/vvdecapp.wasm
Normal file
BIN
VVDECWEBINSTALL/vvdecapp.wasm
Normal file
Binary file not shown.
1
VVDECWEBINSTALL/vvdecapp.worker.js
Normal file
1
VVDECWEBINSTALL/vvdecapp.worker.js
Normal file
@ -0,0 +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",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}});
|
BIN
WindowsVVC/WindowsVVC.7z
Normal file
BIN
WindowsVVC/WindowsVVC.7z
Normal file
Binary file not shown.
6
WindowsVVC/WindowsVVC.sha256
Normal file
6
WindowsVVC/WindowsVVC.sha256
Normal file
@ -0,0 +1,6 @@
|
||||
1ac79ae1553e5e52f7fdf0e3d952d6755b39a1a480f1279eb858543b5d0adc34 vvdecapp.exe
|
||||
ed0e90795b04ea4a906e09772dad20c555f0658a5904b7f5a89272d34a424d8e vvencapp.exe
|
||||
9c08748131220e382b03f911fa62e62b580bcbbd5792477c1932f0666622f56d vvencFFapp.exe
|
||||
ae6570cbd021ca079b0eb2ac064e414cb6c054108c6a84f68003351df4c0aedc vvencinterfacetest.exe
|
||||
6b01073ff7b402db159cbe0cae566b2f58ee98e1dca752d543599210413fb8fb vvenclibtest.exe
|
||||
26071beb1006498b9e4dd505a55012373ff82ce54a29bd7757c89b3e5383d089 WindowsVVC.7z
|
15
libvvdecffmpeg.sh
Normal file
15
libvvdecffmpeg.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
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
|
42
o266player.md
Normal file
42
o266player.md
Normal file
@ -0,0 +1,42 @@
|
||||
# Compatibility Windows Operating System (VLC Media Player v3.0.11.1, o266player build version)
|
||||
|
||||
Limitations:
|
||||
|
||||
Note to Mac and Linux of o266player VLC: Sorry Mac and Linux users :(, here is a why MacOS and Linux cannot run VLC o266player.
|
||||
|
||||
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 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 | ⚠️ (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 | ⚠️ (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 | ⚠️ (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)
|
||||
------- | ------- | --------- | --------- |
|
||||
Windows Server 2003 | ⚠️ (Terminal only, GUI is not working) | [Link](https://i.imgur.com/G7F2bif.png) | 19/02/2022 21:38:20 (AEDT)
|
||||
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 | :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.
|
||||
|
||||
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 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)
|
||||
|
||||
- Martin Eesmaa
|
66
obj/VVCEasy.csproj.nuget.dgspec.json
Normal file
66
obj/VVCEasy.csproj.nuget.dgspec.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
16
obj/VVCEasy.csproj.nuget.g.props
Normal file
16
obj/VVCEasy.csproj.nuget.g.props
Normal 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>
|
2
obj/VVCEasy.csproj.nuget.g.targets
Normal file
2
obj/VVCEasy.csproj.nuget.g.targets
Normal 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
72
obj/project.assets.json
Normal 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
8
obj/project.nuget.cache
Normal 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
20
openvvc.sh
Normal 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
|
20
vvcbuildfraun/BuildforLinux.sh
Normal file
20
vvcbuildfraun/BuildforLinux.sh
Normal file
@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
echo Martin Eesmaa / VVC Compiler (vvenc and vvdec)
|
||||
echo We will check packages called: build-essential and cmake
|
||||
echo It will check, if the build-essential and cmake packages are installed or not.
|
||||
echo If it's already, it will update.
|
||||
echo If it's not installed, we will install automatically for you.
|
||||
echo.
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install build-essential cmake -y
|
||||
cd /Home/Downloads/
|
||||
git clone https://github.com/fraunhoferhhi/vvenc.git
|
||||
git clone https://github.com/fraunhoferhhi/vvdec.git
|
||||
cd vvenc
|
||||
make release
|
||||
cd ../
|
||||
cd vvdec
|
||||
make release
|
||||
cd ../
|
||||
echo Please see the build files following starting with vvenc/bin/release-shared
|
||||
pause
|
15
vvcbuildfraun/BuildforMacOS.sh
Normal file
15
vvcbuildfraun/BuildforMacOS.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
echo Martin Eesmaa / VVC Compiler (vvenc and vvdec)
|
||||
echo Please make sure your Xcode is installed on your Applications.
|
||||
echo.
|
||||
cd /Home/Downloads/
|
||||
git clone https://github.com/fraunhoferhhi/vvenc.git
|
||||
git clone https://github.com/fraunhoferhhi/vvdec.git
|
||||
cd vvenc
|
||||
make release
|
||||
cd ../
|
||||
cd vvdec
|
||||
make release
|
||||
cd ../
|
||||
echo Please see the build files following starting with vvenc/bin/release-shared
|
||||
pause
|
93
vvcbuildfraun/BuildforWin.bat
Normal file
93
vvcbuildfraun/BuildforWin.bat
Normal file
@ -0,0 +1,93 @@
|
||||
echo off
|
||||
pushd "%~dp0"
|
||||
cls
|
||||
|
||||
echo.
|
||||
echo :: Checking For Administrator Elevation...
|
||||
echo.
|
||||
timeout /t 1 /nobreak > NUL
|
||||
openfiles > NUL 2>&1
|
||||
if %errorlevel%==0 (
|
||||
echo Elevation found! Proceeding...
|
||||
) else (
|
||||
echo :: You are NOT running as Administrator
|
||||
echo.
|
||||
echo Right-click and select ^'Run as Administrator^' and try again.
|
||||
echo Press any key to exit...
|
||||
pause > NUL
|
||||
exit
|
||||
)
|
||||
|
||||
goto main123
|
||||
|
||||
:main123
|
||||
title VVENC AND VVDEC (Build for Windows) (Script by Martin Eesmaa)
|
||||
cls
|
||||
echo Do you want build of vvenc and vvdec yourself on your computer?
|
||||
echo Before you agree to build for Windows, you need Cmake and Visual Studio on your computer.
|
||||
echo Requires build to Windows VVC by Cmake 3.13.0+ (need pathed environment) and Visual Studio 2017 and later (requires Desktop C++ and only one individual component ML.NET Model Builder).
|
||||
echo Requires download VVEnc and VVDec for (Git for Windows).
|
||||
echo Yes means build. No means it will exit.
|
||||
echo Y/N?
|
||||
set /p main1234= Answer:
|
||||
if %main1234% == Y goto installmain123
|
||||
if %main1234% == y goto installmain123
|
||||
if %main1234% == N goto exit
|
||||
if %main1234% == n goto exit
|
||||
|
||||
:installmain123
|
||||
title Building time...
|
||||
echo Building time...
|
||||
mkdir Windows && cd Windows
|
||||
echo Download VVENC and VVDEC from Fraunhoferhhi GitHub...
|
||||
git clone 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
|
||||
explorer .
|
||||
cd ../../../
|
||||
cd vvdec
|
||||
mkdir build && cd build
|
||||
cmake ..
|
||||
cmake --build . --config Release
|
||||
cd ..\bin\release-static
|
||||
explorer .
|
||||
cd ../../../../
|
||||
goto successnow
|
||||
|
||||
:successnow
|
||||
echo.
|
||||
echo.
|
||||
echo.
|
||||
echo Successfully build of vvenc and vvdec on your Windows.
|
||||
echo Do you want delete source of VVENC and VVDEC files? Y/N?
|
||||
echo.
|
||||
echo WARNING!!!: YOU HAVE TO COPY EXECUTABLE FILES BEFORE YOU DELETE SOURCE FILES
|
||||
echo BUG: The syntax of the command is incorrect for unknown error.
|
||||
echo To see .EXE files, go to Windows/vvenc/bin/release-static in Windows Explorer.
|
||||
set /p installmain1234= Answer:
|
||||
if %installmain1234% == Y goto deletesourcefiles
|
||||
if %installmain1234% == y goto deletesourcefiles
|
||||
if %installmain1234% == N goto otherwisenow
|
||||
if %installmain1234% == n goto otherwisenow
|
||||
|
||||
:deletesourcefiles
|
||||
title Cleaning up source files on VVENC and VVDEC on your computer...
|
||||
echo Cleaning up source files on VVENC and VVDEC on your computer...
|
||||
cd ../
|
||||
rmdir /s Windows
|
||||
goto otherwisenow
|
||||
|
||||
:otherwisenow
|
||||
title Thank you for enjoying my script... (Martin Eesmaa)
|
||||
echo Thank you for enjoying my script... (Martin Eesmaa)
|
||||
echo Make sure go to Martin Eesmaa's GitHub: https://github.com/MartinEesmaa
|
||||
echo Exiting...
|
||||
timeout 3
|
||||
exit
|
||||
|
||||
:exit
|
||||
exit
|
Reference in New Issue
Block a user