mirror of
https://github.com/MartinEesmaa/VVCEasy.git
synced 2025-06-05 21:59:20 +02:00
Compare commits
257 Commits
Author | SHA1 | Date | |
---|---|---|---|
3684ae13f8 | |||
1c67f4778d | |||
2ec3959579 | |||
ff5c100111 | |||
a3f11ae887 | |||
0016c49a13 | |||
8be7a432e5 | |||
1894959625 | |||
221cea7b20 | |||
d9085679b3 | |||
742912cd7c | |||
fa2e7bb8f5 | |||
b93a7533ad | |||
ea165ef744 | |||
3d4751cc05 | |||
5ca706b7bf | |||
abd9886533 | |||
b0b8cc4125 | |||
0367d6cfaf | |||
eeb622e87b | |||
c0979d563a | |||
c6de967e4a | |||
fd19097878 | |||
e20e7a27fc | |||
0e673ecabf | |||
b609906218 | |||
85e4894ded | |||
489d558bce | |||
39f09eda99 | |||
8c9fd02ca6 | |||
f7790b7fe2 | |||
f86bc7452f | |||
60d85bb3bc | |||
5b8106055e | |||
efdfd9f2e8 | |||
e3be2635d3 | |||
bf38784d05 | |||
74e95941ef | |||
7789b2963b | |||
238a1655ae | |||
9044dc2640 | |||
f52608cf03 | |||
9c27308b70 | |||
1669057b7d | |||
22dbe70648 | |||
877167f4ce | |||
336ea8a9b6 | |||
4391c19ead | |||
2cc1b1d365 | |||
133f8b9400 | |||
90f4381f3d | |||
49fafe2bba | |||
7a680de4f5 | |||
2687df8877 | |||
1ccbfea742 | |||
41b96250e0 | |||
2c8e059987 | |||
d8500e69c4 | |||
161a47cd3c | |||
8a9001313b | |||
6bdd0cdcec | |||
a45c38a732 | |||
de5daedb66 | |||
5a1c6389a0 | |||
31f45143a8 | |||
4e9ae1efb8 | |||
33d7f39fa9 | |||
a686d7535c | |||
a37bfb104b | |||
5df8b2b169 | |||
1fd81eefd6 | |||
9a2278d21c | |||
38cff14abc | |||
1609148f76 | |||
f7c353138a | |||
cddb15d88b | |||
ab16a0ce47 | |||
1b94d9440d | |||
4ad2817f82 | |||
be7623bd7e | |||
0826a8cbdb | |||
7629579d21 | |||
77ff5ff623 | |||
29063b75b9 | |||
01d8bdc61b | |||
599cd5f7df | |||
c711ba2100 | |||
a3e657bc79 | |||
694b7e6960 | |||
2c4581642d | |||
d1d91f3759 | |||
4baf94575c | |||
44c2c68064 | |||
c1d686c427 | |||
5bb91d009b | |||
d00b5d8527 | |||
a4423d8d94 | |||
3127b4cc65 | |||
be05b0b0b2 | |||
eb605ef213 | |||
647cabb062 | |||
524c6652ca | |||
4aae1c6f73 | |||
037f37c071 | |||
97494d5417 | |||
0c69f924c5 | |||
d5d29b50bf | |||
4f6bb5fdb8 | |||
c5438e474d | |||
e99df2dbb7 | |||
2a9598a276 | |||
8909b534f7 | |||
03d4d3a65c | |||
deea6964f6 | |||
b5fef94990 | |||
269c4fda70 | |||
826f9ecd76 | |||
e44fe0a907 | |||
2075fc3bd1 | |||
a72af74566 | |||
4ac43170f7 | |||
0de423ef97 | |||
60e0c4d9c7 | |||
8a9d643a36 | |||
7a9c811cca | |||
f38aca5b15 | |||
1d62f5a9e5 | |||
d26dc31568 | |||
961e155ef4 | |||
7e17d096bf | |||
f65febc416 | |||
879dc55601 | |||
5fa418dd5b | |||
c58fa8e1a9 | |||
5750ed8684 | |||
2cfe7d1f5c | |||
fc2099999f | |||
202988414d | |||
c1db5dab3e | |||
9e99e397eb | |||
13d0ed6b75 | |||
86a16392c6 | |||
7fe55d6af5 | |||
a949392967 | |||
6709f695e3 | |||
999b3adc37 | |||
e5a295c4cc | |||
45322c106e | |||
1fea2bf1f5 | |||
49851eedae | |||
f7d49c0838 | |||
b262a9261a | |||
d68046070b | |||
78e911826f | |||
ce230b1266 | |||
0995eb9e94 | |||
721f30e562 | |||
f80b4515fc | |||
cfffaa3200 | |||
eb04c56dc9 | |||
f09609a5ea | |||
5dbb98a2e0 | |||
59ab7f686c | |||
417dd157f8 | |||
07b7b0d072 | |||
c2e46daf37 | |||
f5a52e37dc | |||
637f4bd2b5 | |||
7200b6a100 | |||
8cfb858dcc | |||
c776d2eb4c | |||
b7b7f5e0c5 | |||
82b7b05def | |||
2fda3183ea | |||
6cbbc9ee6e | |||
c4ea940691 | |||
df79882384 | |||
0e3e07088c | |||
39569691f2 | |||
fb10943afe | |||
140aa9aa1a | |||
777b7082ab | |||
53d02caa6c | |||
9798092921 | |||
c102e8923b | |||
5577515ac1 | |||
2d6cc3e5c7 | |||
4b8bead8bd | |||
b43cfcec42 | |||
c23f35e342 | |||
2f7e5734ec | |||
fb3e9a1f0b | |||
7bab8566f6 | |||
5fb0f13967 | |||
8beb0749b1 | |||
02ab4f0dd4 | |||
9a5aa668b0 | |||
15fbf7cad7 | |||
4aed697d77 | |||
1f918cdccf | |||
06046ede48 | |||
18f81d2599 | |||
3c81970465 | |||
6971d0715d | |||
f5f9aee794 | |||
37c88b279b | |||
c786e2fc61 | |||
a20624849a | |||
8dc96c25c5 | |||
d7f1b8e5d7 | |||
c2e506e96f | |||
1bc30fd327 | |||
0460662adf | |||
846e71aa39 | |||
d32dd7f4a4 | |||
f712cd6a8d | |||
f292a82b72 | |||
1dff7ad5c2 | |||
7527ec1e03 | |||
c86076b391 | |||
c9433e00cd | |||
10f10ca4cb | |||
f7c19674f0 | |||
8b40e67e62 | |||
c2fe35941d | |||
fd43071cfa | |||
fe93a27f0f | |||
7b37e67e1b | |||
b8a2bd8695 | |||
c5b7fd3944 | |||
bc06ab5e30 | |||
395b764805 | |||
dd650bc9ed | |||
96f330513a | |||
c162655485 | |||
9b957ee4c7 | |||
e476cf1c22 | |||
5a85cff664 | |||
95709d71cd | |||
acb3a1433c | |||
a0a6d5346f | |||
4c29ead6b4 | |||
0b3603a89b | |||
a42e5caab5 | |||
782ed4dc56 | |||
cf6c84397d | |||
80ac019e01 | |||
45b947c6d3 | |||
7d9b47c820 | |||
d89f032ff4 | |||
17e3ad82a2 | |||
02101cc3fd | |||
7a1b1d1fba | |||
c438b0e4a6 | |||
b2928fa002 | |||
a71cde1a46 | |||
99efbf14ea |
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. iOS]
|
||||
- Browser [e.g. chrome, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- Browser [e.g. stock browser, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
6
.github/workflows/dotnet.yml
vendored
6
.github/workflows/dotnet.yml
vendored
@ -2,9 +2,11 @@ name: .NET
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths:
|
||||
- 'Program.cs'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths:
|
||||
- 'Program.cs'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
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,32 @@
|
||||
|
||||
HISTORY of the 7-Zip
|
||||
--------------------
|
||||
|
||||
22.01 2022-07-15
|
||||
-------------------------
|
||||
- UDF support was improved to UDF version 2.60.
|
||||
- HFS and APFS support was improved.
|
||||
|
||||
|
||||
22.00 2022-06-15
|
||||
-------------------------
|
||||
- 7-Zip now can extract APFS (Apple File System) images that can be used in DMG files.
|
||||
- 7-Zip now can create TAR archives in POSIX (pax) tar format with the switches
|
||||
-ttar -mm=pax or -ttar -mm=posix
|
||||
- 7-Zip now can store additional file timestamps with high precision (1 ns in Linux)
|
||||
in tar/pax archives with the following switches:
|
||||
-ttar -mm=pax -mtp=3 -mtc -mta
|
||||
- New switches for Linux version for TAR archives:
|
||||
-snoi : store owner/group ids in archive or set owner/group ids from archive to extracted files.
|
||||
-snon : store owner/group names in archive
|
||||
- New -snz switch to propagate Zone.Identifier stream to extracted files (Windows).
|
||||
- New option "Propagate Zone.Id stream" in Tools/Options/7-Zip menu.
|
||||
- New "Options" window in "Add to archive" allows to select what metadata must be
|
||||
included to archive. Also it allows to select new option
|
||||
"Do not change source files last access time".
|
||||
- Some bugs were fixed.
|
||||
|
||||
|
||||
21.07 2021-12-26
|
||||
-------------------------
|
||||
- 7-Zip now can extract VHDX disk images (Microsoft Hyper-V Virtual Hard Disk v2 format).
|
||||
|
@ -3,7 +3,7 @@
|
||||
License for use and distribution
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
7-Zip Copyright (C) 1999-2021 Igor Pavlov.
|
||||
7-Zip Copyright (C) 1999-2022 Igor Pavlov.
|
||||
|
||||
The licenses for files are:
|
||||
|
||||
|
@ -1,16 +1,16 @@
|
||||
7-Zip 21.07
|
||||
7-Zip 22.01
|
||||
-----------
|
||||
|
||||
7-Zip is a file archiver for Windows.
|
||||
|
||||
7-Zip Copyright (C) 1999-2021 Igor Pavlov.
|
||||
7-Zip Copyright (C) 1999-2022 Igor Pavlov.
|
||||
|
||||
The main features of 7-Zip:
|
||||
|
||||
- High compression ratio in the new 7z format
|
||||
- Supported formats:
|
||||
- Packing / unpacking: 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM.
|
||||
- Unpacking only: AR, ARJ, Base64, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS,
|
||||
- Unpacking only: APFS, AR, ARJ, Base64, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS,
|
||||
IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR,
|
||||
RPM, SquashFS, UDF, UEFI, VDI, VHD, VHDX, VMDK, XAR and Z.
|
||||
- Fast compression and decompression
|
||||
|
BIN
Android/AndroidUVG266-8bit.7z
Normal file
BIN
Android/AndroidUVG266-8bit.7z
Normal file
Binary file not shown.
5
Android/AndroidUVG266-8bit.sha256
Normal file
5
Android/AndroidUVG266-8bit.sha256
Normal file
@ -0,0 +1,5 @@
|
||||
9a7d1f454a2c934c80161fc11baa24977c8fb1e4cedd16177d9b12be08e4f353 AndroidUVG266-8bit.7z
|
||||
26ed38e0e6e41f30f5e7f896864098854580b118ec10b2006f0f16232ed4cd4f arm64/uvg266
|
||||
1d0b76e1deb70a984eff332d7d897f4945c4eb6d75737192bbd13b0c1e43294f armeabi/uvg266
|
||||
5bbb3acb88129ab0d89d5f9c9b7377b9203c898d45ce4ae0de9fefc776967d09 x86/uvg266
|
||||
462462d2924de5c174d272a743624c04cb64c5526040da3bb9331d32ffa4dacd x86_64/uvg266
|
BIN
Android/AndroidUVG266.7z
Normal file
BIN
Android/AndroidUVG266.7z
Normal file
Binary file not shown.
5
Android/AndroidUVG266.sha256
Normal file
5
Android/AndroidUVG266.sha256
Normal file
@ -0,0 +1,5 @@
|
||||
3372c510c6312be64f61340fa65f833870d4d95f5130cb3706d1a51c0f73ed06 AndroidUVG266.7z
|
||||
f034dd53153ae447611a71d83fba52f8bfc42a395c3f17de7d9359b277c18d4b arm64/uvg266
|
||||
048b1cc9a263efa58382488be95f18b89e3dd69b00bb246d9f64853ea69c5c06 armeabi/uvg266
|
||||
b02ab7d45d2afb8e951ba5c59f1a93b70605eb0bda9b5e678956b849e01115be x86/uvg266
|
||||
dbf936a8b6ab080c8cf8ef359deb8e76042900fa0fc5b70d18ff9b3947873aa9 x86_64/uvg266
|
BIN
Android/AndroidVVC.7z
Normal file
BIN
Android/AndroidVVC.7z
Normal file
Binary file not shown.
21
Android/AndroidVVC.sha256
Normal file
21
Android/AndroidVVC.sha256
Normal file
@ -0,0 +1,21 @@
|
||||
06433d77798118f6be007dc88180c13ff91346fe5e6432973c3e93447201f592 AndroidVVC.7z
|
||||
4e204e2fa609335eb910edb6b7fac3468a7c5e8e4c9f8231e1212f27f164341f arm64/vvdecapp
|
||||
92f8a09b498ae753e2a33dbe48d373800f9a84c60f04f8636857e68f1748e938 arm64/vvencapp
|
||||
297b8bbefc09374b6bef6b55a934be13ef589356a7210d03ac871eb41ab1f09c arm64/vvencFFapp
|
||||
8cbfd9bd51e37ac8108f3e17da9ee59142edf7a304cfabbf28e5e62027ccb02f arm64/vvencinterfacetest
|
||||
ddfc174a263d3459ad1dec2106215ba112a75888e0e8174b32948a9bfc712a73 arm64/vvenclibtest
|
||||
0d309211ac966cb69ca91fd9c18372d3b68097c5a01b413aca343fa0a9fc120d armeabi/vvdecapp
|
||||
3215b6eae21b7c2a2fb213dd7661cc1faf79f908bac5b3e026a71fca2e4bb5f2 armeabi/vvencapp
|
||||
9e946a6a34ec6f5aed2726952967580a7dde30f11144ae41e67fd502f3421aa1 armeabi/vvencFFapp
|
||||
2d478e43e8b469b95a756fc3c7542c58552832d5ad40254629a8ee6fff0fc23b armeabi/vvencinterfacetest
|
||||
ad319f631fafc4f179e7e96b5fe748e878d93df0fdba693b71a19d50dd3e4e53 armeabi/vvenclibtest
|
||||
4fc4745050fd960d02ec011f4081a7eef66b86fadbffbfde8dfa86a217607287 x86/vvdecapp
|
||||
5394e646b7342f7d70583cd4637590ec226c6ba0c8d5792b2dd0cadee68a4d60 x86/vvencapp
|
||||
0c8add8291339cfab61be9df7419e117623c61c6ddf22c9b4ba706b1c0f2a04b x86/vvencFFapp
|
||||
3a2abe2ef5e8355c935e29026a232ce9fd164eff0c2cf6c9e6757143a559af62 x86/vvencinterfacetest
|
||||
f82252ec16f200ae85864be79db7bb01cc5109d3fd9e55f30c07816f04c77c21 x86/vvenclibtest
|
||||
392b901221b24185a22e0610a75ee8122ae62eff8b96ef834157ab79fd4b38d5 x86_64/vvdecapp
|
||||
6432a59f904f5740ee44420aa2e06e439aa7f3c85c9c8d11ba2f76a4814d5983 x86_64/vvencapp
|
||||
23d9fb9e2ecc65bb06a73203e5db13bd31a1eda03d587e1a0cf0a10405829d54 x86_64/vvencFFapp
|
||||
cef66cc20cfb3485d3585b05d5ba63e6c33839e4687cc6173aa1cb6aa0650a21 x86_64/vvencinterfacetest
|
||||
75b4ca7932dbd2f375c562ba5891e808253dbe3bb4eebebd58146cf03523a66f x86_64/vvenclibtest
|
59
Android/README.md
Normal file
59
Android/README.md
Normal file
@ -0,0 +1,59 @@
|
||||
# Android vvdec/uvg266 applications (Termux app)
|
||||
|
||||
Requirements: Termux app with apk or F-Droid app. For uvg266/vvdecapp pipe, require FFmpeg on Termux app.
|
||||
|
||||
See the screenshot of vvdecapp in Termux app:
|
||||
|
||||

|
||||
|
||||
All system types of arm64, armeabi, x86 and x86_64 is built on vvdecapp & uvg266, it is use of Termux app.
|
||||
|
||||
arm64 - API 21 (64-bit phones only)
|
||||
|
||||
armeabi - API 19 (32-bit phones)
|
||||
|
||||
x86 - API 21 (32-bit tablets only)
|
||||
|
||||
x86_64 - API 21 (64-bit tablets only)
|
||||
|
||||
TIP: You can install my built applications:
|
||||
|
||||
```
|
||||
chmod +x vvdecapp uvg266 vvencapp
|
||||
cp vvencapp vvdecapp uvg266 $PREFIX/bin
|
||||
```
|
||||
|
||||
### vvencapp encoder (Fraunhofer HHI)
|
||||
|
||||
Screenshot (tested my phone):
|
||||
|
||||

|
||||
|
||||
Please note, that supports 64-bit programs only.
|
||||
|
||||
### uvg266 encoder (Scalable video encoder)
|
||||
|
||||
Screenshot:
|
||||
|
||||

|
||||
|
||||
Before you download, there were two separated programs:
|
||||
|
||||
AndroidUVG266.7z - 10-bit input/encoder only.
|
||||
|
||||
AndroidUVG266-8bit.7z - 8-bit input/encoder only.
|
||||
|
||||
If you want pipe from FFmpeg to uvg266, you can do command:
|
||||
```
|
||||
ffmpeg -i example.mp4 -f yuv4mpegpipe -pix_fmt yuv420p10 -strict -1 - | uvg266 -i - --input-file-format y4m --input-bitdepth 10 -o converted.266
|
||||
```
|
||||
|
||||
For 8-bit uvg266 application, remove `-strict -1`, change from `yuv420p10` to `yuv420p` and remove `--input-bitdepth-10`.
|
||||
|
||||
When you want make device sleep during uvg266 encoding, tap Acquire wake lock on Termux notification.
|
||||
|
||||
If uvg266 froze itself for a couple minutes without printing info, means finished, tap CTRL + C.
|
||||
|
||||
VVDEC might not decode with some uvg266 options (example uvg266 presets unplayable with vvdec: preset placebo & lossless.
|
||||
|
||||
- Martin Eesmaa
|
BIN
Android/vvencapptermux.png
Normal file
BIN
Android/vvencapptermux.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 160 KiB |
19
Bitmovin.md
19
Bitmovin.md
@ -2,9 +2,9 @@
|
||||
|
||||
# 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.
|
||||
If you want to put your VVC file into Bitmovin VvDec Player, we need add `--segment`, `-f` as frames and `-fs` as frame skip into vvencapp.
|
||||
|
||||
Otherwise, if you put vvc file (which is all together of one file) without segments, your application might freeze your computer and application too.
|
||||
Otherwise, if you put VVC file (which is all together of one file) without segments, your application might freeze your computer and application too.
|
||||
|
||||
To make probably decoded well for segments, here is an example of this:
|
||||
|
||||
@ -19,7 +19,7 @@ Middle segment (mid) will be during from video, 1 sec -> 2 sec. (segment-1.vvc)
|
||||
|
||||
Last segment (last) will be ending from video, 2 sec -> 3 sec. (segment-2.vvc)
|
||||
|
||||
Total is three seconds and three segments. Still not understand? Example of my segments, including log:
|
||||
Total is three seconds and three segments. Example of my segments, including log:
|
||||
|
||||
[Log file](https://pastebin.com/qrCyfDEU)
|
||||
|
||||
@ -42,7 +42,6 @@ JSON:
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
# Bitmovin VVDec Player Downloads (including build instructions):
|
||||
|
||||
[Windows Pre-Builded](https://www.dropbox.com/s/75ouoeadcr2cl53/BitVVDecPlayerWIN.7z)
|
||||
@ -51,9 +50,9 @@ JSON:
|
||||
|
||||
[Linux Pre-Builded](https://www.dropbox.com/s/bihm3pyh21lcvte/BitVVDecPlayerLINUX.7z)
|
||||
|
||||
Wanna build VVDec (.dll (Windows)/.dylib (Mac OS)/.so (Linux)) yourself?
|
||||
Want to build VVDec (.dll (Windows)/.dylib (Mac OS)/.so (Linux)) yourself?
|
||||
|
||||
Here is an code:
|
||||
Here is a code:
|
||||
|
||||
```
|
||||
git clone https://github.com/fraunhoferhhi/vvdec.git
|
||||
@ -95,7 +94,7 @@ System type: x64
|
||||
|
||||
Requirements to run program: Qt framework (version 5) and libvvdec.dylib
|
||||
|
||||
Internet required to download segments for Bitmovin streams
|
||||
Internet required to download segments for Bitmovin streams.
|
||||
|
||||
Offline availability for segments
|
||||
|
||||
@ -108,11 +107,11 @@ System type: x64
|
||||
|
||||
Requirements to run program: Qt framework (version 5), glib (build-essential) and libvvdecLib.so
|
||||
|
||||
Internet required to download segments for Bitmovin streams
|
||||
Internet required to download segments for Bitmovin streams.
|
||||
|
||||
Offline availability for segments
|
||||
|
||||
# Bitmovin VVDec Player (Test compatability)
|
||||
# Bitmovin VVDec Player (Test compatibility)
|
||||
|
||||
### Windows 7+:
|
||||
|
||||
@ -126,6 +125,6 @@ Offline availability for segments
|
||||
|
||||

|
||||
-------------------------
|
||||
Tests will be come soon later.
|
||||
Tests will be coming sooner.
|
||||
|
||||
- Martin Eesmaa
|
||||
|
5
CONTRIBUTING.md
Normal file
5
CONTRIBUTING.md
Normal file
@ -0,0 +1,5 @@
|
||||
Contributors are welcome to make pull request of Martin Eesmaa's VVCEasy repository.
|
||||
|
||||
If you would like to make pull request, be sure to read my Code Of Conduct (COC).
|
||||
|
||||
- Martin Eesmaa
|
142
FFMPEGMINGW.sh
Normal file
142
FFMPEGMINGW.sh
Normal file
@ -0,0 +1,142 @@
|
||||
echo Updating and upgrading MSYS2 packages... if system core update requires reboot this application, please run this script again after being updated.
|
||||
pacman -Syu
|
||||
echo Installing MSYS2 packages...
|
||||
pacman -S python git nasm vim $MINGW_PACKAGE_PREFIX-{toolchain,cmake,autotools,meson,ninja}
|
||||
echo Starting process of FFmpeg build with libvvenc and libvvdec...
|
||||
if [ ! -d buildffmpegwin ]; then
|
||||
mkdir buildffmpegwin && cd buildffmpegwin
|
||||
else
|
||||
cd buildffmpegwin
|
||||
fi
|
||||
|
||||
if [ ! -d FFmpeg-FixVVC ]; then
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
else
|
||||
git -C FFmpeg-VVC pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvenc ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
else
|
||||
git -C vvenc pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvdec ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
else
|
||||
git -C vvdec pull
|
||||
fi
|
||||
|
||||
if [ ! -d fdk-aac ]; then
|
||||
git clone --depth=1 https://github.com/mstorsjo/fdk-aac
|
||||
else
|
||||
git -C fdk-aac pull
|
||||
fi
|
||||
|
||||
if [ ! -d SDL ]; then
|
||||
git clone --depth=1 https://github.com/libsdl-org/SDL
|
||||
else
|
||||
git -C SDL pull
|
||||
fi
|
||||
|
||||
if [ ! -d libxml2 ]; then
|
||||
git clone --depth=1 https://github.com/gnome/libxml2
|
||||
else
|
||||
git -C libxml2 pull
|
||||
fi
|
||||
|
||||
if [ ! -d opus ]; then
|
||||
git clone --depth=1 https://github.com/xiph/opus
|
||||
else
|
||||
git -C opus pull
|
||||
fi
|
||||
|
||||
if [ ! -d libjxl ]; then
|
||||
git clone --depth=1 https://github.com/libjxl/libjxl
|
||||
sed -i 's/-lm/-lm -lstdc++/g' libjxl/lib/jxl/libjxl.pc.in libjxl/lib/threads/libjxl_threads.pc.in
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
else
|
||||
git -C libjxl pull
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
fi
|
||||
|
||||
if [ ! -d dav1d ]; then
|
||||
git clone --depth=1 https://code.videolan.org/videolan/dav1d
|
||||
else
|
||||
git -C dav1d pull
|
||||
fi
|
||||
|
||||
if [ ! -d codec2 ]; then
|
||||
git clone --depth=1 https://github.com/drowe67/codec2
|
||||
else
|
||||
git -C codec2 pull
|
||||
fi
|
||||
|
||||
if [ ! -d vmaf ]; then
|
||||
git clone --depth=1 https://github.com/netflix/vmaf
|
||||
else
|
||||
git -C vmaf pull
|
||||
fi
|
||||
|
||||
echo Starting to build fdk-aac:
|
||||
cd fdk-aac
|
||||
autoreconf -if && ./configure --enable-static --disable-shared --prefix=$MSYSTEM_PREFIX && make install -j $nproc
|
||||
cd ..
|
||||
|
||||
echo Starting to build libxml2:
|
||||
cd libxml2
|
||||
autoreconf -if && ./configure --enable-static --disable-shared --prefix=$MSYSTEM_PREFIX && make install -j $nproc
|
||||
cd ..
|
||||
|
||||
echo Starting to build sdl2:
|
||||
cd SDL
|
||||
mkdir build && cd build && cmake -DCMAKE_EXE_LINKER_FLAGS="-static" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX .. -G "MinGW Makefiles" && cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
|
||||
echo Starting to build libopus to improve decode quality on FFmpeg:
|
||||
cd opus
|
||||
autoreconf -if && CFLAGS="-O2 -D_FORTIFY_SOURCE=0" LDFLAGS="-flto -s" ./configure --enable-static --disable-shared --disable-tests --disable-extras --prefix=$MSYSTEM_PREFIX && make install -j $nproc
|
||||
cd ..
|
||||
|
||||
echo Starting to build libjxl:
|
||||
mkdir libjxl/build && cd libjxl/build && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_PLUGINS=ON -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=ON -DJPEGXL_FORCE_SYSTEM_GTEST=ON -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX .. && ninja install
|
||||
cd ../../
|
||||
|
||||
echo Starting to build dav1d:
|
||||
mkdir dav1d/build && cd dav1d/build && meson -Denable_docs=false -Ddefault_library=static -Dprefix=$MSYSTEM_PREFIX .. && ninja install
|
||||
cd ../../
|
||||
|
||||
echo Starting to build codec2:
|
||||
cd codec2
|
||||
sed -i 's|if(WIN32)|if(FALSE)|g' CMakeLists.txt
|
||||
grep -ERl "\b(lsp|lpc)_to_(lpc|lsp)" --include="*.[ch]" | \
|
||||
xargs -r sed -ri "s;((lsp|lpc)_to_(lpc|lsp));c2_\1;g"
|
||||
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -D{UNITTEST,INSTALL_EXAMPLES}=off -DBUILD_SHARED_LIBS=OFF -DCMAKE_EXE_LINKER_FLAGS="-static" .. -G "MinGW Makefiles"
|
||||
cmake --build . -j $nproc --target install
|
||||
cd ../../
|
||||
|
||||
echo Starting to build vmaf to apply calculate VVC video references from original video:
|
||||
mkdir vmaf/libvmaf/build && cd vmaf/libvmaf/build && CFLAGS="-msse2 -mfpmath=sse -mstackrealign" meson -Denable_docs=false -Ddefault_library=static -Denable_float=true -Dbuilt_in_models=true -Dprefix=$MSYSTEM_PREFIX .. && ninja install
|
||||
cd ../../../
|
||||
sed -i 's/-lm/-lm -lstdc++/g' $MSYSTEM_PREFIX/lib/pkgconfig/libvmaf.pc
|
||||
|
||||
echo Starting to build vvenc...
|
||||
cd vvenc
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -DVVENC_ENABLE_LINK_TIME_OPT=OFF .. -G "MinGW Makefiles"
|
||||
cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
echo Starting to build vvdec...
|
||||
cd vvdec
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -DVVDEC_ENABLE_LINK_TIME_OPT=OFF .. -G "MinGW Makefiles"
|
||||
cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
|
||||
echo Starting configuring and making FFmpeg VVCEasy build...
|
||||
cd FFmpeg-VVC
|
||||
./configure --enable-libfdk-aac --enable-static --enable-libvvenc --enable-libvvdec --enable-pic \
|
||||
--enable-zlib --enable-libxml2 --enable-libdav1d --enable-libopus --enable-libcodec2 --enable-libjxl --enable-libvmaf --extra-ldexeflags=-static \
|
||||
--pkg-config-flags=-static --disable-w32threads --enable-sdl2 && \
|
||||
make -j
|
||||
echo FFmpeg VVC version tools are now compiled, please see buildffmpegwin/FFmpeg folder.
|
184
FFMPEGVVC.md
184
FFMPEGVVC.md
@ -1,80 +1,184 @@
|
||||
# FFmpeg VVC decoder installation (Windows, Mac OS and Linux)
|
||||
# FFmpeg VVC En/decoder & xHE-AAC installation (Windows, Mac OS and Linux)
|
||||
|
||||
Windows, Mac and Linux (Preview of vvc video in ffplay):
|
||||
Windows, Mac and Linux (Preview of VVC video in FFplay):
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
# Limitations of FFmpeg VVC decoder
|
||||
# Play video file
|
||||
|
||||
For Windows, Mac OS and Linux for preview without converting, you can do sample this, including audio support:
|
||||
You can play VVC video codec with .h266, .vvc, .266 and anything or .mp4 mixed with VVC codec:
|
||||
|
||||
```
|
||||
ffmpeg_g -i example.266 -i example.opus -vcodec libx264 -acodec libopus -af adelay=1000 -f matroska - | ffplay_g -
|
||||
ffplay_vvceasy versatile.266
|
||||
```
|
||||
|
||||
Or you can play vvc with audio support:
|
||||
Or if you have xHE-AAC audio codec:
|
||||
|
||||
```
|
||||
ffplay_g -i convertedvvc.mp4
|
||||
ffplay_vvceasy -codec:a libfdk_aac -i versatile.m4a
|
||||
```
|
||||
|
||||
# Limitations of FFmpeg VVC encoder
|
||||
|
||||
Before encode to VVC video codec, see the limitations below.
|
||||
|
||||
libvvenc (FFmpeg vvc version) works for:
|
||||
|
||||
- Pixel format ⚠️ (only pixel format 10 bit)
|
||||
- Video size (auto detects, but it doesn't detect for SAR and DAR anamorphic is glitch and corrupts the video) ⚠️ (Better way to use vvencapp without FFmpeg)
|
||||
- Frame rate ✅ (auto detects)
|
||||
- MP4/TS Mux ✅
|
||||
- Matroska mux ⚠️ (Only matroska mux has an experimental, causing problem of the video sync delay with audio and others for FFmpeg libvvdec. It is unofficial support)
|
||||
- Audio with encode VVC ✅
|
||||
- Bitrates ✅
|
||||
- Passes ⚠️ (you may need get passes using vvenc params on FFmpeg VVCEasy or use vvencapp)
|
||||
- Presets ✅
|
||||
- QP ✅
|
||||
- HDR ✅
|
||||
|
||||
Built in libvvenc for FFmpeg command:
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -c:v libvvenc -qp 37 -preset slow example.266
|
||||
```
|
||||
|
||||
For more options for libvvenc in FFmpeg VVCEasy version, type `ffmpeg_vvceasy -h encoder=libvvenc` for available commands.
|
||||
|
||||
Additional command: You can convert to VVC video without taking a much space for vvencapp, example:
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -pix_fmt yuv420p -f yuv4mpegpipe - | vvencapp --y4m -i - --preset medium --qp 35 -o converted.266
|
||||
```
|
||||
|
||||
Converting xHE-AAC to AAC audio:
|
||||
|
||||
```
|
||||
ffmpeg -c:a libfdk_aac -i mymusic.m4a -c:a aac -b:a 128k mymusic.aac
|
||||
```
|
||||
|
||||
Replace video size for `-s` and frame rate for `-r`.
|
||||
|
||||
### Update 21th May 2022 of FFmpeg vvdec support
|
||||
|
||||
Good news, you can play .mp4 file after .h266 and audio format were merged into mp4 playable of VVC.
|
||||
|
||||
About [xHE-AAC](https://www.iis.fraunhofer.de/en/ff/amm/broadcast-streaming/xheaac.html), 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.
|
||||
About [xHE-AAC](https://www.iis.fraunhofer.de/en/ff/amm/broadcast-streaming/xheaac.html), now it's available decode support xHE-AAC of FFmpeg. [Exhale](https://gitlab.com/ecodis/exhale) (encoder) is free to use and open source, but if you want Fraunhofer IIS xHE-AAC, you can download [EZ CD Audio Converter](https://www.poikosoft.com/music-converter) for Windows only. You can also merge your encoded xHE-AAC audio into mp4 too.
|
||||
|
||||
To make playable mp4 with audio and video together, you need VVC video encoded, audio file and [GPAC Nightly build](https://gpac.wp.imt.fr/downloads/gpac-nightly-builds/). Code for mp4box/gpac:
|
||||
To make playable mp4 with audio and video together, you need VVC video encoded, audio file and [GPAC Nightly build](https://gpac.wp.imt.fr/downloads/gpac-nightly-builds/). Code for mp4box/gpac to merge VVC video encoded and audio file:
|
||||
```
|
||||
mp4box -no-probe -add video.266 -add audio.opus -new convertedvvc.mp4
|
||||
mp4box -add video.266 -add audio.m4a -new convertedvvc.mp4
|
||||
```
|
||||
|
||||
Containers are also acceptable video containers of .mkv, .mp4, .mov and more.
|
||||
|
||||
For Linux and Mac OS users: Replace **mp4box** by **gpac**
|
||||
|
||||
# FFmpeg Downloads (VVC decoder plugin compiled by Martin Eesmaa)
|
||||
# FFmpeg Downloads (xHE-AAC & VVC en/decoder plugin compiled by Martin Eesmaa)
|
||||
|
||||
[Windows](https://mega.nz/file/e1MEUAwR#c7u7vDvwzp6JiSaRDwhCyOaH4cGnx1xQDPyKgbAd-qM)
|
||||
[Windows](https://mega.nz/file/Ws9V0IAB#e7ukWvMy1YqOXyQCSfO4r6Dzfrcv1qaDYk1sHrmtOOY)
|
||||
|
||||
[Mac OS](https://mega.nz/file/mxNTQTLb#1ifvaXap_a_cHLCIWZ-K5B0oKXvdHjgUc3Nb-YHFIio)
|
||||
[Mac OS](https://mega.nz/file/3xtTAIiQ#MPsPcz-QlSquqahmEx8ANpqleiVm2Y3L1o3R6vy7qY8)
|
||||
|
||||
[Linux](https://mega.nz/file/T8l0GTqa#oWsDDrFYjzf3LhS9zRkuqqBz6H4yJmNQUNiu_erVQLo) (Only Ubuntu 20.04 build)
|
||||
[Linux](https://mega.nz/file/X4k00QDJ#8nvnklEhOsxNl4Vw0ALoZRnViRfFlGh2QqqxDE7dtpA) (Only FFplay static won't work)
|
||||
|
||||
# Linux downloaders (Important note)
|
||||
[FFmpeg-FixVVC archived old source code](https://mega.nz/file/G81QyT5S#jcbE1sYPEy1OMIDPCF8BPeAK-3KAGF50u23MVJzmBgw) (old)
|
||||
|
||||
Unfortunately, this is Ubuntu 20.04 LTS built only.
|
||||
### Note about downloads
|
||||
|
||||
Before you use FFmpeg, make sure you install all these requirements:
|
||||
I use always Windows to compile FFmpeg, so I forgot to compile every time for Mac OS and Linux. Also, please check changelog before you download the new version.
|
||||
|
||||
### Changelog
|
||||
```
|
||||
sudo apt install libxml2 libx264-dev libx265-dev libnuma-dev libxml2 libopus-dev
|
||||
22/06/2023: Updated Linux FFmpeg by FFmpeg commits and other libraries. (still does not work for FFplay static only, others working fine)
|
||||
21/06/2023: Updated vvenc and FFmpeg commits.
|
||||
17/06/2023: Updated of vvenc, vvdec, dav1d, FFmpeg commits and others.
|
||||
01/05/2023: Added missing libvmaf feature in FFmpeg VVCEasy only.
|
||||
19/04/2023: Updated of vvenc, vvdec, FFmpeg commits and others.
|
||||
03/04/2023: New FFmpeg master latest VVCEasy builds with updated vvenc, vvdec and added libvmaf & libjxl. Removed AC4 for compilation/decoder errors for new AC4 audio files.
|
||||
03/02/2023: Updated vvenc library on Windows FFmpeg VVCEasy build.
|
||||
02/02/2023: Updated vvenc library and others on Windows FFmpeg VVCEasy build.
|
||||
29/01/2023: Updated vvenc, vvdec and other libraries on Windows FFmpeg VVCEasy build.
|
||||
10/01/2023: Updated vvenc latest and others.
|
||||
05/01/2023: Update Linux FFmpeg static builds (still does not work for FFplay static only, others working fine)
|
||||
30/12/2022: Improved vvenc codes of FFmpeg VVCEasy, thanks Thomas Siedel from Spin Digital! TIP: Type "ffmpeg_vvceasy -h encoder=libvvenc" for FFmpeg vvenc available. See the new vvenc patch: https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=7922
|
||||
23/12/2022: Update all libraries, fix MP4-ALS mono audio & added libcodec2 to FFmpeg.
|
||||
07/12/2022: Update vvenc, vvdec and others. Fixed Windows N version. (#22)
|
||||
20/10/2022: Add Linux static binaries of FFmpeg, but only FFplay does not work only.
|
||||
11/10/2022: Removed libvorbis + updated SDL2 latest.
|
||||
10/10/2022: Revert from flt to s16 for two decoders of libvorbis & libspeex.
|
||||
10/10/2022: Removed libvmaf (reason: not working), added libvorbis + libspeex improve decode quality.
|
||||
30/09/2022: Improved vmaf (float, built models to FFmpeg) & updated sdl2. Update: Fixed libvmaf models
|
||||
24/09/2022: Improved libvmaf up to date of FFmpeg code + update dav1d & vvenc.
|
||||
07/09/2022: Added Dolby AC4 decoder + updated vvenc/vvdec.
|
||||
01/09/2022: Added libopus with latest version for improve decode quality, libdav1d and libvmaf (optional if they want calculate score by vvc video and original video).
|
||||
29/08/2022: Brought back vvenc.
|
||||
```
|
||||
|
||||
If you are using other linux without Ubuntu 20.04 LTS, you have to build using:
|
||||
# Mac OS downloaders (Important note)
|
||||
|
||||
Please note, this is not a malware of my compiled build, see the three screenshots to make run FFmpeg tools customized version
|
||||
|
||||
You need to allow the app on your Mac OS for chmod write access & Security & Privacy:
|
||||
|
||||
Step 1: Click cancel button, do not move to bin.
|
||||
|
||||

|
||||
|
||||
Step 2: Go to Security & Privacy on Mac OS Settings app, then check App Store & identified developers or anywhere is on. Click "Allow anyway" to unblock an application.
|
||||
|
||||

|
||||
|
||||
Step 3: Click "Open" button, this does not hurt your computer.
|
||||
|
||||

|
||||
|
||||
### Build Mac OS for FFmpeg VVC build
|
||||
|
||||
Requirements:
|
||||
|
||||
Xcode
|
||||
|
||||
CMake
|
||||
|
||||
NASM
|
||||
|
||||
Homebrew
|
||||
|
||||
Code to build FFmpeg VVC version:
|
||||
|
||||
```
|
||||
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 &&
|
||||
brew install libxml2 ffmpeg fdk-aac nasm
|
||||
git clone https://github.com/fraunhoferhhi/vvenc
|
||||
git clone https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvenc && mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
|
||||
sudo cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
cd vvdec && mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
|
||||
sudo cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/FFmpeg-FixVVC
|
||||
cd FFmpeg-FixVVC
|
||||
./configure --enable-libfdk-aac --enable-libvvenc --enable-libvvdec --enable-static --enable-pic --enable-libxml2 --pkg-config-flags="--static" --enable-sdl2
|
||||
make -j
|
||||
```
|
||||
|
||||
If compiled is success and finished, you can install FFmpeg, using the code:
|
||||
# Linux builders (Important for FFplay)
|
||||
|
||||
You can build using [Linux script](libvvdecffmpeg.sh).
|
||||
|
||||
If you want actually play VVC file with FFplay on your local distro, you need to remove command `--extra-ldexeflags="-static"`, otherwise it might give result segmentation fault for FFplay static only.
|
||||
|
||||
If compiling is success and finished, you can install FFmpeg VVC for using the code:
|
||||
|
||||
```
|
||||
make install
|
||||
mv ffmpeg ffmpeg_vvceasy
|
||||
mv ffplay ffplay_vvceasy
|
||||
mv ffprobe ffprobe_vvceasy
|
||||
sudo cp ffmpeg_vvceasy ffplay_vvceasy ffprobe_vvceasy /usr/local/bin
|
||||
```
|
||||
|
||||
# Special thanks
|
||||
@ -85,6 +189,16 @@ Original author: [@FFmpeg](https://github.com/FFmpeg) Repository: https://github
|
||||
|
||||
[@lehmann-c](https://github.com/lehmann-c) (Christian Lehmann) Repository: https://github.com/lehmann-c/FFmpeg
|
||||
|
||||
[@tbiat](https://github.com/tbiat) Repository: https://github.com/tbiat/FFmpeg
|
||||
[@tbiat](https://github.com/tbiat) (Thibaud Biatek) Repository: https://github.com/tbiat/FFmpeg
|
||||
|
||||
- Martin Eesmaa
|
||||
VVC encoder programmer to FFmpeg: [@IsaMorphic](https://github.com/IsaMorphic) (Isabelle Santin) Repository: https://github.com/IsaMorphic/FFmpeg-VVC
|
||||
|
||||
[@MartinEesmaa](https://github.com/MartinEesmaa) (Martin Eesmaa) Repository: https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
|
||||
[@NuoMi](https://github.com/nuomi2021) of some codes and [Thomas Siedel](https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=8577) of new external VVC encoder & decoder.
|
||||
|
||||
AC4 decoder programmer to FFmpeg: [@richardpl](https://github.com/richardpl) (Paul B Mahol) Repository: https://github.com/richardpl/FFmpeg/tree/ac4
|
||||
|
||||
AC4 support in mp4 container: [@AUGxhub](https://github.com/AUGxhub) Repository: https://github.com/AUGxhub/FFmpeg/tree/patch-1
|
||||
|
||||
- Martin Eesmaa
|
@ -1,5 +1,7 @@
|
||||

|
||||
|
||||
# VLC Media Player (Inter Digital VLC VTM Decoder Plugin installation of Windows and Linux)
|
||||
This can work only for VLC 3.0.9.2 and later version (eg. 3.0.17.4). VLC 4.0.0-dev won't work.
|
||||
This can work only for VLC 3.0.9.2 and later version (e.g., 3.0.17.4). VLC 4.0.0-dev won't work.
|
||||
|
||||
To install Inter Digital VLC VTM Decoder Plugin, you need VLC Media Player latest version installed on your computer and supported 64-bit.
|
||||
|
||||
@ -15,23 +17,93 @@ 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:
|
||||
Open terminal and 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
|
||||
sudo cp libvvcdecoder_plugin.so libvtmdec.so /lib/x86_64-linux-gnu/vlc/plugins/codec
|
||||
sudo cp libvctsdemux_plugin.so /lib/x86_64-linux-gnu/vlc/plugins/demux
|
||||
```
|
||||
|
||||
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
|
||||
sudo cp libvvcdecoder_plugin.so libvtmdec.so /snap/vlc/2344/usr/lib/vlc/plugins/codec
|
||||
sudo cp libvctsdemux_plugin.so /snap/vlc/2344/usr/lib/vlc/plugins/demux
|
||||
```
|
||||
Preview:
|
||||
|
||||

|
||||
|
||||
# Build VLC InterDigital Plugin
|
||||
|
||||
Explanation of CMAKE names:
|
||||
|
||||
VLC_INCLUDE_DIR = Includes of VLC SDK Plugins
|
||||
|
||||
VLC_LIB_DIR = Libs of VLC SDK
|
||||
|
||||
VLC_PROGRAM_DIR = VLC Program directory
|
||||
|
||||
VTMDEC_LIB_NAME = Name title of libvtmdec
|
||||
|
||||
VTM_DIR = libvtmdec source files
|
||||
|
||||
VLC_SRC_DIR = VLC Source files of the desktop version
|
||||
|
||||
DVBPSI_DIR = DVBPSI source files
|
||||
|
||||
### Windows
|
||||
|
||||
You need the CMAKE GUI, Visual Studio 2017 or newer, VLC SDK, [libvtmdec](https://vcgit.hhi.fraunhofer.de/delagrangep/VVCSoftware_VTM/-/tree/VTM-18.2-MT) precompiled shared dll in lib folder + sources, dvbpsi source and VLC source files of the desktop version. You need to modify vlc_threads.h, before compile.
|
||||
|
||||
vlc_threads.h can be found in VLC folder/sdk/include/vlc/plugins. Search `val = poll(fds, nfds, timeout);` and comment the only one file, that's it.
|
||||
|
||||

|
||||
|
||||
Build Decoder Plugin, see screenshot of CMAKE GUI:
|
||||
|
||||

|
||||
|
||||
Build TS Demuxer Plugin, see screenshot of CMAKE GUI:
|
||||
|
||||

|
||||
|
||||
### Linux
|
||||
|
||||
You need CMAKE GUI, build-essentials, VLC SDK, [libvtmdec](https://vcgit.hhi.fraunhofer.de/delagrangep/VVCSoftware_VTM/-/tree/VTM-16.0-MT) sources, dvbpsi source and VLC source files of the desktop version. You need to modify vlc_threads.h, before compile.
|
||||
|
||||
vlc_threads.h can be found in VLC folder/sdk/include/vlc/plugins. Search `val = poll(fds, nfds, timeout);` and comment the only one file, that's it.
|
||||
|
||||

|
||||
|
||||
libvtmdec build:
|
||||
Compiled file could be found in lib folder in libvtmdec.
|
||||
|
||||
```
|
||||
mkdir build && cd build
|
||||
cmake -DBUILD_SHARED_LIBS=1 ..
|
||||
make -j
|
||||
```
|
||||
|
||||
Before build Decoder Plugin, you need to find libvlccore in Linux.
|
||||
|
||||
dvbpsi build requires of TS Demuxer Plugin:
|
||||
|
||||
```
|
||||
./bootstrap
|
||||
./configure --enable-release
|
||||
make -j
|
||||
sudo make install
|
||||
```
|
||||
|
||||
Build Decoder Plugin, see screenshot of CMAKE GUI:
|
||||
|
||||

|
||||
|
||||
Build TS Demuxer Plugin, see screenshot of CMAKE GUI:
|
||||
|
||||

|
||||
|
||||
Original documentation must be in the original repository: https://github.com/InterDigitalInc/VTMDecoder_VLCPlugin
|
||||
|
||||
### Alternative using command line of Windows
|
||||
|
||||
Open Windows Terminal/Windows Command Prompt, make sure you do cd of C:/Users/(put your username)/Downloads/VVCEasy/VLC
|
||||
@ -49,6 +121,6 @@ The VVC video file cannot loaded by newest version of VLC 4.0.0-dev, because it
|
||||
|
||||
For more information about VLC 4.0.0-dev see: https://www.theverge.com/2021/2/12/22279750/vlc-4-0-new-user-interface-videolan-media-player-video-music-movie-database-web-player
|
||||
|
||||
I tried 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.
|
||||
I tried to build two DLL files on VLC 4.0.0 SDK, but the compiler failed, so you must use VLC 3.0.9.2 and latest of VLC 3 version branch.
|
||||
|
||||
- Martin Eesmaa
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
LAVFilter/LAVFilters-0.77.2-x64-VVCEasy.7z
Normal file
BIN
LAVFilter/LAVFilters-0.77.2-x64-VVCEasy.7z
Normal file
Binary file not shown.
16
LAVFilter/README.md
Normal file
16
LAVFilter/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# LAV Filters for Windows (VVC version)
|
||||
|
||||
LAV Filters is an open source of Windows DirectShow filters with splitter and decoder for FFmpeg.
|
||||
|
||||
For VVC version, it includes external VVC decoder libvvdec and xHE-AAC with LAV Filters and can be played by any DirectShow players, but it requires Windows Vista and later.
|
||||
|
||||
To install LAV Filters VVC version on your computer, you need right click and run as administrator for batch files (.BAT file).
|
||||
|
||||
Original source code: https://github.com/Nevcairiel/LAVFilters
|
||||
|
||||
Changelog:
|
||||
```
|
||||
21/03/2023: Full VVC support and libfdk_aac is default after native AAC and AAC Fixed decoder disabled to fix USAC/xHE-AAC playable.
|
||||
```
|
||||
|
||||
- Martin Eesmaa
|
Binary file not shown.
@ -1,6 +1,16 @@
|
||||
b6b00c32aae457d3c0f1742106eb629347e8aad297e19567430fe1ce299664c1 LinuxVVC.7z
|
||||
b55034464d869c9a0574ea85400b8a1c28626f0f78db1abca92bba761cd37cfc vvdecapp
|
||||
37d800140740b91db8b75ba56997b3bde6ee64f4efe7c3936d3ac8df7a09a762 vvencapp
|
||||
23efb4866a3fc959daa5f4f4b911414cbcebd2da07fd6807572183f42a90d273 vvencFFapp
|
||||
884ab4e1b438473842967aa1a78e280b92e0fb8f2c55b1108011a0a400b7c829 vvencinterfacetest
|
||||
e39176501602d6892f01f19083c56fc29f998aedd3255bbdd6da4f66eb170679 vvenclibtest
|
||||
9da0f180e93a23e3e54f7e0de9343a95c05dd84e6a0bb1890b08ebf8db51cbc1 arm64/vvdecapp
|
||||
1a82c9388be5b3ea7a80a4f9d567767a4e442c66a8c79f633ea194fc4e46e1ac arm64/vvencapp
|
||||
c19e0a6b87b10a59e8c265b261697892acf0534415f145960820a9af2b883e7c arm64/vvencFFapp
|
||||
767db0f49a827ca815b360fc794d23f6b3225da77ccf45dc88cdd1bf8cc2e3b0 arm64/vvencinterfacetest
|
||||
126b39cea6f768482e0d6349700122753473e9add18323dbd87e5e42d799c12e arm64/vvenclibtest
|
||||
274cb13f18fa8580ecddbae973180a67d3e5dedccc8304a52455829f2cde6ba7 LinuxVVC.7z
|
||||
6f70f517a10fa946ebb989c01142855b46e75ddefbdc2d45f54438251b6e44ce vvdecapp
|
||||
7d55e872ccc424773bb8c6ba17318dee4d087ae7ca8e336c45578f9b6529f26a vvencapp
|
||||
86ca551aa7d898f514fbd7c71f32678d3505dc5fbed46d48a34ba65c74d6fed7 vvencFFapp
|
||||
918579cdbaee32d171e97022d7e0e446b4fb57689bb743ca3b8bf4ce3f4af50e vvencinterfacetest
|
||||
478a3de7c45437ac1f3c3d80f04dec075405f1021ad76f9aca0df30db5f4f87d vvenclibtest
|
||||
6f70f517a10fa946ebb989c01142855b46e75ddefbdc2d45f54438251b6e44ce x64/vvdecapp
|
||||
59533e5dbe7dccacc73f5da1d50e1d12e70b06a936a082acb5db77e05a1b1c67 x64/vvencapp
|
||||
85bb66f8374c6735cfa2ebc737206e5a4c6d06512dfd6dfd52c7a3a7088c962a x64/vvencFFapp
|
||||
e3c6d3b292d4a75f5f7a54d584b3a7fbcb834c80a45efad2ef8f4910c131e2fb x64/vvencinterfacetest
|
||||
a52ff605cfdaa7209f24001e91193005d44a6ebe08130ec9cef2a6c85b4bcbe4 x64/vvenclibtest
|
||||
|
119
MPV.md
119
MPV.md
@ -1,51 +1,124 @@
|
||||

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

|
||||

|
||||
|
||||

|
||||
|
||||
# Download MPV Android Player (OpenVVC plugin)
|
||||
# Download MPV Windows/Android Player (libvvdec + xHE-AAC plugin)
|
||||
|
||||
[Android SDK 29 .APK Debug (Recommended)](https://mega.nz/file/K4FQFATS#7E6FmEOn9h3UIQLg0ZVb66_zItlHBT8DzT2qx5Zr23Q)
|
||||
[Windows 7 and later x64](https://mega.nz/file/78NjGDbS#Tu5RoJHJmaHGyZaeL5rc7pfh3X2lbIIZ70zKqRtKNKc)
|
||||
|
||||
[Android SDK 29 .APK Release unsigned](https://mega.nz/file/Ch1AgJDD#f__m02qj0F8xkYTVY8o_BOUfZQkhtNkX1Y3fhKG8PKM)
|
||||
[Windows MPV.NET VVCEasy version x64](https://mega.nz/file/a5thiAzS#RIJRVXKezVTRVcukauxpxHMQGtoGpyOthiw2zTNi1bE)
|
||||
|
||||
[Android SDK 30 .APK Debug](https://mega.nz/file/v4shBToK#P8bBW70b5QG3SY4rqnz7DZaFq7vrXACmS9tHTWFHgqg)
|
||||
[Windows MPVLIB VVCEasy version x64](https://mega.nz/file/n8dAwBSZ#abnQSBIL4uzahXM8ZdomUHbh40S93-tp3okrlZ7gT6o)
|
||||
|
||||
[Android SDK 30 .APK Release unsigned](https://mega.nz/file/L1d0RCRA#JyGcjFRsVQNjo_y0j11_Kdx9oXapOt3fg87-RzppURg)
|
||||
[Android API 29 .APK Debug (Recommended)](https://mega.nz/file/L9VyXQIY#HfPbk_txbfFyXoGWWY0lOEr4N1diwlnyF0-EnZ_MZA0)
|
||||
|
||||
[Android .APK Debug Stable](https://mega.nz/file/H8kRUDBT#zWax2e1xxebrIZMmYPrmiWcbZBHnVAzAVZlY3EmuPnU)
|
||||
[Android API 29 .APK Release unsigned](https://mega.nz/file/34M1DJ5L#wNd8aTr9B2eLEAgd01mnL8CEOe0JTVrxO4XvpzJeCY4)
|
||||
|
||||
[Android API 29 .APK Debug with gpu-next](https://mega.nz/file/3p0zyCCI#BRmCY58lwikvck0gbcyFX3IvcGu_7wxZn-mWezaD1uk)
|
||||
|
||||
[Android API 29 .APK Release with gpu-next](https://mega.nz/file/C5dyXbpJ#ta2DouVYLOaXeZ6VW9fLqIm7a3I2AoFxWlD-unG18T4)
|
||||
|
||||
### Changelog
|
||||
|
||||
Please check the changelog before you download the new version.
|
||||
|
||||
```
|
||||
18/06/2023 - Improved codes and new commits of Android MPV VVCEasy custom build standalone.
|
||||
17/06/2023 - Cross compiled of Windows using Arch Linux for improved libraries and updated FFmpeg, MPV & MPV.NET VVCEasy build. New libmpv build.
|
||||
04/04/2023 - New Android MPV VVCEasy build with new FFmpeg VVCEasy libraries for updated vvenc and vvdec. For gpu-next build, still experimental.
|
||||
03/04/2023 - New MPV and MPV.NET latest VVCEasy build with new FFmpeg VVCEasy libraries for updated vvenc, vvdec and added libjxl, shaderc, libplacebo and vulkan to make gpu-next available.
|
||||
29/03/2023 - Update MPV Android package and icons. Tip: You can have two builds between official and VVCEasy build.
|
||||
19/02/2023 - Add Android TV support of APK builds & update Android MPV VVCEasy builds.
|
||||
15/02/2023 - Added Android MPV VVCEasy build with gpu-next support.
|
||||
14/02/2023 - Update Android MPV VVCEasy build latest, but vulkan support is removed for some reason.
|
||||
29/01/2023 - Updated vvdec code, mpv.net and others on Windows MPV VVCEasy build.
|
||||
11/01/2023 - Updated vvdec, added Vulkan with shaderc on MPV Android VVCEasy build.
|
||||
11/10/2022 - Removed libvorbis + updated SDL2 & mpv.net latest.
|
||||
10/10/2022 - libplacebo removed (does not work Dolby Vision with my custom build) + update mpv, added zimg, & two improved decoders of libspeex & libvorbis.
|
||||
11/09/2022 - Complete static adding LDFLAGS="-static" to fix new Intel CPU processor users for mpv.net.
|
||||
11/09/2022 - Added libplacebo + ffnvcodec.
|
||||
11/09/2022 - Added optional features: SDL2 gamepad, dvdnav & libbluray.
|
||||
10/09/2022 - Initial release of MPV.NET.
|
||||
01/09/2022 - New complete static of Windows MPV VVCEasy build.
|
||||
```
|
||||
|
||||
# Limitations & Tips
|
||||
|
||||
This app might crash, slow or freeze on your Android phone for playing VVC high resolutions or/and old devices.
|
||||
MPV Android libvvdec app requires your system type of ARM64 (aarch64), x86 (i686), ARMv7 (armeabi-v7a) and x86_64 to run on Android or Windows requires to run x64.
|
||||
|
||||
MPV Android OpenVVC App requires your system type of ARM64 (aarch64) and x86_64 to run on Android.
|
||||
Windows/Android MPV Player doesn't work seek duration of VVC decoded file only, but only mp4 video container mixed with VVC video codec is only seek supported, including audio & subtitle too.
|
||||
|
||||
Android MPV Player doesn't work seek duration of VVC decoded file.
|
||||
Some Android users for 10-bit pixel format or/and tier high might not show video in mp4 container with VVC video codec only.
|
||||
|
||||
Standby or sleep Android device may not return of your resume playback after you unlock device.
|
||||
Solution: Please download latest mp4box nightly version and re-mux from .266 to .mp4 file again.
|
||||
|
||||
### Tips
|
||||
|
||||
Make sure to allow apps from unknown sources. [Link: Wikihow](https://www.wikihow.com/Allow-Apps-from-Unknown-Sources-on-Android)
|
||||
Make sure to allow apps from unknown sources. Link: [Wikihow](https://www.wikihow.com/Allow-Apps-from-Unknown-Sources-on-Android)
|
||||
|
||||
If Google warns you, that Android MPV (OpenVVC plugin) app is malicious by Play Protect, press "Install anyway".
|
||||
If Google warns you that Android MPV (libvvdec plugin) app is malicious by Play Protect, press "Install anyway" on your phone.
|
||||
|
||||
You can also play external sound audio file from VVC video codec file.
|
||||
On Windows, there is available MPV.NET custom build on this download. Source code: https://github.com/stax76/mpv.net
|
||||
|
||||
# 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
|
||||
e1c96ffc079d5433dca22322dacbd14bf1ad2cca3056c67976b03f34cf46f01a MPV-VVCEasy-API29debug.apk
|
||||
95a469ac4b11b3d9323e02c2757d7cbb0e4507d8a97d54e4134f31a47c1341e2 MPV-VVCEasy-API29release-unsigned.apk
|
||||
6cca9e73a23a376f704f60e716d1ecc206c290e908b42aab341353f304dacc58 MPV-VVCEasy-API29debug-gpunext.apk
|
||||
55a4182bf4a0bec8b0236e7de3c2f169a4df33735b842b083951647dbf5bfe64 MPV-VVCEasy-API29release-unsigned-gpunext.apk
|
||||
35bb3422e977edb65405bd26e4de9b64705e08455fd8e3561a9610628f0bafab MPV-VVCEasy-Windows-x64.7z
|
||||
bcdd83d7d6e393e990808cdc19b7580e5d98c537c42eb67e9774f86b22f5e533 MPV.NET-VVCEasy-Windows-x64.7z
|
||||
```
|
||||
|
||||
- Martin Eesmaa
|
||||
# Build MPV Android with VVC and xHE-AAC:
|
||||
|
||||
If you want to build MPV Android, you need to update & upgrade first, then install packages:
|
||||
```
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install build-essential cmake nasm libsimde-dev python3 git
|
||||
```
|
||||
|
||||
Next download Temurin from Adoptium and follow the install instructions:
|
||||
|
||||
https://adoptium.net/installation/linux
|
||||
|
||||
After you installed Temurin from Adoptium, you can verify that is installed on your system:
|
||||
```
|
||||
java --version
|
||||
```
|
||||
|
||||
After installing the packages on Linux, clone mpv-android-vvc repository:
|
||||
```
|
||||
cd
|
||||
git clone https://github.com/MartinEesmaa/mpv-android-vvc
|
||||
cd mpv-android-vvc/buildscripts
|
||||
```
|
||||
|
||||
Give shell scripts permission in buildscripts folder:
|
||||
```
|
||||
chmod +x scripts/*.sh
|
||||
```
|
||||
|
||||
Before you build, you need to search `#ifdef __ANDROID__` and delete the lines by end `#endif`:
|
||||
|
||||
```
|
||||
nano deps/fdkaac/libSBRdec/src/lpp_tran.cpp
|
||||
```
|
||||
|
||||
Save the file in nano editor, when you finished removing `#ifdef __ANDROID` lines.
|
||||
|
||||
**TIP: You can edit script of vvdec.sh on your own choice.**
|
||||
|
||||
Continue follow instructions to build your own MPV build:
|
||||
|
||||
https://github.com/mpv-android/mpv-android/blob/master/buildscripts/README.md
|
||||
|
||||
- Martin Eesmaa
|
Binary file not shown.
@ -1,6 +1,11 @@
|
||||
bd4df44d5aa6b472e57e6a3b6ed4e5d1ea6d6a8e4d51fb114a51a3153faa310c MacOSVVC.7z
|
||||
0387616bdeb26de30cd9b5465321cd7292fc40cd4b00975401d17e7c9f91effb vvdecapp
|
||||
32fa76374ed08be1f2b4b70676afca71cccf6ecb8d450d0233dc0adc11b08129 vvencapp
|
||||
db0e243caab9e242378f239c29a4a4c88babe81f94a0e8a78aaadb8a47a54850 vvencFFapp
|
||||
e4f68a7a67eb0bcc33009f301204515ed5a608b7684d77ab54659302daadfc6e vvencinterfacetest
|
||||
59159c71eb2d324b1f6f86a8c5daad877fdd8b47f732bdd863b8c0eee5795cd0 vvenclibtest
|
||||
79d6f766a250980bc3ba7c082b86b5005df4b1898e55bc3d1b018512fc300410 arm64/vvdecapp
|
||||
b49c4e67c0ea6bcc817711f127a1a73eeeaa835014e8012adaf6bda8c6d22d98 arm64/vvencapp
|
||||
efb33ea9e833a64c81917d57b482e9aa5a60df67e8e4ed14e21d676cc4fecdf4 arm64/vvencFFapp
|
||||
38c9530cddb8e4c7c26e7e24072218ad4a073e1e75c182e38bdf93ec0d2e4ec9 arm64/vvencinterfacetest
|
||||
b9de440956178fddc85667f6383289863e249a6f506e82fb8bb10194d034ce65 arm64/vvenclibtest
|
||||
13ee8659a31f8867e681b187689b332aa02ba155c866a8902080096dca537f64 intel_x64/vvdecapp
|
||||
2dcbb19301375dd6df6bd0ba32c478196d7444bf392dc25e68043a6f0f54fa07 intel_x64/vvencapp
|
||||
296431dee43444c6d6d976eb54a4046e48311d4b3b4ee21a1e273b1d9bb26486 intel_x64/vvencFFapp
|
||||
88e3dcafa38fa7b5ee8669eda89292211802eb095ad7fabf18258f6a5fd0ce29 intel_x64/vvencinterfacetest
|
||||
d192ca2e45d0dbf3cdf769688795416f1d2605a9a793d9d75072a16ebc5798a0 intel_x64/vvenclibtest
|
||||
331947784a061cef9c944ebdf5fb64552663bba8f95f293c6e71bbf02a0a6973 MacOSVVC.7z
|
||||
|
42
Program.cs
42
Program.cs
@ -1,5 +1,3 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Net;
|
||||
|
||||
namespace VVCEasy
|
||||
@ -8,18 +6,21 @@ namespace VVCEasy
|
||||
{
|
||||
public static void Main()
|
||||
{
|
||||
string version = "v2.0.0";
|
||||
string codeversion = "Party of Martin Eesmaa's birthday at age 18.";
|
||||
string title = "Martin Eesmaa / VVCEasy";
|
||||
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.Title = title;
|
||||
Console.WriteLine("Martin Eesmaa / VVCEasy\nWelcome to VVCEasy. (.NET Console Release Version, " + version + ")\nVersion codename: " + codeversion);
|
||||
Console.ReadLine();
|
||||
do
|
||||
{
|
||||
Console.Clear();
|
||||
Console.WriteLine("VVCEasy (.NET Console Beta Version, v.0.9.0)");
|
||||
Console.WriteLine("VVCEasy (.NET Console Release Version, " + version + ")");
|
||||
Console.WriteLine("Version codename: " + codeversion);
|
||||
Console.WriteLine("Note: C# is not ready yet, malfunction mode\n");
|
||||
Console.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)");
|
||||
Console.Title = title;
|
||||
Console.WriteLine("What would you like to do for encode/decode of VVC?\n1. Encode\n2. Decode\n3. Help\n4. Exit\n5. Install/Test path environment\n6. Install FFmpeg VVDec support\n7. Install quickly through Anaconda for ffmpeg (Windows)\n8. Install VVdec Web Player\n9. Decompress WindowsVVC.7z (Before you use new VVCEasy version!!!)\n10. Install vvDecPlayer from BitMovin\n11. Install/Update VLC VTM Plugins (Windows/Linux x64 of VLC plugins by Inter Digital Inc)\n12. Install MPV Windows/Android (libvvdec plugin)\n13. Tests of VVC videos");
|
||||
|
||||
string input = Console.ReadLine();
|
||||
|
||||
@ -43,7 +44,7 @@ namespace VVCEasy
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "VVC ENCODER (YUV LOSSY)";
|
||||
Console.WriteLine("Before we start encode from your YUV file to VVC file, I'm afraid I cannot do automatically for you.\nYou have to manually encode to VVC, the 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.WriteLine("Before we start encode from your YUV file to VVC file, I'm afraid I cannot do automatically for you.\nYou have to manually encode to VVC, the batch file won't work.\nHere is code: vvencapp --qp 38 -i yourinput.yuv -s 854x480 -r 30 -o youroutputlossy.266\nYOU HAVE TO REPLACE VIDEO SIZE AND FRAME RATE. -s is video size and -r is frame rate.\nYou can also add for --tier high or/and 10-bit video -c yuv420_10, if necessary.");
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (input3 == "2")
|
||||
@ -119,7 +120,7 @@ namespace VVCEasy
|
||||
}
|
||||
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: ");
|
||||
Console.WriteLine("Installer path environment will be only for 7-Zip.\nOther programs should need manual, but Python, FFmpeg, wget and git must be installed manually and add automatically path environments.\nDo you want patch 7-Zip on your path environment, so you can type 7z next time.\n Would you like to install 7-Zip on your path environments? Y/N? No means go back to test menu.\n\nAnswer: ");
|
||||
|
||||
string installpath1 = Console.ReadLine();
|
||||
|
||||
@ -141,7 +142,7 @@ namespace VVCEasy
|
||||
|
||||
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.WriteLine("Your favorite operating system is available on FFmpeg VVDec support. Please copy the link to a web browser.\nWindows: https://mega.nz/file/e1MEUAwR#c7u7vDvwzp6JiSaRDwhCyOaH4cGnx1xQDPyKgbAd-qM\nMac OS: https://mega.nz/file/K09gRbYJ#SewWjY4LqVdvlivXJhqQMjrsXO6ec8a1jmapj5nO2Gs\nLinux (Only Ubuntu 20.04 built): https://mega.nz/file/T8l0GTqa#oWsDDrFYjzf3LhS9zRkuqqBz6H4yJmNQUNiu_erVQLo\n\nSee information on FFMPEGVVC.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md\nPress enter to go back menu.\n");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
@ -173,7 +174,7 @@ namespace VVCEasy
|
||||
Console.Title = "INSTALLING VVDEC WEB PLAYER...";
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.WriteLine("Sorry, the command is not ready yet...");
|
||||
Console.ReadLine();
|
||||
@ -207,7 +208,7 @@ namespace VVCEasy
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Windows...\nSorry, the C# console is not ready yet...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
@ -216,7 +217,7 @@ namespace VVCEasy
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Mac OS...\nSorry, the C# console is not ready yet...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
@ -225,7 +226,7 @@ namespace VVCEasy
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Linux...\nSorry, the C# console is not ready yet...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
@ -254,7 +255,7 @@ namespace VVCEasy
|
||||
Console.WriteLine("Installing of VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)\nSorry C# is malfunction mode...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
@ -262,10 +263,17 @@ namespace VVCEasy
|
||||
else if (input == "12")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Android MPV PLayer (OpenVVC support)";
|
||||
Console.Title = "Android MPV Player (OpenVVC support)";
|
||||
Console.WriteLine("See information MPV.md or online Github: https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md\nPress enter to go back menu.\n");
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (input == "13")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Tests of VVC videos";
|
||||
Console.WriteLine("Please see the paragraph in README.md.\nhttps://github.com/MartinEesmaa/VVCEasy/#tests-of-vvc-videos\n\nSee information on FFMPEGVVC.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md\n\nPress enter to go back menu.");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
while (exit == false);
|
||||
}
|
||||
|
241
README.md
241
README.md
@ -9,39 +9,44 @@ https://github.com/MartinEesmaa/VVCEasy/actions/workflows/dotnet.yml)
|
||||

|
||||

|
||||
|
||||
# VVCEasy (Windows, Mac OS, Linux & Android) (by Martin Eesmaa)
|
||||
# VVCEasy (Windows, macOS, Linux & Android) (by Martin Eesmaa)
|
||||
VVCEasy is that you don't have to compile or/and coding to encode VVC (known as Versatile Video Codec). Simple, Easy, Encode and Decode.
|
||||
|
||||
VVCEasy comes to one-easy command of ffmpeg, VVC Tools, python, VLC o266player, VVDEC Web Player, Bitmovin VVDec Player, YUView, libvvdec and more.
|
||||
VVCEasy comes to one-easy command of FFmpeg, VVC Tools, VLC o266player, VVDEC Web Player, Bitmovin VVDec Player, libvvdec and more.
|
||||
|
||||
Installation: Go to the releases and download latest version.
|
||||
|
||||
VVCEasy is not finished yet. I'm trying to work out with my codes. I'm not good for code programming, just simple coding.
|
||||
Sorry to say this. I will give you of my update announcement once I release the news.
|
||||
|
||||
Windows source run (Batchfile): VVCEasy.bat
|
||||
Windows source run (Batch-file): VVCEasy.bat
|
||||
|
||||
Windows/Mac/Linux source run (Csharp): Bin/Release or Debug/netX.x/VVCEasy.exe (after build of C#), this requires VVCEasy.dll to run console application.
|
||||
|
||||
Matrix chat: https://matrix.to/#/#vvceasy:matrix.org
|
||||
|
||||
Revolt: https://app.revolt.chat/server/01G1QSBZ4AMGDBWPVJ63EDZCD7/channel/01G1QSBZ4ABH7REMG6T47R8KS4
|
||||
Revolt: https://app.revolt.chat/invite/0Y10qHzP
|
||||
|
||||
Discord: https://discord.gg/t54cADTbWW
|
||||
|
||||
Reddit's community: https://reddit.com/r/VVCEasy
|
||||
|
||||
Sourceforge: https://sourceforge.net/projects/vvceasy
|
||||
|
||||
*Note: Please note for my first language is Estonian and not native with English language. Some my English words might be errors with incomprehensible.*
|
||||
|
||||
# All lists
|
||||
|
||||
- [Donate to Martin Eesmaa using cryptocurrency](#donate-to-martin-eesmaa-using-cryptocurrency)
|
||||
- [Donate to Martin Eesmaa using cryptocurrency](#donate-to-martin-eesmaa-for-an-cryptocurrencies)
|
||||
|
||||
- [Tests of VVC videos](#tests-of-vvc-videos)
|
||||
|
||||
- [VLC InterDigital VTM VVC Plugin](#vlc-interdigital-vtm-vvc-plugin)
|
||||
|
||||
- [VLC o266player](#vlc-o266player-windows-only-mac-os-will-be-later)
|
||||
- [FFmpeg VVC En/Decoder & xHE-AAC support](#ffmpeg-vvencdec--xhe-aac-support)
|
||||
|
||||
- [Bitmovin VVDec Player](#bitmovin-vvdec-player)
|
||||
- [MPV libvvdec + xHE-AAC support (Windows x64/Android only)](#mpv-libvvdec--xhe-aac-support-windows-x64android-only)
|
||||
|
||||
- [FFmpeg VVC Decoder support](#ffmpeg-vvdec-support)
|
||||
- [LAVFilters VVC version x64](#lavfilters-vvc-version-x64)
|
||||
|
||||
- [MPV OpenVVC support (Android only)](#mpv-openvvc-support-android-only)
|
||||
- [Deprecated builds](#deprecated-builds)
|
||||
|
||||
- [Compile for VVCEasy](#compile-for-vvceasy)
|
||||
|
||||
@ -59,7 +64,7 @@ Discord: https://discord.gg/t54cADTbWW
|
||||
|
||||
- [Credits & Licenses](#credits--licenses)
|
||||
|
||||
# Donate to Martin Eesmaa using cryptocurrency
|
||||
# Donate to Martin Eesmaa for a cryptocurrencies
|
||||
|
||||
- **BTC (BITCOIN):**
|
||||
```
|
||||
@ -67,17 +72,28 @@ bc1qhf4zu5uythr7vyt2dru73qp0k2rzrx355fsx47yjxc2ueunz8frqxmwap3
|
||||
```
|
||||
- **XMR (MONERO):**
|
||||
```
|
||||
85Ahh93M88gV8ekymtYwb6TS14TZ36jNGTFgceaRH7hj8Rtx1qVB9PobnJLR5siz4nYBnzWy3pkV6KaVroifGMVh7n4br3J
|
||||
46Fk6k3qzhwXpLsDRWo4Uh63DDmwRX7gbL6P3zodAnvnRDr9Psi9uau19nCRQFHbmp3nLR3d5Ve8WRid71nuLZxAGygZ258
|
||||
```
|
||||
- **BAT (BASIC ATTENTION TOKEN):** For Brave Browser users only, you can also contribute by supporting me, I'm verified Brave user on Brave Rewards.
|
||||
- **BAT (BASIC ATTENTION TOKEN):** For Brave Browser users only, you can also contribute by supporting me, I'm a verified Brave user on Brave Rewards.
|
||||
|
||||
- **Estonian bank account (Luminor Eesti IBAN):** You can donate to me. You have to pay a little network send fees before donate.
|
||||
```
|
||||
EE511700017003558571
|
||||
```
|
||||
|
||||
# Tests of VVC videos
|
||||
|
||||
You can test Martin Eesmaa's encoded movies of VVC video codec and follow README.txt instructions.
|
||||
|
||||
[Tears of Steel VVC](https://mega.nz/folder/64swUYxI#WE5njn2aX6-6fxypNC3gtA)
|
||||
|
||||
# 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...
|
||||
I have great news. VLC latest version worked out well of Inter Digital VTM plugins. On o266player, there were some problems on my computer for one reason...
|
||||
|
||||
One reason that my Windows 11 operating system won't view video of VVC file on o266player version. On VTM plugins of VLC, now it shows me VVC video good.
|
||||
|
||||
Here is a my comparision of o266player version and VTM VVC plugins:
|
||||
Here is a comparison of o266player version and VTM VVC plugins:
|
||||
|
||||
Top left and right is o266player by Tencent Cloud.
|
||||
|
||||
@ -93,35 +109,33 @@ When you try to play your MPEG-TS or TS file, it will crash with your InterDigit
|
||||
|
||||
Without InterDigital VLC VTM Plugin, playing MPEG-TS or TS file will play fine in your all original plugins (except VLC VTM Plugin) on your VLC Media Player.
|
||||
|
||||
About o266player: Since o266player repository have no new commits than one year.
|
||||
# FFmpeg VVENC/DEC & xHE-AAC support
|
||||
|
||||
We will remove o266player list, if no new commits than one year.
|
||||
FFmpeg VVC En/Decoder & xHE-AAC supports of Windows, Mac and Linux.
|
||||
|
||||
# VLC o266player (Windows only, Mac OS will be later)
|
||||
See [FFMPEGVVC.md](FFMPEGVVC.md).
|
||||
|
||||
For more information about o266player.
|
||||
# MPV libvvdec + xHE-AAC support (Windows x64/Android only)
|
||||
|
||||
See [o266player.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/o266player.md).
|
||||
MPV libvvdec & xHE-AAC supports only of Windows x64 & Android.
|
||||
|
||||
# Bitmovin VVDec Player
|
||||
The VVC and MP4 mux with VVC codec can be played on MPV libvvdec + xHE-AAC version. Only MP4 mixed with VVC supports seek.
|
||||
|
||||
For more information about Bitmovin VVDec Player.
|
||||
See [MPV.md](MPV.md).
|
||||
|
||||
See [Bitmovin.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/Bitmovin.md).
|
||||
# LAVFilters VVC version x64
|
||||
|
||||
# FFmpeg VVDEC support
|
||||
For more information about LAVFilters Windows VVC version.
|
||||
|
||||
FFmpeg VVC Decoder supports of Windows, Mac and Linux.
|
||||
See [LAVFilter folder](LAVFilter/README.md)
|
||||
|
||||
See [FFMPEGVVC.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md).
|
||||
# Deprecated builds
|
||||
|
||||
# MPV OpenVVC support (Android only)
|
||||
Those deprecated builds were no new commits/codes after one year.
|
||||
|
||||
MPV OpenVVC Decoder supports only of Android.
|
||||
For Bitmovin VVDec Player, see [Bitmovin.md](Bitmovin.md).
|
||||
|
||||
Only VVC file can play, but merged .mp4 is black screen, so you need external sound from vvc video codec, if necessary.
|
||||
|
||||
See [MPV.md](https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md).
|
||||
For VLC o266player build, see [o266player.md](o266player.md).
|
||||
|
||||
# Compile for VVCEasy
|
||||
|
||||
@ -133,14 +147,14 @@ 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
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/VVCEasy && cd VVCEasy
|
||||
VVCEasy_compiler.iss
|
||||
```
|
||||
|
||||
Step 2: Before you compile, please replace example username by your username of LicenseFile, OutputDir and Source. See the image:
|
||||

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

|
||||
|
||||
---
|
||||
@ -152,17 +166,17 @@ 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
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/VVCEasy && 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.
|
||||
Step 2: Before you build, make sure to build it. Don't worry, when you build with .NET, it will restore project and build.
|
||||
```
|
||||
dotnet build && dotnet test --no-build --verbosity normal
|
||||
dotnet build -c Release
|
||||
```
|
||||
|
||||
Step 3: Once building is done, the build folder directory is bin/Debug
|
||||
Step 3: Once building is done, the build folder directory is bin/Release
|
||||
```
|
||||
cd bin/debug
|
||||
cd bin/Release
|
||||
```
|
||||
|
||||
*Tip: You can run VVCEasy without building.*
|
||||
@ -172,14 +186,14 @@ dotnet run
|
||||
|
||||
# Encode/Decode (easy)
|
||||
|
||||
Before you run VVCEasy.bat or VVCEasy.exe, you need to change from your input video file name into input.mp4 (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.
|
||||
Before you run VVCEasy.bat or VVCEasy.exe, you need to change from your input video file name into input.mp4 (for example)
|
||||
Follow the instructions, the commands will give you options. Since 21 October 2021, VVCEasy is pre-release, but it's construction mode, but you can have a look with .BAT source code.
|
||||
|
||||
- Martin Eesmaa
|
||||
|
||||
# Without VVCEasy, experimental option for professional coders, other developers, and everyone (hard)
|
||||
|
||||
You need 7-Zip (requires ffmpeg and ffplay), ffmpeg, ffplay, vvenc/vvdec(app) and YUView.
|
||||
You need 7-Zip (requires ffmpeg and ffplay), ffmpeg, ffplay, vvenc/vvdec(app).
|
||||
|
||||
Here are the links:
|
||||
FFMPEG/FFPLAY: https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z (go to bin folder and extract two files of ffmpeg and ffplay)
|
||||
@ -188,9 +202,6 @@ Windows: https://github.com/MartinEesmaa/VVCEasy/blob/master/WindowsVVC/WindowsV
|
||||
Mac: https://github.com/MartinEesmaa/VVCEasy/tree/master/MacOSVVC/MacOSVVC.7z
|
||||
Linux: https://github.com/MartinEesmaa/VVCEasy/blob/master/LinuxVVC/LinuxVVC.7z
|
||||
|
||||
YUView:
|
||||
https://github.com/IENT/YUView/releases
|
||||
|
||||
Before we start, you need to make path environments for ffmpeg, ffplay and vvenc/vvdec to make easily.
|
||||
In Command Prompt (Windows):
|
||||
|
||||
@ -211,31 +222,53 @@ Transcode any video formats to YUV/Y4M
|
||||
|
||||
For YUV transcode (lossy from web quality, YouTube videos and others):
|
||||
```
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p -strict 1 inputtranscode.yuv
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p inputtranscode.yuv
|
||||
```
|
||||
|
||||
For Y4M transcode (lossless from uncompressed video files, only 8 bit):
|
||||
```
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p -strict 1 inputtranscode.y4m
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p inputtranscode.y4m
|
||||
```
|
||||
|
||||
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):
|
||||
Verify uncompressed video using FFplay before encode to VVENC (important add video size after the input file, else it will not correctly show video like scrambled eggs video):
|
||||
```
|
||||
ffplay -i inputtranscode.yuv -video_size 1280x720
|
||||
ffplay inputtranscode.yuv -video_size 1280x720
|
||||
```
|
||||
|
||||
Default pixel format of ffplay for yuv and y4m is yuv420p without `-pix_fmt` command.
|
||||
|
||||
For y4m videos, replace `-i inputtranscode.yuv` with `-i inputtranscode.y4m`. For yuv420p10 on your input video 10 bit, add `-pix_fmt yuv420p10`.
|
||||
For y4m, replace `-i inputtranscode.yuv` with `-i inputtranscode.y4m`. In `-c:v wrapped_avframe` for y4m only, so you can verify to play Y4M (wrapped_avframe) for VLC, FFplay or MPV player. For yuv420p10 on your input video 10 bits, add `-pix_fmt yuv420p10`.
|
||||
|
||||
For 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.
|
||||
Playing FFplay for y4m video with wrapped_avframe, you don't need to put anything commands, just simple play this:
|
||||
|
||||
After verifying correctly your YUV/Y4M video
|
||||
```
|
||||
ffplay transcoded.y4m
|
||||
```
|
||||
|
||||
For easy to verify YUV/Y4M, use YUView, open your YUV or Y4M encoded, make sure video size, YUV/Y4M format and frame rate same like from input video file (e.g., MP4, AVI, MKV and others).
|
||||
|
||||
After verifying correctly of your YUV/Y4M video
|
||||
Encode with VVENC (Simple settings, example)
|
||||
```
|
||||
vvencapp -i out.yuv -s 854x480 -r 30 -o vvc.266
|
||||
```
|
||||
-s means video size, -r means frame per second and -o means output. Note: (Simple) as Default settings is YUV420P (8-bit)
|
||||
`-s` means video size, `-r` means frame per second and `-o` means output. Note: (Simple) as Default settings is YUV420P (8-bit)
|
||||
|
||||
TIP: You could do the alternative without taking much disk space for uncompressed video (Y4M, recommended):
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -pix_fmt yuv420p -f yuv4mpegpipe - | vvencapp --y4m -i - --preset medium --qp 35 -o converted.266
|
||||
```
|
||||
|
||||
**PRO TIP: VVENC can detect your fps and video size for y4m file format, so you don't need to insert video size and frame per second of vvenc.**
|
||||
|
||||
**WARNING of vvenc pipe: VVENC does not support two-pass mode only when using pipe call/read from FFmpeg to vvenc.**
|
||||
|
||||
Or you could do legacy of YUV pipe video:
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -pix_fmt yuv420p -f rawvideo - | vvencapp -i - -s 1920x1080 -r 25 --preset medium --qp 35 -o converted.266
|
||||
```
|
||||
|
||||
**WARNING: If you encode from yuv/y4m of your frame rate is 11.988, 14.985, 23.976, 29.970 or 59.940 FPS, replace this command -r by --fps.**
|
||||
|
||||
@ -249,44 +282,48 @@ vvencapp -i out.yuv -s 854x480 -r 30 -o vvc.266
|
||||
|
||||
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)
|
||||
The default of VVENC: Quantization Parameter is 32 and preset is medium.
|
||||
|
||||
If you want to get smaller video size and lossy video, add `--qp 38`. (For web video or anything)
|
||||
|
||||
If you want to get lossless video without losing quality (visually lossless, minimum loss quality), use QP 16-19 and preset slow (optional slower). (Recommended for movies, camera footage or anything)
|
||||
|
||||
Lossy video/Smallest video size:
|
||||
```
|
||||
vvencapp --qp 38 -i out.yuv -s 854x480 -r 30 -o vvc.266
|
||||
```
|
||||
|
||||
**NOTE: If you want have true lossless on your video, please visit [FFV1](http://ffv1.org) or H.264 Lossless video codec**
|
||||
**NOTE 1: If you want to have true lossless on your video, please use H.264 Lossless video codec or VVC with vvencffapp command of CostMode Lossless**
|
||||
|
||||
**NOTE 2: VVENC does not support lossless.**
|
||||
**NOTE 1.1: In vvencffapp application, you can add command `--CostMode lossless`. Y4M accepts chroma subsampling 420 only, but YUV accepts 400, 420, 422 and 444.**
|
||||
|
||||
Lossless video (minimum loss quality, only Y4M, Raw, Uncompressed video used) (or compress smaller than preset slow, use --preset slower):
|
||||
True lossless video of 8-bit and 10-bit 4:2:0:
|
||||
```
|
||||
vvencffapp -i test.y4m --CostMode lossless -qpa 1 -b test.266
|
||||
```
|
||||
|
||||
Visually lossless video (or compress smaller than preset slow, use --preset slower):
|
||||
```
|
||||
vvencapp --qp 18 -i out.yuv -s 854x480 -r 30 --preset slow -o vvc.266
|
||||
```
|
||||
|
||||
For Apple Mac OS and Linux terminal users: Command with `./vvencapp`
|
||||
For Apple macOS 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)
|
||||
Encode with VVENC (Best settings (visually lossless), replace video size (`-s`), frame rate (`-r`) and maximize threads of your cores (`--threads`), example) (Minimum loss quality) If you want true lossless video, use H.264 Lossless video codec or VVC with vvencffapp command of CostMode Lossless. (Necessary make smaller file (slower) than preset slow, use `--preset slower`)
|
||||
```
|
||||
vvencapp --qp 18 -i out.yuv -s 854x480 -r 30 --preset slow --threads 16 --tier high -o EXTREME.266
|
||||
```
|
||||
|
||||
NOTE: It is acceptable only for encoding to .h266, .266 and .vvc file container.
|
||||
|
||||
Note to 10-bit YUV users: If you encode YUV 10 bit to VVC file, add `-c yuv420_10` before you type ending word of -o EXTREME.266.
|
||||
Note to 10-bit YUV users: If you encode YUV 10 bit to VVC file, add `-c yuv420_10` before you type the ending word of -o EXTREME.266.
|
||||
|
||||
Note to 8-bit Y4M users: It is only from input video (8-bit) to Y4M (8 bit)
|
||||
Note to 8-bit Y4M users: It's 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.
|
||||

|
||||
After encoding VVC, you can play using my custom VVCEasy build of [FFmpeg](https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md), [VLC](https://github.com/MartinEesmaa/VVCEasy/tree/master/INSTALLVLCPLUGIN) or [MPV](https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md).
|
||||
Drag your video file of .h266, .266 or .vvc to play.
|
||||
|
||||
If you are still not happy about VVC (known as Versatile Video Coding), that you think is too hard to encode and decode, use AOMEDIA ONE (AV1) that is recommended for most users to easily play VLC Media Player and others. VVC should need played on VLC Media Player in future.
|
||||
|
||||
@ -303,34 +340,41 @@ Linux (./vvencapp):
|
||||
|
||||
# FAQ (known as Frequently Asked Questions)
|
||||
|
||||
Are you real creator of VVCEasy?
|
||||
Yes... but I'm not real creator of VVC, I didn't built VVC, it was Fraunhofer that he built VVC.
|
||||
Before you ask any question, please see the questions below.
|
||||
|
||||
Are you the real creator of VVCEasy?
|
||||
|
||||
Yes... but I'm not a real creator of VVC, I didn't built VVC, it was Fraunhofer HHI that he built VVC.
|
||||
|
||||
Are you trying to work build of VVCEasy?
|
||||
Well yes... it takes longer time to make VVCEasy easier, but VVCEasy is not yet finished until further/update announcement. I don't have a employees, so I'm only the 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 employees, so I'm the only one worker.
|
||||
|
||||
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, ask questions or/and give your issue to me.
|
||||
Yes, you can bring error screenshots for your proof. More proof, easy to solve it.
|
||||
|
||||
My question is not listed on FAQ. Can I ask any question to you?
|
||||
|
||||
Sure, just go to Issues tab, ask questions or/and give your issue to me, I'd be happy to solve :).
|
||||
|
||||
Do you know what you have skills in your programming?
|
||||
I know about Batch file and HTML 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.
|
||||
|
||||
I know about batch file and HTML programming. Some hard programming languages might be difficult for me :/.
|
||||
Update of 19th February 2022: Maybe I should make C# Console program, that will be easy for Windows, Mac and Linux multi support.
|
||||
|
||||
If you have any questions or/and any issues, please go to Issues tab and create your issue.
|
||||
|
||||
Or, you can chat us: https://matrix.to/#/#vvceasy:matrix.org
|
||||
Or you can 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.
|
||||
[VVCEasy](https://github.com/MartinEesmaa/VVCEasy) - VVCEasy is easy VVC, that no need to compile.
|
||||
|
||||
License: MIT
|
||||
|
||||
© 2021-2022 [Martin Eesmaa](https://github.com/MartinEesmaa) (All rights reserved)
|
||||
© 2021-2023 [Martin Eesmaa](https://github.com/MartinEesmaa) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
@ -340,23 +384,23 @@ License: MIT
|
||||
|
||||
[Versatile Video Decoder Web Player](https://github.com/fraunhoferhhi/vvdecWebPlayer) - A minimal proof-of-concept VVC player for the web using WebAssembly
|
||||
|
||||
License: Clear BSD (two repositories of vvenc & vvdec) + BSD (vvdecWebPlayer)
|
||||
License: BSD 3-Clause Clear License (all of three repositories)
|
||||
|
||||
© 2018-2022, Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. & The VVC Authors. (All rights reserved)
|
||||
© 2018-2023, 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 VTM Decoder Plugin](https://github.com/InterDigitalInc/VTMDecoder_VLCPlugin) - VVC decoder plugin for VLC based on a multithreaded VTM
|
||||
|
||||
[VLC Original Version](https://code.videolan.org/videolan/vlc) - VLC Media Player
|
||||
|
||||
License: GPL Version 2 (both repositories)
|
||||
License: GPL Version 2 (VLC Original version) & LGPL-2.1 (VLC VTM Decoder Plugin)
|
||||
|
||||
© 2020-2021 [Tencent Cloud](https://github.com/TencentCloud) (All rights reserved)
|
||||
© 2000-2023 [VLC Media Player](https://code.videolan.org/) Developers (All rights reserved)
|
||||
|
||||
© 2000-2022 [VLC Media Player](https://code.videolan.org/) Developers (All rights reserved)
|
||||
© 2021-2023 [Inter Digital Inc](https://github.com/InterDigitalInc) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
@ -368,21 +412,13 @@ License: MIT
|
||||
|
||||
---
|
||||
|
||||
[VLC VTM Decoder Plugin](https://github.com/InterDigitalInc/VTMDecoder_VLCPlugin) - VVC decoder plugin for VLC based on a multithreaded VTM
|
||||
|
||||
License: LGPL-2.1
|
||||
|
||||
© 2021-2022 [Inter Digital Inc](https://github.com/InterDigitalInc) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[FFmpeg](https://github.com/FFmpeg/FFmpeg) - Mirror of https://git.ffmpeg.org/ffmpeg.git
|
||||
|
||||
VVC developers & forkers: [lehmann-c](https://github.com/lehmann-c) and [tbiat](https://github.com/tbiat)
|
||||
VVC developers & forkers: [Christian Lehmann](https://github.com/lehmann-c), [tbiat](https://github.com/tbiat), [Isabelle Santin](https://github.com/IsaMorphic) & [Martin Eesmaa](https://github.com/MartinEesmaa)
|
||||
|
||||
License: LGPL-2.1+ & GPL-2.0+
|
||||
|
||||
© 2000-2022 [FFmpeg developers](https://github.com/FFmpeg) (All rights reserved)
|
||||
© 2000-2023 [FFmpeg developers](https://github.com/FFmpeg) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
@ -392,15 +428,7 @@ VVC developer & forker: [tbiat](https://github.com/tbiat) & [Martin Eesmaa](http
|
||||
|
||||
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)
|
||||
© 2016-2023 Ilya Zhuravlev, sfan5 & mpv developers (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
@ -408,4 +436,5 @@ License: LGPL-2.1
|
||||
|
||||
License: LGPL-2.1
|
||||
|
||||
© 2003-2022 [Jean Le Feuvre](https://github.com/jeanlf) & [GPAC developers/contributors](https://github.com/gpac/gpac/graphs/contributors)
|
||||
© 2003-2023 [Jean Le Feuvre](https://github.com/jeanlf) & [GPAC developers/contributors](https://github.com/gpac/gpac/graphs/contributors)
|
||||
|
||||
|
@ -14,4 +14,10 @@ LinkedIn: https://www.linkedin.com/in/martin-eesmaa-4b355587/
|
||||
|
||||
Wikipedia: [MartinHero13](https://en.wikipedia.org/wiki/User:MartinHero13)
|
||||
|
||||
Imgur: [MartinHero13](https://imgur.com/user/MartinHero13)
|
||||
|
||||
Doom9 Forum: [MartinEesmaa](https://forum.doom9.org/member.php?u=248978)
|
||||
|
||||
Hydrogenaudio account (registered members to view my profile or search my username of Hydrogenaudio to see posts/replies in web search engine): [MartinEesmaa](https://hydrogenaud.io/index.php?action=profile;u=160252)
|
||||
|
||||
- Martin Eesmaa
|
||||
|
@ -8,4 +8,10 @@ See the lists:
|
||||
|
||||
- ありがとう, ネクストスケープ (delsoladmin)! [NEXTSPACE Streaming Tech Blog](https://media-streaming.nextscape.net/blog/1153/)
|
||||
|
||||
- Thank you, Doom9 Forum Community! Search "VVCEasy" on Doom9 Forum.
|
||||
|
||||
- Danke, LigH (@LigH-de)! [My issue mention of xHE-AAC](https://forum.doom9.org/showthread.php?p=1970068&highlight=Martin+Eesmaa#post1970068)
|
||||
|
||||
- Thanks, Artem! [VVCEasy thread](https://forum.doom9.org/showthread.php?p=1974413#post1974413)
|
||||
|
||||
- Martin Eesmaa (@MartinEesmaa)
|
||||
|
@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install ffmpeg qt5-default build-essential git -y
|
||||
git pull
|
@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
brew update
|
||||
brew upgrade ffmpeg
|
||||
git pull
|
296
VVCEasy.bat
296
VVCEasy.bat
@ -1,4 +1,8 @@
|
||||
echo off
|
||||
set welcometitle=Martin Eesmaa / VVCEasy
|
||||
set version=v2.0.0
|
||||
set versionname=Party of Martin Eesmaa's birthday at age 18.
|
||||
set vvceasydate=22 June 2023
|
||||
pushd "%~dp0"
|
||||
cls
|
||||
|
||||
@ -11,16 +15,16 @@ REM --> Check for permissions
|
||||
|
||||
REM --> If error flag set, we do not have admin.
|
||||
if '%errorlevel%' NEQ '0' (
|
||||
if '%1' EQU '1' (
|
||||
echo Cannot elevate administrator privilege
|
||||
echo Please try again with "Run as Administrator"
|
||||
echo Installation failed.
|
||||
pause
|
||||
exit /B
|
||||
) else (
|
||||
echo Requesting administrative privileges...
|
||||
goto UACPrompt
|
||||
)
|
||||
if '%1' EQU '1' (
|
||||
echo Cannot elevate administrator privilege
|
||||
echo Please try again with "Run as Administrator"
|
||||
echo Installation failed.
|
||||
pause
|
||||
exit /B
|
||||
) else (
|
||||
echo Requesting administrative privileges...
|
||||
goto UACPrompt
|
||||
)
|
||||
) else ( goto gotAdmin )
|
||||
|
||||
:UACPrompt
|
||||
@ -29,7 +33,7 @@ if '%errorlevel%' NEQ '0' (
|
||||
|
||||
"%temp%\getadmin.vbs"
|
||||
exit /B
|
||||
|
||||
|
||||
:gotAdmin
|
||||
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
|
||||
pushd "%CD%"
|
||||
@ -40,58 +44,66 @@ goto welcomenow
|
||||
|
||||
:welcomenow
|
||||
cls
|
||||
title Martin Eesmaa / VVCEasy
|
||||
echo Martin Eesmaa / VVCEasy
|
||||
echo Welcome to VVCEasy. (Batchfile Beta Version, v.0.9.0)
|
||||
title %welcometitle%
|
||||
echo %welcometitle%
|
||||
echo Welcome to VVCEasy. (Batch file Release Version, %version%, %vvceasydate%)
|
||||
echo Version codename: %versionname%
|
||||
pause
|
||||
goto start
|
||||
|
||||
:start
|
||||
title Martin Eesmaa / VVCEasy
|
||||
title %welcometitle%
|
||||
color 07
|
||||
cls
|
||||
echo VVCEasy (Batchfile Beta Version, v.0.9.0)
|
||||
echo VVCEasy (Batchfile Release Version, %version%, %vvceasydate%)
|
||||
echo Version codename: %versionname%
|
||||
echo.
|
||||
echo What would you like to do for encode/decode of VVC?
|
||||
echo What would you like to do to encode/decode of VVC?
|
||||
echo 1. Encode
|
||||
echo 2. Decode
|
||||
echo 3. Help
|
||||
echo 4. Exit
|
||||
echo 5. Install/Test path environment
|
||||
echo 6. Install quickly through Anaconda (Python distribution) for ffmpeg (Windows)
|
||||
echo 5. Install/Test path environment.
|
||||
echo 6. Install quickly through Anaconda (Python distribution) for FFmpeg (Windows)
|
||||
echo 7. Install/Update VVdec Web Player
|
||||
echo 8. 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
|
||||
echo 10. Install/Update VLC VTM Plugins (Windows/Linux x64 of VLC plugins by Inter Digital Inc)
|
||||
echo 11. Install FFmpeg VVDec support.
|
||||
echo 12. Install MPV Windows/Android (libvvdec plugin)
|
||||
echo 13. Tests of VVC videos
|
||||
set /p VVCSTART=Number:
|
||||
|
||||
if "%VVCSTART%" == "1" goto encodestart
|
||||
if "%VVCSTART%" == "2" goto decodestart
|
||||
if "%VVCSTART%" == "3" goto help
|
||||
if "%VVCSTART%" == "4" goto exit
|
||||
if "%VVCSTART%" == "5" goto test
|
||||
if "%VVCSTART%" == "6" goto conda
|
||||
if "%VVCSTART%" == "7" goto installvvdecweb
|
||||
if "%VVCSTART%" == "8" goto decompresswin7z
|
||||
if "%VVCSTART%" == "9" goto installbitmovin
|
||||
if "%VVCSTART%" == "10" goto vlcvtmplugininstall
|
||||
if "%VVCSTART%" == "11" goto ffmpegvvdec
|
||||
if "%VVCSTART%" == "12" goto mpvandroidvvc
|
||||
if "%VVCSTART%" == "13" goto testsofvideo
|
||||
echo Invalid input. Please enter a number between 1 and 13.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:encodestart
|
||||
title Encode to VVC
|
||||
cls
|
||||
echo Welcome to VVC encoder.
|
||||
echo What do you like encode to VVC?
|
||||
echo What do you like to encode to VVC?
|
||||
echo Before we move to settings quality, is your video lossy or lossless?
|
||||
echo 1. Lossy (example YouTube videos, Web videos, lossy compressed videos, and other webs)
|
||||
echo 2. Lossless (example XIPH Media, Camera uncompressed (MOV/MP4/AVI), Apple ProRes and others uncompressed files)
|
||||
echo 3. Go back to menu
|
||||
echo 3. Go back to the menu.
|
||||
set /p vvencquestion1=Number:
|
||||
if %vvencquestion1% == 1 goto losslessvvenc2
|
||||
if %vvencquestion1% == 2 goto lossyvvenc2
|
||||
if %vvencquestion1% == 3 goto start
|
||||
if "%vvencquestion1%" == 1 goto losslessvvenc2
|
||||
if "%vvencquestion1%" == 2 goto lossyvvenc2
|
||||
if "%vvencquestion1%" == 3 goto start
|
||||
|
||||
:losslessvvenc2
|
||||
title Lossless settings with Lossless uncompressed (VVC Encoder)
|
||||
@ -105,14 +117,14 @@ echo If you don't have Y4M already... you need transcode file from your uncompre
|
||||
echo Example: ffmpeg -i yourfile.mov -strict 1 yourfinal.y4m
|
||||
echo Only 8-bit uncompressed movies input to Y4M.
|
||||
set /p doyouhavey4mvvencquestion3=Number:
|
||||
if %doyouhavey4mvvencquestion3% == 1 goto startlosslessvvenc2
|
||||
if %doyouhavey4mvvencquestion3% == 2 goto encodestart
|
||||
if "%doyouhavey4mvvencquestion3%" == 1 goto startlosslessvvenc2
|
||||
if "%doyouhavey4mvvencquestion3%" == 2 goto encodestart
|
||||
|
||||
:startlosslessvvenc2
|
||||
cls
|
||||
title VVC ENCODER (Y4M LOSSLESS)
|
||||
echo Before we start 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 Before we start encoding from your Y4M file to VVC file, I'm afraid I cannot do automatically for you.
|
||||
echo You must manually encode to VVC, the batchfile won't work.
|
||||
echo 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.
|
||||
@ -130,19 +142,18 @@ echo 2. No, I am not ready yet (go back to previous)
|
||||
echo If you don't have Y4M already... you need transcode file from your lossy video file to YUV.
|
||||
echo Example: ffmpeg -i yourfile.mp4 -strict 1 yourfinal.yuv
|
||||
set /p doyouhaveyuvvvencquestion4=Number:
|
||||
if %doyouhaveyuvvvencquestion4% == 1 goto startlossyvvenc2
|
||||
if %doyouhaveyuvvvencquestion4% == 2 goto encodestart
|
||||
if "%doyouhaveyuvvvencquestion4%" == 1 goto startlossyvvenc2
|
||||
if "%doyouhaveyuvvvencquestion4%" == 2 goto encodestart
|
||||
|
||||
:startlossyvvenc2
|
||||
cls
|
||||
title VVC ENCODER (YUV LOSSY)
|
||||
echo Before we start 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 Before we start encoding from your YUV file to VVC file, I'm afraid I cannot do automatically for you.
|
||||
echo You must manually encode to VVC, the batchfile won't work.
|
||||
echo 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
|
||||
@ -153,13 +164,13 @@ echo Do you want to transcode back from VVC to YUV or Y4M? Which did you choose
|
||||
echo You need copy from your VVC file to C:\Program Files\VVCEasy\WindowsVVC\. Windows Explorer will open automatically.
|
||||
echo After copying your VVC file into VVCEasy folder, you need rename to VVC.vvc. It will transcode from your VVC file to YUV/Y4M.
|
||||
echo After transcoding, your transcoded file should be: C:\Program Files\VVCEasy\transcodedback
|
||||
echo Note, if you are using portable, like you git cloned VVCEasy or downloaded source files, go to your Downloads folder and select VVCEasy.
|
||||
echo Note, if you are using portable, like your git cloned VVCEasy or downloaded source files, go to your Downloads folder and select VVCEasy.
|
||||
echo Portable won't work probably, you need copy from your Downloads folder\VVCEasy into Program Files\VVCEasy.
|
||||
echo 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
|
||||
if "%decodestart1%" == 1 goto DECODESTARTFROMVVCTOYUV
|
||||
if "%decodestart1%" == 2 goto DECODESTARTFROMVVCTOY4M
|
||||
|
||||
:DECODESTARTFROMVVCTOYUV
|
||||
cls
|
||||
@ -170,7 +181,7 @@ vvdecapp -b VVC.vvc -o VVCTOYUV.yuv
|
||||
move VVCTOYUV.yuv ../
|
||||
move VVCTOYUV.yuv transcodedback
|
||||
explorer "C:\Program Files\VVCEasy\transcodedback"
|
||||
echo FINISHED. Going back to menu...
|
||||
echo FINISHED. Going back to the menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
@ -183,7 +194,7 @@ vvdecapp -b VVC.vvc --y4m -o VVCTOYUV.y4m
|
||||
move VVCTOYUV.y4m ../
|
||||
move VVCTOYUV.y4m transcodedback
|
||||
explorer "C:\Program Files\VVCEasy\transcodedback"
|
||||
echo FINISHED. Going back to menu...
|
||||
echo FINISHED. Going back to the menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
@ -195,12 +206,12 @@ echo You can go here for link: https://stackoverflow.com/questions/4910721/pytho
|
||||
echo Also you can also search "What is PATH in Windows?" in DuckDuckGo or SearX.
|
||||
echo Are you ready to test? (Y/N) or type "I" to install path environment.
|
||||
set /p readytestbefore=Answer:
|
||||
if %readytestbefore% == Y goto nowtestingtime
|
||||
if %readytestbefore% == N goto start
|
||||
if %readytestbefore% == y goto nowtestingtime
|
||||
if %readytestbefore% == n goto start
|
||||
if %readytestbefore% == I goto installpath
|
||||
if %readytestbefore% == i goto installpath
|
||||
if "%readytestbefore%" == Y goto nowtestingtime
|
||||
if "%readytestbefore%" == N goto start
|
||||
if "%readytestbefore%" == y goto nowtestingtime
|
||||
if "%readytestbefore%" == n goto start
|
||||
if "%readytestbefore%" == I goto installpath
|
||||
if "%readytestbefore%" == i goto installpath
|
||||
|
||||
:nowtestingtime
|
||||
title Testing time...
|
||||
@ -213,34 +224,34 @@ echo You need exit in Python for typing "exit()".
|
||||
python
|
||||
echo Did that work in your PATH? Y/N?
|
||||
set /p testdidworkq=Answer:
|
||||
if %testdidworkq% == Y goto youdidworktest
|
||||
if %testdidworkq% == N goto ahhdidnotwork
|
||||
if %testdidworkq% == y goto youdidworktest
|
||||
if %testdidworkq% == n goto ahhdidnotwork
|
||||
if "%testdidworkq%" == Y goto youdidworktest
|
||||
if "%testdidworkq%" == N goto ahhdidnotwork
|
||||
if "%testdidworkq%" == y goto youdidworktest
|
||||
if "%testdidworkq%" == n goto ahhdidnotwork
|
||||
|
||||
:youdidworktest
|
||||
title Great!
|
||||
echo Great, your PATHS working now. Now back to menu...
|
||||
echo Great, your PATHS working now. Now back to the menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:ahhdidnotwork
|
||||
title Sorry...
|
||||
echo Sorry, your path environment did not work. Make sure follow that needs to be add it on paths installation like Python.
|
||||
echo Still not working? You can ask question in Stack Overflow.
|
||||
echo Still not working? You can ask questions 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 Other programs should need manual, but Python, FFmpeg, wget and git must be installed manually and add automatically path environments.
|
||||
echo Do you want patch 7-Zip on your path environment, so you can type "7z" next time.
|
||||
echo Install 7-Zip on your path environments? Y/N? No means go back to test menu.
|
||||
echo Would you like to install 7-Zip on your path environments? Y/N? No means go back to test menu.
|
||||
set /p installpath1=Answer:
|
||||
if %installpath1% == Y goto installingpath
|
||||
if %installpath1% == N goto test
|
||||
if %installpath1% == y goto installingpath
|
||||
if %installpath1% == n goto test
|
||||
if "%installpath1%" == Y goto installingpath
|
||||
if "%installpath1%" == N goto test
|
||||
if "%installpath1%" == y goto installingpath
|
||||
if "%installpath1%" == n goto test
|
||||
|
||||
:installingpath
|
||||
title INSTALLING 7-ZIP on your path environments...
|
||||
@ -292,16 +303,16 @@ exit
|
||||
:conda
|
||||
cls
|
||||
title ANACONDA (PYTHON DISTRIBUTION)
|
||||
echo Welcome to Anaconda (Python Distribution) Quick Install. This will do only one task to download ffmpeg. Would you like to install? Y/N?
|
||||
echo Welcome to Anaconda (Python Distribution) Quick Install. This will do only one task to download FFmpeg. Would you like to install? Y/N?
|
||||
set /p anacondaman=Answer:
|
||||
if %anacondaman% == Y goto condainstall
|
||||
if %anacondaman% == N goto start
|
||||
if %anacondaman% == y goto condainstall
|
||||
if %anacondaman% == n goto start
|
||||
if "%anacondaman%" == Y goto condainstall
|
||||
if "%anacondaman%" == N goto start
|
||||
if "%anacondaman%" == y goto condainstall
|
||||
if "%anacondaman%" == n goto start
|
||||
|
||||
:condainstall
|
||||
conda install -c conda-forge ffmpeg
|
||||
echo SUCCESS, going to back menu...
|
||||
echo SUCCESS, going to back the menu...
|
||||
pause
|
||||
goto start
|
||||
|
||||
@ -311,16 +322,16 @@ echo Welcome to VVCEasy help instructions!
|
||||
echo Here is tutorial about... How to use VVCEasy?
|
||||
pause
|
||||
echo Step 1: Run on VVCEasy.bat. When you see the screen of Welcome to VVCEasy. You can press any key continue to main menu.
|
||||
echo Step 2: Here are the list of main menus, that you need type any number will go to direction like (goto) command.
|
||||
echo Step 2: Here is the list of main menus, that you need type any number will go to direction like (goto) command.
|
||||
echo Step 3: Follow the command instructions and that is easy.
|
||||
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?
|
||||
echo If you have any problems that you do not understand VVCEasy. Please contact Martin Eesmaa by creating issues for questions or/and problems.
|
||||
echo Do you want to start over help instructions? If yes, then it will go back from the beginning. If No, going to back menu. Y/N?
|
||||
set /p helper=Answer:
|
||||
if %helper% == Y goto help
|
||||
if %helper% == N goto start
|
||||
if %helper% == y goto help
|
||||
if %helper% == n goto start
|
||||
if "%helper%" == Y goto help
|
||||
if "%helper%" == N goto start
|
||||
if "%helper%" == y goto help
|
||||
if "%helper%" == n goto start
|
||||
|
||||
:installvvdecweb
|
||||
cls
|
||||
@ -328,17 +339,17 @@ title VVdec Web Player.
|
||||
echo Welcome to VVDEC Web Player.
|
||||
echo By installing, you will have to agree to download VVDec Web Player from Fraunhoferhhi GitHub.
|
||||
echo See the code of VVDEC Web Player: https://github.com/fraunhoferhhi/vvdecWebPlayer
|
||||
echo When you agree to install, it will clone of VVDec Web Player repository using git. After git, we will copy from VVDECWEBINSTALL files into vvdecWebPlayer/bin folder.
|
||||
echo When you agree to install, it will clone 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?
|
||||
echo Would you like to install VVDEC Web Player?
|
||||
set /p okletsdoit=Answer:
|
||||
if %okletsdoit% == Y goto installnowplayer
|
||||
if %okletsdoit% == N goto start
|
||||
if %okletsdoit% == y goto installnowplayer
|
||||
if %okletsdoit% == n goto start
|
||||
if %okletsdoit% == U goto updatevvdecwebplayer
|
||||
if %okletsdoit% == u goto updatevvdecwebplayer
|
||||
if "%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
|
||||
@ -349,10 +360,10 @@ cd vvdecWebPlayer
|
||||
wget https://www.dropbox.com/s/zp8b3xg0b5p1pwe/VVCEasy.266
|
||||
rename VVCEasy.266 dummy_raw_bitstream.266
|
||||
echo Note: If you want to go back to menu, press CTRL + C on your keyboard in Windows Terminal/CMD and type "Y" to terminate server and this will go back to main menu options.
|
||||
echo The python file is porting 8000 on your localhost computer.
|
||||
echo The python file is porting 8000 on your local host 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 Thanks for trying out VVDEC Web Player. If you want to run on your VVDEC Web Player Server, go to folder of vvdecWebPlayer and run one click wasm_test-server.py.
|
||||
echo Press any key to go back menu.
|
||||
timeout 10
|
||||
goto start
|
||||
@ -382,10 +393,10 @@ 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 Now please make sure double check that needs to be same hash. If it matches hash same as .exe of SHA512SUMS.txt and CertUtil. That means good.
|
||||
echo If the hashes are not matched correctly, please contact and create issue to Martin Eesmaa/VVCEasy on GitHub for your own problem.
|
||||
pause
|
||||
echo Thank you for decompressing WindowsVVC.7z... Now back to menu.
|
||||
echo Thank you for decompressing WindowsVVC.7z... Now back to the menu.
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
@ -395,14 +406,14 @@ title Install BitVVDecPlayer from BitMovin
|
||||
echo Would you like to install on your operating system?
|
||||
echo Windows for W, Mac OS for M and Linux for L, Main Menu for N/n.
|
||||
set /p installbitmovind=Answer:
|
||||
if %installbitmovind% == W goto installbitmovin1windows
|
||||
if %installbitmovind% == w goto installbitmovin1windows
|
||||
if %installbitmovind% == M goto installbitmovin1macos
|
||||
if %installbitmovind% == m goto installbitmovin1macos
|
||||
if %installbitmovind% == L goto installbitmovin1linux
|
||||
if %installbitmovind% == l goto installbitmovin1linux
|
||||
if %installbitmovind% == N goto start
|
||||
if %installbitmovindt% == n goto start
|
||||
if "%installbitmovind%" == W goto installbitmovin1windows
|
||||
if "%installbitmovind%" == w goto installbitmovin1windows
|
||||
if "%installbitmovind%" == M goto installbitmovin1macos
|
||||
if "%installbitmovind%" == m goto installbitmovin1macos
|
||||
if "%installbitmovind%" == L goto installbitmovin1linux
|
||||
if "%installbitmovind%" == l goto installbitmovin1linux
|
||||
if "%installbitmovind%" == N goto start
|
||||
if "%installbitmovind%" == n goto start
|
||||
|
||||
:installbitmovin1windows
|
||||
title Installing BitVVDecPlayer from BitMovin...
|
||||
@ -416,7 +427,8 @@ 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.
|
||||
echo To build vvDecPlayer, please go to https://github.com/bitmovin/vvDecPlayer
|
||||
echo Or contact Bitmovin at https://www.bitmovin.com or create issue on VVCEasy.
|
||||
goto downloadbitmovinvvcsample
|
||||
|
||||
:installbitmovin1macos
|
||||
@ -431,7 +443,9 @@ 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.
|
||||
echo To build vvDecPlayer, please go to https://github.com/bitmovin/vvDecPlayer
|
||||
echo Or contact Bitmovin at https://www.bitmovin.com or create issue on VVCEasy.
|
||||
echo For more information, see Bitmovin.md.
|
||||
goto downloadbitmovinvvcsample
|
||||
|
||||
:installbitmovin1linux
|
||||
@ -445,21 +459,20 @@ wget https://www.dropbox.com/s/bihm3pyh21lcvte/BitVVDecPlayerLINUX.7z?dl=0
|
||||
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 Note, this is only Ubuntu 20.04 LTS build.
|
||||
echo If you're running other Linux without Ubuntu 20.04, you might need to read Bitmovin.md instructions and build vvDecPlayer yourself.
|
||||
echo To build vvDecPlayer, please go to https://github.com/bitmovin/vvDecPlayer
|
||||
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.
|
||||
echo Or contact Bitmovin at https://www.bitmovin.com or create issue on VVCEasy.
|
||||
goto downloadbitmovinvvcsample
|
||||
|
||||
:downloadbitmovinvvcsample
|
||||
echo Would you like to download VVC sample video files from Bitmovin? Y/N?
|
||||
set /p vvcsampleyeah=Answer:
|
||||
if %vvcsampleyeah% == Y goto downloadvvcnowbit
|
||||
if %vvcsampleyeah% == y goto downloadvvcnowbit
|
||||
if %vvcsampleyeah% == N goto start
|
||||
if %vvcsampleyeah% == n goto start
|
||||
if "%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
|
||||
@ -470,11 +483,11 @@ echo Extracting from archived file...
|
||||
echo Deleting archived file...
|
||||
del /q vvcBlogPostDemo.7z
|
||||
title Installation of BitVVDecPlayer
|
||||
echo Please edit of location downloaded folder of vvcBlogPostDemo...
|
||||
echo Please edit the location downloaded folder of vvcBlogPostDemo...
|
||||
CoffeeRun.json && SpriteFright.json
|
||||
echo Press any key, when you finished configured of your location folder...
|
||||
pause
|
||||
echo Okay, it seems you configured completed. Please run on vvDecPlayer on your operating system.
|
||||
echo Okay, it seems you configured completely. Please run on vvDecPlayer on your operating system.
|
||||
echo Go to File, then Open JSON manifest in BitVVDecPlayer...
|
||||
echo Select JSON file to run VVC movie and enjoy it.
|
||||
echo Still not working? Please chat us on https://matrix.to/#/#vvceasy:matrix.org to solve your problem or add new issue on GitHub.
|
||||
@ -492,25 +505,25 @@ echo Linux is now available, see Linux installation at: https://github.com/Marti
|
||||
echo Current version = 3.0.16, latest version 3.0.17-4 (it will work same latest version)
|
||||
echo Would you like to install VTM plugins to your VLC Media Player? Y/N?
|
||||
set /p vlcvtmyesorno=Answer:
|
||||
if %vlcvtmyesorno% == Y goto installvlcvtmpluginnow
|
||||
if %vlcvtmyesorno% == y goto installvlcvtmpluginnow
|
||||
if %vlcvtmyesorno% == N goto start
|
||||
if %vlcvtmyesorno% == n goto start
|
||||
if "%vlcvtmyesorno%" == Y goto installvlcvtmpluginnow
|
||||
if "%vlcvtmyesorno%" == y goto installvlcvtmpluginnow
|
||||
if "%vlcvtmyesorno%" == N goto start
|
||||
if "%vlcvtmyesorno%" == n goto start
|
||||
|
||||
:installvlcvtmpluginnow
|
||||
title Installing of VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)
|
||||
echo Installing VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)
|
||||
cd INSTALLVLCPLUGIN
|
||||
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"
|
||||
copy libvtmdec.dll "%programfiles%\VideoLAN\VLC\plugins\codec" /y
|
||||
copy libvvcdecoder_plugin.dll "%programfiles%\VideoLAN\VLC\plugins\codec" /y
|
||||
copy libvvctsdemux_plugin.dll "%programfiles%\VideoLAN\VLC\plugins\demux" /y
|
||||
cd ../
|
||||
taskkill /im vlc.exe
|
||||
echo Three dll files are patched to your VLC Media Player.
|
||||
echo Restarting and starting VLC Media Player...
|
||||
echo Please load your VVC (codec) video file to VLC Media Player.
|
||||
echo For more information and options, please go at https://github.com/InterDigitalInc/VTMDecoder_VLCPlugin
|
||||
echo Once, you're finished, you don't have to patch again. You can continue normally VLC Media Player next time after VVCEasy.
|
||||
echo Once you're finished, you don't have to patch again. You can continue normally VLC Media Player next time after VVCEasy.
|
||||
"%programfiles%\VideoLAN\VLC\vlc.exe"
|
||||
pause
|
||||
goto start
|
||||
@ -519,20 +532,16 @@ goto start
|
||||
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
|
||||
set /p vvcnow0=Answer:
|
||||
if "%vvcnow0%" == Y goto installvvdecffmpegnow
|
||||
if "%vvcnow0%" == N goto start
|
||||
if "%vvcnow0%" == y goto installvvdecffmpegnow
|
||||
if "%vvcnow0%" == n goto start
|
||||
|
||||
:installvvdecffmpegnow
|
||||
echo Your favourite operating system is available on FFmpeg VVDec support. Please copy the link to a web browser.
|
||||
echo Your favorite 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 Download link: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md#ffmpeg-downloads-xhe-aac--vvc-endecoder-plugin-compiled-by-martin-eesmaa
|
||||
echo.
|
||||
echo See information on FFMPEGVVC.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md
|
||||
echo.
|
||||
@ -544,8 +553,19 @@ goto start
|
||||
echo Please see the document. The command will open the document for you.
|
||||
MPV.md
|
||||
echo.
|
||||
echo See information MPV.md or online Github: https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md
|
||||
echo See information MPV.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md
|
||||
echo.
|
||||
echo Press enter to go back to the main menu.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:testsofvideo
|
||||
echo Please see the paragraph in README.md.
|
||||
echo https://github.com/MartinEesmaa/VVCEasy/#tests-of-vvc-videos
|
||||
echo.
|
||||
echo See information on FFMPEGVVC.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md
|
||||
echo.
|
||||
echo Press enter to go back menu.
|
||||
pause
|
||||
goto start
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||
|
||||
#define MyAppName "VVCEasy"
|
||||
#define MyAppVersion "0.5.0"
|
||||
#define MyAppVersion "2.0.0"
|
||||
#define MyAppPublisher "Martin Eesmaa"
|
||||
#define MyAppURL "https://github.com/MartinEesmaa/VVCEasy"
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1 +1 @@
|
||||
"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",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}});
|
||||
"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8")+"//# sourceURL="+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+"\n");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var module=Module["wasmModule"];Module["wasmModule"]=null;var instance=new WebAssembly.Instance(module,info);return receiveInstance(instance)};self.onunhandledrejection=e=>{throw e.reason??e};function handleMessage(e){try{if(e.data.cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);self.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}CreateVVdeC(Module)}else if(e.data.cmd==="run"){Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["__emscripten_thread_mailbox_await"](e.data.pthread_ptr);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){Module["__embind_initialize_bindings"]();initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="checkMailbox"){if(initializedJS){Module["checkMailbox"]()}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}}self.onmessage=handleMessage;
|
Binary file not shown.
@ -1,6 +1,11 @@
|
||||
1ac79ae1553e5e52f7fdf0e3d952d6755b39a1a480f1279eb858543b5d0adc34 vvdecapp.exe
|
||||
ed0e90795b04ea4a906e09772dad20c555f0658a5904b7f5a89272d34a424d8e vvencapp.exe
|
||||
9c08748131220e382b03f911fa62e62b580bcbbd5792477c1932f0666622f56d vvencFFapp.exe
|
||||
ae6570cbd021ca079b0eb2ac064e414cb6c054108c6a84f68003351df4c0aedc vvencinterfacetest.exe
|
||||
6b01073ff7b402db159cbe0cae566b2f58ee98e1dca752d543599210413fb8fb vvenclibtest.exe
|
||||
26071beb1006498b9e4dd505a55012373ff82ce54a29bd7757c89b3e5383d089 WindowsVVC.7z
|
||||
fb45cc3465bbd384a734d35a27f630f38af67f27dfa3c15b3ca0c4959d750a08 Win32/vvdecapp.exe
|
||||
540f620b99abf58f00a906780507a23d253427d6e82a18e5e168185bf59795ef Win32/vvencapp.exe
|
||||
628b9ab413649e0c1bccf41e01ededf2f2f5bdcc6d49b77ad0690a7611552008 Win32/vvencFFapp.exe
|
||||
8ad0418ff241e79d6d869b2d6f47c5c0c0df6481662bfef2613c5d68b18d4216 Win32/vvencinterfacetest.exe
|
||||
5546e77815e174872f6bd018de9fd5b446602b0486a45baec6fe343e81178164 Win32/vvenclibtest.exe
|
||||
485a991e966b72101bfc75a081307d914159a135563d1c79368444c0c2feeb2e WindowsVVC.7z
|
||||
c13fc2cfa36f57111f23803b8ab8de35aa227ceb860e62929ee9457745fc0595 x64/vvdecapp.exe
|
||||
e11d33a0a2b293f99b1095811f3f23806d7580e8a966c7eb69d4aaabb9ef0df2 x64/vvencapp.exe
|
||||
4a1b384c908aa3b4bf3dd603a8bdfcd1774aabb8a2b5cbac1826c57b634b0fa8 x64/vvencFFapp.exe
|
||||
f30ef7699ec311d081540c401ddd8d8dd0a7b0ddcc2f9bc25e7536855d2d392d x64/vvencinterfacetest.exe
|
||||
f612930ded7dacc59954c393ad56c0a7c5d1fe425921bf893ac60f0038a09b4e x64/vvenclibtest.exe
|
||||
|
@ -1,15 +1,97 @@
|
||||
#!/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.
|
||||
PREFIX=/usr/local
|
||||
echo Building FFmpeg VVCEasy Linux version...
|
||||
sudo apt update && sudo apt upgrade -y && \
|
||||
sudo apt install build-essential cmake nasm autoconf pkg-config \
|
||||
python3-setuptools ninja-build python3-pip libtool git wget xxd -y && \
|
||||
sudo pip3 install meson
|
||||
|
||||
if [ ! -d FFmpeg-FixVVC ]; then
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
else
|
||||
git -C FFmpeg-VVC pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvenc ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
else
|
||||
git -C vvenc pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvdec ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
else
|
||||
git -C vvdec pull
|
||||
fi
|
||||
|
||||
if [ ! -d fdk-aac ]; then
|
||||
git clone --depth=1 https://github.com/mstorsjo/fdk-aac
|
||||
else
|
||||
git -C fdk-aac pull
|
||||
fi
|
||||
|
||||
if [ ! -d SDL ]; then
|
||||
git clone --depth=1 https://github.com/libsdl-org/SDL
|
||||
else
|
||||
git -C SDL pull
|
||||
fi
|
||||
|
||||
if [ ! -d libxml2 ]; then
|
||||
git clone --depth=1 https://github.com/gnome/libxml2
|
||||
else
|
||||
git -C libxml2 pull
|
||||
fi
|
||||
|
||||
if [ ! -d opus ]; then
|
||||
git clone --depth=1 https://github.com/xiph/opus
|
||||
else
|
||||
git -C opus pull
|
||||
fi
|
||||
|
||||
if [ ! -d libjxl ]; then
|
||||
git clone --depth=1 https://github.com/libjxl/libjxl
|
||||
sed -i 's/-lm/-lm -lstdc++/g' libjxl/lib/jxl/libjxl.pc.in libjxl/lib/threads/libjxl_threads.pc.in
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
else
|
||||
git -C libjxl pull
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
fi
|
||||
|
||||
if [ ! -d dav1d ]; then
|
||||
git clone --depth=1 https://code.videolan.org/videolan/dav1d
|
||||
else
|
||||
git -C dav1d pull
|
||||
fi
|
||||
|
||||
if [ ! -d vmaf ]; then
|
||||
git clone --depth=1 https://github.com/netflix/vmaf
|
||||
else
|
||||
git -C vmaf pull
|
||||
fi
|
||||
|
||||
cd vvenc && sudo make install-release install-prefix=$PREFIX disable-lto=1 && \
|
||||
cd .. && \
|
||||
cd vvdec && sudo make install-release install-prefix=$PREFIX disable-lto=1 && \
|
||||
cd .. && \
|
||||
cd fdk-aac && autoreconf -if && ./configure --prefix=$PREFIX --enable-static --disable-shared && sudo make install -j $nproc && \
|
||||
cd .. && \
|
||||
cd libxml2 && autoreconf -if && ./configure --prefix=$PREFIX --enable-static --disable-shared && sudo make install -j $nproc && \
|
||||
cd .. && \
|
||||
cd opus && autoreconf -if && CFLAGS="-O2 -D_FORTIFY_SOURCE=0" LDFLAGS="-flto -s" ./configure --prefix=$PREFIX --enable-static --disable-shared && sudo make install -j $nproc && \
|
||||
cd .. && \
|
||||
mkdir libjxl/build && cd libjxl/build && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_PLUGINS=ON -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=ON -DJPEGXL_FORCE_SYSTEM_GTEST=ON -DCMAKE_INSTALL_PREFIX=$PREFIX .. -G Ninja && sudo ninja install && \
|
||||
cd ../../ && \
|
||||
mkdir vmaf/libvmaf/build && cd vmaf/libvmaf/build && CFLAGS="-msse2 -mfpmath=sse -mstackrealign" meson -Denable_docs=false -Ddefault_library=static -Denable_float=true -Dbuilt_in_models=true -Dprefix=$PREFIX .. && sudo ninja install && \
|
||||
cd ../../../ && \
|
||||
sudo sed -i 's/-lm/-lm -lstdc++/g' $PREFIX/lib/x86_64-linux-gnu/pkgconfig/libvmaf.pc && \
|
||||
cd SDL && mkdir build && cd build && cmake -DCMAKE_EXE_LINKER_FLAGS="-static" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .. && sudo make install -j $nproc && \
|
||||
cd ../../ && \
|
||||
mkdir dav1d/build && cd dav1d/build && meson -Denable_docs=false -Ddefault_library=static -Dprefix=$PREFIX .. && sudo ninja install && \
|
||||
cd ../../ && \
|
||||
cd FFmpeg-VVC && \
|
||||
./configure --enable-static --pkg-config-flags="--static" --extra-ldexeflags="-static" \
|
||||
--enable-libfdk-aac --enable-libvvenc --enable-libvvdec --enable-pic \
|
||||
--enable-libxml2 --enable-libopus --enable-libdav1d --enable-libjxl --enable-libvmaf --enable-sdl2 && \
|
||||
make -j
|
||||
echo You are ready to preview VVC, view VVC information or convert from VVC using ffmpeg, ffplay and ffprobe.
|
||||
echo - Martin Eesmaa
|
||||
|
@ -6,18 +6,18 @@ Note to Mac and Linux of o266player VLC: Sorry Mac and Linux users :(, here is a
|
||||
|
||||
On macOS 10.15.6, I tried build, but it failed, you can have a look for Stack Overflow: [Link](https://stackoverflow.com/questions/70387126/error-1-and-2-trying-to-compile-vlc-o266player-missing-git-and-txt).
|
||||
|
||||
On Linux, it doesn't support 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.
|
||||
On Linux, it doesn't support VLC (o266player build).
|
||||
If you want to run VLC (o266player version), you need to run Windows only for a virtual machine or a real computer.
|
||||
|
||||
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 Vista | :white_check_mark: (All checked)
|
||||
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.0 | :white_check_mark: (All checked) | [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 10 | :white_check_mark: (All checked)
|
||||
Windows 11 | :white_check_mark: (All checked) | [Link](https://i.imgur.com/Me2L998.png) | 13/12/2021 15:58:55 (AEDT)
|
||||
|
||||
Windows Server | Compatibility (only x64) | Screenshot | Date report (DD/MM/YYYY, 24hr)
|
||||
@ -26,17 +26,22 @@ Windows Server 2003 | ⚠️ (Terminal only, GUI is not working) | [Link](https:
|
||||
Windows Server 2008 | ⚠️ (GUI Works, but VVC won't show video) | [Link](https://i.imgur.com/GXFgIt8.png) | 20/02/2022 14:02:28 (AEDT)
|
||||
Windows Server 2012 | :white_check_mark: (All checked) | [Link](https://i.imgur.com/Vcgag8B.png) | 17/12/2021 20:57:16 (AEDT)
|
||||
Windows Server 2016 | :white_check_mark: (Already checked by Tencent Cloud)
|
||||
Windows Server 2019 | :black_square_button: (Needs to be tested)
|
||||
Windows Server 2022 | :black_square_button: (Needs to be tested)
|
||||
Windows Server 2019 | :white_check_mark: (All checked)
|
||||
Windows Server 2022 | :white_check_mark: (All checked)
|
||||
|
||||
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.
|
||||
This cannot be run on Windows Vista / Windows Server 2008 or older and Windows 8.0 to play VVC video file of VLC Custom build.
|
||||
|
||||
***IMPORTANT: o266player closed source decoder commits built to .DLL/.dylib are expired since 1st February 2022 to disable showing VVC video. MP4 Mixed with VVC is unplayable showing.***
|
||||
|
||||
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.
|
||||
Reminder: Some operating systems are working to load VVC video format in Virtual Machine software, but real machines will work every operating system, for example Windows Server 2016 has already been tested by Tencent Cloud.
|
||||
|
||||
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
|
||||
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.
|
||||

|
||||
|
||||
- Martin Eesmaa
|
@ -1,66 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
<?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>
|
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
@ -1,72 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "WbFYV8fBnNlVfr+NRbXghaKnGfEHWanrZQqLeGD8y6DLIYfJ2JLipeqlPP64QCsGFpfbeY8OvnTCGBRpDXqOCg==",
|
||||
"success": true,
|
||||
"projectFilePath": "C:\\Users\\marti\\source\\repos\\VVCEasy\\VVCEasy\\VVCEasy.csproj",
|
||||
"expectedPackageFiles": [],
|
||||
"logs": []
|
||||
}
|
20
openvvc.sh
20
openvvc.sh
@ -1,20 +0,0 @@
|
||||
#!/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
|
@ -7,14 +7,14 @@ echo If it's not installed, we will install automatically for you.
|
||||
echo.
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install build-essential cmake -y
|
||||
cd /Home/Downloads/
|
||||
git clone https://github.com/fraunhoferhhi/vvenc.git
|
||||
git clone https://github.com/fraunhoferhhi/vvdec.git
|
||||
cd ~/Downloads
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvenc
|
||||
make release
|
||||
cd ../
|
||||
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-static" .. && make
|
||||
cd ../../
|
||||
cd vvdec
|
||||
make release
|
||||
cd ../
|
||||
echo Please see the build files following starting with vvenc/bin/release-shared
|
||||
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-static" .. && make
|
||||
cd ../../
|
||||
echo Please see the build files following starting with vvenc/bin/release-static
|
||||
pause
|
||||
|
@ -2,14 +2,18 @@
|
||||
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 ~/Downloads
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvenc
|
||||
make release
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
cmake --build . -j $nproc
|
||||
cd ../
|
||||
cd vvdec
|
||||
make release
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
cmake --build . -j $nproc
|
||||
cd ../
|
||||
echo Please see the build files following starting with vvenc/bin/release-shared
|
||||
echo Please see the build files following starting with bin/release-static
|
||||
pause
|
||||
|
@ -27,7 +27,7 @@ echo Do you want build of vvenc and vvdec yourself on your computer?
|
||||
echo Before you agree to build for Windows, you need Cmake and Visual Studio on your computer.
|
||||
echo Requires build to Windows VVC by Cmake 3.13.0+ (need pathed environment) and Visual Studio 2017 and later (requires Desktop C++ and only one individual component ML.NET Model Builder).
|
||||
echo Requires download VVEnc and VVDec for (Git for Windows).
|
||||
echo Yes means build. No means it will exit.
|
||||
echo Yes means build. No means will exit the program.
|
||||
echo Y/N?
|
||||
set /p main1234= Answer:
|
||||
if %main1234% == Y goto installmain123
|
||||
@ -40,13 +40,13 @@ title Building time...
|
||||
echo Building time...
|
||||
mkdir Windows && cd Windows
|
||||
echo Download VVENC and VVDEC from Fraunhoferhhi GitHub...
|
||||
git clone https://github.com/fraunhoferhhi/vvenc.git
|
||||
git clone https://github.com/fraunhoferhhi/vvdec.git
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvenc
|
||||
mkdir build && cd build
|
||||
cmake ..
|
||||
cmake --build . --config Release
|
||||
cd ..\bin\release-static
|
||||
cd ../bin/release-static
|
||||
explorer .
|
||||
cd ../../../
|
||||
cd vvdec
|
||||
|
Reference in New Issue
Block a user