Compare commits
622 Commits
Author | SHA1 | Date | |
---|---|---|---|
89f1c4e56a | |||
5c234c2337 | |||
4fa57164cb | |||
34f4ba7283 | |||
390e223cb7 | |||
d7aeaf25a4 | |||
dd478ffcfe | |||
b3bb8b9cc6 | |||
8168d1d3b2 | |||
bd8b08f333 | |||
3de0f0f052 | |||
c61051e736 | |||
8def33f30c | |||
058ac29758 | |||
d7745dccc4 | |||
ee00ad2988 | |||
187348f5c1 | |||
fc101d4ac0 | |||
652e83a3a7 | |||
074d666174 | |||
0c66974aa1 | |||
f64866575b | |||
bb4551479b | |||
79a0e3350f | |||
16b7e41353 | |||
b70ed5aa8c | |||
46cc3ea449 | |||
06f986b35f | |||
7b7eb16814 | |||
304b28907d | |||
c110293c94 | |||
c69b9fca2c | |||
ac11491598 | |||
0ec8889139 | |||
85bf1dfaf0 | |||
3e839ae835 | |||
2d5dd27e25 | |||
34abd2fe34 | |||
024154dc9a | |||
6a52ac8635 | |||
dabe7e8e7b | |||
d15b67b810 | |||
a479cc7164 | |||
d241639da0 | |||
e29406c29e | |||
834d81ce9a | |||
56c781a27c | |||
732c57d72b | |||
e36f3b5cda | |||
c126ed27c5 | |||
ca233bd5c6 | |||
bcd384aa29 | |||
21cb35698b | |||
b4cc7ffe4b | |||
324342c4a5 | |||
c06d6d5873 | |||
b970bdfc40 | |||
4f0d6a77b7 | |||
90b119ca97 | |||
fbd9a60fcd | |||
ad1753bda6 | |||
8cd01e2bc9 | |||
13daf065a8 | |||
b9b7f2c50a | |||
a4456a9f3d | |||
5852ee4d9b | |||
0f7dd026a0 | |||
f0e9e4327c | |||
a95ffd377a | |||
1b65197afc | |||
0b24b1b3bd | |||
527928968d | |||
20495e0cd8 | |||
2e58f18147 | |||
2c18168321 | |||
c504b2fe2b | |||
2e97d85065 | |||
5fe9666063 | |||
a5a70add8d | |||
2d50c27be3 | |||
d0be9a9c57 | |||
deb82de184 | |||
22751abc6e | |||
852035d1cf | |||
0069e4cbb8 | |||
e7a9ce3cfc | |||
9ea6acf6d3 | |||
780e8e1ec4 | |||
2f13e96764 | |||
56d947416e | |||
9278fe1180 | |||
4841008011 | |||
0a1e979867 | |||
50a922e6fa | |||
371ae3bba8 | |||
1662a7784d | |||
84059d6c30 | |||
fce103fb07 | |||
77cc4a3fa8 | |||
cb13525799 | |||
ea02c5e470 | |||
7ef85f00f8 | |||
a31c6903ec | |||
45b9323123 | |||
f1517d0bc8 | |||
63c166d5a4 | |||
29ecfe9361 | |||
9c8bc9c937 | |||
0d177d0940 | |||
d55c33e5d9 | |||
26ac03b755 | |||
7d2a51a328 | |||
5324e03ec7 | |||
4cc8c56fac | |||
cd1f379478 | |||
e3c02273b4 | |||
f47037a974 | |||
495b4390ff | |||
1230f1f3fd | |||
6fd5a8f5fa | |||
d3b38144af | |||
34d2579655 | |||
6464ef1de2 | |||
b17c6ba73a | |||
3b5b35c2ae | |||
e8cab91e18 | |||
2002f14ca9 | |||
f8ea38b457 | |||
fcdfde3d3f | |||
adc996e6e3 | |||
826745f85d | |||
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 | |||
a09fed7ac0 | |||
149151817d | |||
2c7a5ee2fd | |||
fa7935c674 | |||
24fcda99e8 | |||
b386e6b394 | |||
8b66900f3e | |||
3d7abf2fe2 | |||
de45fb1d1f | |||
5a5fd66aae | |||
d646d397e1 | |||
d2ab403b09 | |||
4152d2b687 | |||
f1dbbd6b0f | |||
d669a87a3f | |||
6d9b45db48 | |||
2c2f8ff29c | |||
40686abc7e | |||
336ef3b0b6 | |||
e72177a508 | |||
e33dc5b29f | |||
1c4db07ce9 | |||
8408b41a8c | |||
34fa72347d | |||
5e6e9a06c3 | |||
43b8445839 | |||
6ea6f7ac47 | |||
9b24ce70a1 | |||
ffd480741c | |||
3a9be77e8a | |||
886983a399 | |||
1179e44648 | |||
499cc738b4 | |||
33d9e45383 | |||
5ceebac52a | |||
4f6f0f8a7a | |||
055782d0ee | |||
94c46a866d | |||
935864b349 | |||
9f73d1cd3b | |||
7cfb6a1b2c | |||
6392235e49 | |||
5556b8cf7a | |||
3b62fe78d7 | |||
4196fa2488 | |||
44c13e8c71 | |||
e46f477bb9 | |||
351d557477 | |||
970ee2c981 | |||
6771c8ae93 | |||
d5ef45dc87 | |||
1559726c03 | |||
8b1e08574c | |||
8e8dabf7b9 | |||
c13decd7af | |||
c8e5257bbd | |||
560d86bf04 | |||
6b97019441 | |||
af35ce44ce | |||
04a3747e8f | |||
a5c064df75 | |||
42783bb9dd | |||
36c2a34cd4 | |||
6d20aeadd3 | |||
907a57e095 | |||
edcd7d0821 | |||
a447573ad0 | |||
1cadbbcaf4 | |||
949c1026c2 | |||
d9c8d18c6b | |||
40b7d198e6 | |||
ce79ae26d6 | |||
4322090b0b | |||
f3d945fd13 | |||
4b2204bf77 | |||
fcad744a70 | |||
31a708f03d | |||
985d8109e8 | |||
6649af1a9d | |||
3a2bd88916 | |||
db9995454a | |||
17464f612c | |||
57e0593f2f | |||
123bba687d | |||
7d6cd5b918 | |||
93de8d3bf9 | |||
ee7b5301ad | |||
686cbe2eee | |||
ca0382c870 | |||
3674d21327 | |||
72d9bca3f6 | |||
3b062932df | |||
ab7eb05ef3 | |||
71c9334cd2 | |||
f30ed9de9c | |||
5afee29fe6 | |||
7fda1de5a4 | |||
65dbef55f4 | |||
907001821e | |||
7d6165a09f | |||
cfd59c6324 | |||
bf71f7c122 | |||
92e9a111b3 | |||
9553a2ae65 | |||
f25795fa86 | |||
5145f0fc26 | |||
c3d72e127c | |||
63cb51c6a8 | |||
44316ec827 | |||
628299b837 | |||
4f8feda014 | |||
291ef25881 | |||
d96a88b62d | |||
df86ec8703 | |||
aa92c854d0 | |||
d7b5a4d757 | |||
8e724a1a10 | |||
8c990c82df | |||
9b17b2109d | |||
4abbc54f41 | |||
ad108a0dd1 | |||
b4247ff6f8 | |||
1a709ca8ef | |||
7af53b6eed | |||
7226aa7c8c | |||
6ab2574379 | |||
c929268580 | |||
a8411a7401 | |||
e28e84fefd | |||
4ae407986a | |||
3b5cebea9c | |||
aa2ceecdb6 | |||
750c9c6698 | |||
35ccda9b1f | |||
8b95ddf7d6 | |||
eb30ed6f48 | |||
8d7e647e02 | |||
ff3c52948d | |||
54afd8b2e6 | |||
a1df759e30 | |||
91751100ea | |||
3d0ce59341 | |||
f75ab34221 | |||
e266c88e7d | |||
f2f8b4ea80 | |||
0807ac0528 | |||
7a10274f64 | |||
58db0d5833 | |||
fb8871958e | |||
113add1d68 | |||
b14b025078 | |||
0ae25fe6ba | |||
365827ace0 | |||
1990cc4f9b | |||
e271f2adb7 | |||
32f20288fc | |||
2aa7efc460 | |||
0065a08eb6 | |||
6c95438dc1 | |||
1ec8fd07ad | |||
a43b508a22 | |||
c0761f508c | |||
1960ea2ceb | |||
2f170934e3 | |||
ef183ebf74 | |||
8d3dc26399 | |||
06ad24ae68 | |||
c6f22468ac | |||
582b4435d0 | |||
666efa5297 | |||
d0a8afa243 | |||
1b97f7e659 | |||
fcd688e043 | |||
5602a4d563 | |||
2c7feb973d | |||
4a7622f57a | |||
42b633060c | |||
454057cb1e | |||
8a12ad43a0 | |||
8f97346c34 | |||
e7bc7df144 | |||
74eff64c67 | |||
1620e1059e | |||
ae3f5d53ba | |||
1a0f71a71e | |||
e83a312a78 | |||
5492abef00 | |||
f54c8038bf | |||
b79b9b93e7 | |||
4681606216 | |||
1e41347098 | |||
e9d5e79376 | |||
1a24d433c8 | |||
d1d055d391 | |||
9c931f476d | |||
860d7a3193 | |||
f10ceb3796 | |||
ade31cff92 | |||
78839ef1af | |||
79c3323774 | |||
6ce39edf33 | |||
49e4effdff | |||
472aec66d4 | |||
58ee795f66 | |||
67cd01e83a | |||
b86ab7a854 | |||
f5ce149e5b | |||
b32627b7d6 | |||
73d6999e37 | |||
b84fb1671a | |||
4a60f0dfc3 | |||
53f8d92dc4 | |||
c1ca531b5a | |||
6d6d13925a | |||
65e1f272dd | |||
9a591190b1 | |||
3750964a9e | |||
8969a339ef | |||
3f94dec185 | |||
dbaae4cbf4 | |||
8316f78aae | |||
2598deced5 | |||
25284150a4 | |||
4dc921ea8a | |||
307f7f22c9 | |||
e6f57a2bf6 | |||
79012fcf17 | |||
7f7b65656c | |||
524523e138 | |||
2c11d4479f | |||
a05c33ab29 | |||
fd5f28761d | |||
e8727bf50a | |||
f7abe663da |
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
@ -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.
|
27
.github/workflows/dotnet.yml
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
name: .NET
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- 'Program.cs'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'Program.cs'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: 6.0.x
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
- name: Build VVCEasy (.NET Console Version)
|
||||
run: dotnet build --no-restore
|
||||
- name: Test VVCEasy (.NET Console Version)
|
||||
run: dotnet test --no-build --verbosity normal
|
BIN
7-Zip/7z.dll
BIN
7-Zip/7z.exe
@ -1,6 +1,87 @@
|
||||
|
||||
HISTORY of the 7-Zip
|
||||
--------------------
|
||||
|
||||
23.01 2023-06-20
|
||||
-------------------------
|
||||
- The page "Language" in 7-Zip's menu Tools/Options now shows information
|
||||
about selected translation, including the number of translated lines.
|
||||
- Some bugs were fixed.
|
||||
|
||||
|
||||
23.00 2023-05-07
|
||||
-------------------------
|
||||
- 7-Zip now can use new ARM64 filter for compression to 7z and xz archives.
|
||||
ARM64 filter can increase compression ratio for data containing executable
|
||||
files compiled for ARM64 (AArch64) architecture.
|
||||
Also 7-Zip now parses executable files (that have exe and dll filename extensions)
|
||||
before compressing, and it selects appropriate filter for each parsed file:
|
||||
- BCJ or BCJ2 filter for x86 executable files,
|
||||
- ARM64 filter for ARM64 executable files.
|
||||
Previous versions by default used x86 filter BCJ or BCJ2 for all exe/dll files.
|
||||
- Default section size for BCJ2 filter was changed from 64 MiB to 240 MiB.
|
||||
It can increase compression ratio for executable files larger than 64 MiB.
|
||||
- UDF: support was improved.
|
||||
- cpio: support for hard links.
|
||||
- Some changes and optimizations in WIM creation code.
|
||||
- When new 7-Zip creates multivolume archive, 7-Zip keeps in open state
|
||||
only volumes that still can be changed. Previous versions kept all volumes
|
||||
in open state until the end of the archive creation.
|
||||
- 7-Zip for Linux and macOS now can reduce the number of simultaneously open files,
|
||||
when 7-Zip opens, extracts or creates multivolume archive. It allows to avoid
|
||||
the failures for cases with big number of volumes, bacause there is a limitation
|
||||
for number of open files allowed for a single program in Linux and macOS.
|
||||
- There are optimizations in code for 7-Zip's context menu in Explorer:
|
||||
the speed of preparing of the menu showing was improved for cases when big number of
|
||||
files were selected by external program for context menu that contains 7-Zip menu commands.
|
||||
- There are changes in code for the drag-and-drop operations to and from 7-Zip File Manager.
|
||||
And the drag-and-drop operation with right button of mouse now is supported for some cases.
|
||||
- The bugs were fixed:
|
||||
- ZIP archives: if multithreaded zip compression was performed with more than one
|
||||
file to stdout stream (-so switch), 7-zip didn't write "data descriptor" for some files.
|
||||
- ext4 archives: 7-Zip couldn't correctly extract symbolic link to directory from ext4 archives.
|
||||
- HFS and APFS archives: 7-Zip incorrectly decoded uncompressed blocks (64 KiB) in compressed forks.
|
||||
- Some another bugs were fixed.
|
||||
|
||||
|
||||
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).
|
||||
- New switches: -spm and -im!{file_path} to exclude directories from processing
|
||||
for specified paths that don't contain path separator character at the end of path.
|
||||
- In the "Add to Archive" window, now it is allowed to use -m prefix for "Parameters"
|
||||
field as in command line: -mparam.
|
||||
- The sorting order of files in archives was slightly changed to be more consistent
|
||||
for cases where the name of some directory is the same as the prefix part of the name
|
||||
of another directory or file.
|
||||
- TAR archives created by 7-Zip now are more consistent with archives created by GNU TAR program.
|
||||
|
||||
|
||||
21.06 2021-11-24
|
||||
-------------------------
|
||||
- The window "Add to Archive" now allows to set a limit on memory usage (RAM)
|
||||
@ -30,7 +111,7 @@ HISTORY of the 7-Zip
|
||||
New -shd{dir_path} switch to set the directory that is used to check files
|
||||
referenced by "file.sha256" file for "Test" operation.
|
||||
If -shd{dir_path} is not specified, 7-Zip uses the directory where "file.sha256" is stored.
|
||||
- New -xtd switch to exclude directory items from processing.
|
||||
- New -xtd switch to exclude directory metadata records from processing.
|
||||
|
||||
|
||||
21.03 beta 2021-07-20
|
||||
|
@ -3,7 +3,7 @@
|
||||
License for use and distribution
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
7-Zip Copyright (C) 1999-2021 Igor Pavlov.
|
||||
7-Zip Copyright (C) 1999-2023 Igor Pavlov.
|
||||
|
||||
The licenses for files are:
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
7-Zip 21.06
|
||||
7-Zip 23.01
|
||||
-----------
|
||||
|
||||
7-Zip is a file archiver for Windows.
|
||||
|
||||
7-Zip Copyright (C) 1999-2021 Igor Pavlov.
|
||||
7-Zip Copyright (C) 1999-2023 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, VMDK, XAR and Z.
|
||||
RPM, SquashFS, UDF, UEFI, VDI, VHD, VHDX, VMDK, XAR and Z.
|
||||
- Fast compression and decompression
|
||||
- Self-extracting capability for 7z format
|
||||
- Strong AES-256 encryption in 7z and ZIP formats
|
||||
|
3
AUTHORS.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Authors
|
||||
|
||||
* Martin Eesmaa, @MartinEesmaa, Embassy of Estonia in Australia
|
BIN
Android/AndroidUVG266-8bit.7z
Normal file
5
Android/AndroidUVG266-8bit.sha256
Normal file
@ -0,0 +1,5 @@
|
||||
78ea2486ff2f9617efea795b4284e18459859cc2f55664c603763ccfc64a6ffc AndroidUVG266-8bit.7z
|
||||
9622277523b808aef088b7d99019835e8bd438fdd1e99baaea4c500b6f34da89 arm64/uvg266
|
||||
4cfac9aa8129e7b320f5b4a57b7333bfe2023092d8dd7952014980756b65a1e3 armeabi/uvg266
|
||||
292a3f5c021b004ff2eeeb738a934b90b18167ece3c784c73df6eb932f1f4b04 x86/uvg266
|
||||
95840d9c7b572fcd436362c6e6f23fd1357dfc3aeb3218e2abb8e6b604415237 x86_64/uvg266
|
BIN
Android/AndroidUVG266.7z
Normal file
5
Android/AndroidUVG266.sha256
Normal file
@ -0,0 +1,5 @@
|
||||
790e6c86aa438c431be701fc2123776c4e3aaa76c3fd24cb27e730424920fa74 AndroidUVG266.7z
|
||||
f1e92520d4b47e0d06ef532a07b17ce370011a9e696281dc43636132fe0d5abb arm64/uvg266
|
||||
115adf7ec8614ccc87689805807496fd396ca4b445ea77041cf568816d5e2a7a armeabi/uvg266
|
||||
3268c6d40029b6aaf60c1d4e08778ccf416baa9c25aea2e2ed9ed2724c324e84 x86/uvg266
|
||||
3270046d3dc08addbccce4bd558358234366e4111c7cc7ca69dfcbbf37455960 x86_64/uvg266
|
BIN
Android/AndroidVVC.7z
Normal file
21
Android/AndroidVVC.sha256
Normal file
@ -0,0 +1,21 @@
|
||||
7adce368e5741dbaa52b8b9febf9ea5079aeda8b4dfe069cfe6e923b7780e0b1 AndroidVVC.7z
|
||||
e66e57c66bb58f8e9e67d858df2e1eee6ce2e729ff33364f432bfb88a53a9d97 arm64/vvdecapp
|
||||
55b4ba97de6bced5e925a7ceda0a4f17ff7090ef3fc2b4a144f8c3febc07d36a arm64/vvencapp
|
||||
f50214bc5db4b49cb6015724f30c78de2693e947da27a2bddcaf33ffe4dab499 arm64/vvencFFapp
|
||||
ddb0f8515493b9179e4d9d260f37d89cd368cedf6b9be7bf00361ee30cba7dd7 arm64/vvencinterfacetest
|
||||
c63197e249e019edd66916f51972c728faff91dfde0fed5c869b48c663327d07 arm64/vvenclibtest
|
||||
b4114d3d961345783037654a47c5a0fca4093431e87ccb0733a56a8883ea864f armeabi/vvdecapp
|
||||
300ab8f4360c5f8ae8af3c455946b780014996279b1f3b06736a6aa478b5778b armeabi/vvencapp
|
||||
45e26c56b082c37cac917d02e8a28c9f51eb0f1c3af64af0efe82e22ac20d904 armeabi/vvencFFapp
|
||||
71b2cc8b74538414ca7cee71571b79d68af87d476f2ff80992c668df5631954a armeabi/vvencinterfacetest
|
||||
7328b3759cdc38388bf32da8cc66e66b0b9b49372e3277f0bbc891f79f339fb4 armeabi/vvenclibtest
|
||||
5ca1ee46be191c12298552e1e1600bedd7f0ffc83abdf6d8c3b9c2232864d3be x86/vvdecapp
|
||||
84bea50a737de4d08c05c05fdb49f5be3afa41c6a05ec61d55c2859d9b9e5ea4 x86/vvencapp
|
||||
9d7a90980482189a753b3fadfdd3488594405ecf691fa2b80026170aa2de56f1 x86/vvencFFapp
|
||||
7e1519bd095ec8bace2b696675c6cae31d946b024531488619fe6f5a1a014bb5 x86/vvencinterfacetest
|
||||
43079b37046827c3bb785e005d5bd9224bca971d091c0f374be9b323d9fc847e x86/vvenclibtest
|
||||
0753f76be85cf2edcac644cc517b8dfdcf203989ce7d5be1c86a955ae06e0860 x86_64/vvdecapp
|
||||
ee333b63778abcde1f6054177696e6377839140c11f29cce70264cb31671de6d x86_64/vvencapp
|
||||
ce825745e51b9ad4be3635bb53c621430ffa4984b4fe42be4bfdebd2bb85e885 x86_64/vvencFFapp
|
||||
d7bfb886facfe1e0c9bba2e828562a7c38b4b7563ef36c4db4d37486718b5075 x86_64/vvencinterfacetest
|
||||
5b872fdcd097a9d1c82792424edb991c0e6e9804c8b745a168af63b83728e613 x86_64/vvenclibtest
|
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, it requires FFmpeg installed 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 19 (32-bit tablets only)
|
||||
|
||||
x86_64 - API 21 (64-bit tablets only)
|
||||
|
||||
TIP: You can install my built applications:
|
||||
|
||||
```
|
||||
chmod +x vvdecapp uvg266 vvencapp
|
||||
cp vvencapp vvdecapp uvg266 $PREFIX/bin
|
||||
```
|
||||
|
||||
### vvencapp encoder (Fraunhofer HHI)
|
||||
|
||||
Screenshot (tested my phone):
|
||||
|
||||

|
||||
|
||||
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 couple minutes without printing the info, it means finished, tap CTRL + C.
|
||||
|
||||
VVDEC might not decode with some uvg266 options (example uvg266 presets unplayable with vvdec: preset placebo & lossless.
|
||||
|
||||
- Martin Eesmaa
|
BIN
Android/vvencapptermux.png
Normal file
After Width: | Height: | Size: 160 KiB |
130
Bitmovin.md
Normal file
@ -0,0 +1,130 @@
|
||||

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

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

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

|
||||
-------------------------
|
||||
Tests will be coming sooner.
|
||||
|
||||
- Martin Eesmaa
|
107
CHANGELOG
Normal file
@ -0,0 +1,107 @@
|
||||
VVCEasy versions of changelog:
|
||||
|
||||
To view or download releases with changelogs, please go to https://github.com/MartinEesmaa/VVCEasy/releases
|
||||
|
||||
This is local changelog file.
|
||||
|
||||
v2.5.0 Release (April 11, 2024):
|
||||
|
||||
- New FFmpeg VVCEasy builds of Windows & Linux using my forked repository from BtBn/FFmpeg-Builds and up to 7.0 nightly latest.
|
||||
- No longer broken ffplay on Linux.
|
||||
- Added DVD-Video Demuxer (libdvdnav & libdvdread), Chinese AVS encoder, Vidvox Hap with Snappy, CD reader (libcdio), AMR-WB encoder, iLBC encoder (Windows only), MP3 Shine encoder, bs2b and Google LC3 features to Windows & Linux FFmpeg VVCEasy builds.
|
||||
- Added XPSNR filter support to FFmpeg VVCEasy builds.
|
||||
- Updated VLC VTM Decoder of VVC Plugins for Windows & Linux.
|
||||
- Updated Windows LAVFilters for up to 0.79.2 with new FFmpeg and vvdec.
|
||||
- Updated instructions of README and other markdown files.
|
||||
- Updated Android uvg266 builds.
|
||||
- New Mac OS FFmpeg VVCEasy build is now back.
|
||||
- Updated VVC binaries, FFmpeg VVCEasy & MPV VVCEasy builds.
|
||||
- Added & updated MPC-HC with pre-installed LAVFilters VVCEasy version and yt-dlp support.
|
||||
- Added & fixed Linux & Arch Linux of MPV VVCEasy builds for AppImages, but later removed unnecessary shared objects and it works all Linux distributions in one appimage of main Linux.
|
||||
- Removed Android MPV VVCEasy of gpu-next builds, now they're already support since 24th October 2023 in main builds.
|
||||
- Updated Android MPV VVCEasy builds, but libxml2 is skipped due to error configuration & compilation.
|
||||
- New added native Windows MPV VVCEasy x86_64-v3 build.
|
||||
- Added GUI application of lists in README.
|
||||
- Updated FFmpeg & MPV VVCEasy screenshots except Mac OS build screenshot of FFmpeg VVCEasy.
|
||||
|
||||
v2.0.0 Release (June 22, 2023):
|
||||
|
||||
It is finally here for VVCEasy version 2. Sorry for waiting release yet.
|
||||
|
||||
- Added Windows XP compatibility to Fraunhofer HHI vvenc/vvdec binaries.
|
||||
- Added Windows 32-bit, Linux aarch64 and Android all architecture builds of vvenc and vvdec.
|
||||
- Improved and complete static of FFmpeg VVCEasy build from my current repository, the FFmpeg-FixVVC is no longer - maintained and it's old.
|
||||
- Updated Mac OS builds, but for FFmpeg Mac OS version not yet and will be released later for future version.
|
||||
- Updated Windows MPV build using my forked repository of mpv-winbuild-cmake on my Arch Linux cross compilation.
|
||||
- Added LAVFilters VVCEasy build for Windows DirectShow users to play VVC video by an external player of Windows build.
|
||||
- Updated all vvenc and vvdec binaries.
|
||||
|
||||
**Full Changelog**: https://github.com/MartinEesmaa/VVCEasy/compare/v.1.0.1...v2.0.0
|
||||
|
||||
v1.0.1 Release (July 2, 2022):
|
||||
|
||||
- Added Windows x64 build of MPV Player
|
||||
- Added Android vvdecapp applications (used in Termux app)
|
||||
|
||||
v1.0.0 Release (June 23, 2022):
|
||||
|
||||
- MPV OpenVVC is replaced by MPV libvvdec, seek support of mp4.
|
||||
- Add libvvenc to FFmpeg VVC, thanks @IsaMorphic!
|
||||
- Add build instructions for Windows & Linux users to build VLC InterDigital Plugin itself.
|
||||
- Add tests of videos in README.md
|
||||
|
||||
v0.9.2 Beta (June 18, 2022):
|
||||
|
||||
- i686/x86 support on Android MPV Player (OpenVVC plugin)
|
||||
- Updated VVC encoder of three operating systems
|
||||
- Updated vvDecWebPlayer
|
||||
- Added important note & build for Mac OS in FFMPEGVVC.md
|
||||
- Fix README instructions
|
||||
- Added Doom9 & Imgur account link in SOCIALMEDIA.md
|
||||
- Added some changes
|
||||
|
||||
v0.9.0 Beta (May 24, 2022):
|
||||
|
||||
- Added FFmpeg VVDec support + seek support (audio support required mp4box) FFmpeg VVC: FFMPEGVVC.md
|
||||
- Added Android MPV Player (OpenVVC support) MPV VVC: MPV.md
|
||||
- Added Linux support of InterDigital VLC VTM Plugin VLC VTM: INSTALLVLCPLUGIN directory
|
||||
- Updated to VVC systems
|
||||
- Added social media links on SOCIALMEDIA.md
|
||||
- Added some licenses & credits in README
|
||||
- Removed o266player (reason: The commits of o266player were longer than one year)
|
||||
|
||||
v0.5.0 Beta (February 25, 2022):
|
||||
|
||||
First VVCEasy beta version.
|
||||
|
||||
- Batchfile (Windows version is ready)
|
||||
- C# (Might not be quite ready, but next release I'm sure... malfunction mode)
|
||||
|
||||
On MacOS version should be very soon...
|
||||
|
||||
Virustotal:
|
||||
https://www.virustotal.com/gui/file/fd310637f71cd0f956929d3838bbb523eb0fd03092e18ba3772b95dc9cd1f35b
|
||||
https://www.virustotal.com/gui/file/ff2cd6d2147aa0662072821cf6fa48c7bdf49266f682cc0aa755df67d9c1e301
|
||||
https://www.virustotal.com/gui/file/8c2f230c0d800846d9c127d4931d13e04ce98a384b95280fdca8b50ece18a772
|
||||
|
||||
Hybrid Analysis:
|
||||
https://www.hybrid-analysis.com/sample/fd310637f71cd0f956929d3838bbb523eb0fd03092e18ba3772b95dc9cd1f35b
|
||||
https://www.hybrid-analysis.com/sample/ff2cd6d2147aa0662072821cf6fa48c7bdf49266f682cc0aa755df67d9c1e301
|
||||
https://www.hybrid-analysis.com/sample/8c2f230c0d800846d9c127d4931d13e04ce98a384b95280fdca8b50ece18a772
|
||||
|
||||
v0.0.1 Alpha Windows only (December 23, 2021):
|
||||
|
||||
- First pre-release.
|
||||
- Some settings won't work.
|
||||
- Compiled using Advanced BAT to EXE converter.
|
||||
|
||||
Windows Executable file SHA256: 16A5686C80B9C894222A84BC6F3FFC2E1A91AAB9CF30EB504959D0718A0F9C80
|
||||
7z archived file SHA256: C5C904E4C8B7FB8F98C540E8140AF6CF9F9A2B562428CFD30C0F8EFABAE49FAB
|
||||
|
||||
Virustotal:
|
||||
.EXE: https://www.virustotal.com/gui/file/16a5686c80b9c894222a84bc6f3ffc2e1a91aab9cf30eb504959d0718a0f9c80
|
||||
.7Z: https://www.virustotal.com/gui/file/c5c904e4c8b7fb8f98c540e8140af6cf9f9a2b562428cfd30c0f8efabae49fab
|
||||
|
||||
After installation, the File Explorer will launch automatically path from your Program Files. Right click "RUNVVCEasy.bat" and click send to desktop (create shortcut) and run as admin.
|
||||
|
||||
Changelogs written by Martin Eesmaa
|
128
CODE_OF_CONDUCT.md
Normal file
@ -0,0 +1,128 @@
|
||||
# Contributor Covenant Code of Conduct (Martin Eesmaa)
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the
|
||||
overall community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or
|
||||
advances of any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email
|
||||
address, without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
Martin Eesmaa.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series
|
||||
of actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or
|
||||
permanent ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within
|
||||
the community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.0, available at
|
||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||
enforcement ladder](https://github.com/mozilla/diversity).
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
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
|
168
FFMPEGMINGW.sh
Normal file
@ -0,0 +1,168 @@
|
||||
echo Updating and upgrading MSYS2 packages... if system core update requires reboot this application, please run this script again after being updated.
|
||||
pacman -Syu
|
||||
echo Installing MSYS2 packages...
|
||||
pacman -S python git nasm vim wget $MINGW_PACKAGE_PREFIX-{toolchain,cmake,autotools,meson,ninja}
|
||||
echo Starting process of FFmpeg build with libvvenc and libvvdec...
|
||||
if [ ! -d buildffmpegwin ]; then
|
||||
mkdir buildffmpegwin && cd buildffmpegwin
|
||||
else
|
||||
cd buildffmpegwin
|
||||
fi
|
||||
|
||||
if [ ! -d FFmpeg-VVC ]; then
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
else
|
||||
git -C FFmpeg-VVC pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvenc ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
else
|
||||
git -C vvenc pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvdec ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
else
|
||||
git -C vvdec pull
|
||||
fi
|
||||
|
||||
if [ ! -d fdk-aac ]; then
|
||||
git clone --depth=1 https://github.com/mstorsjo/fdk-aac
|
||||
else
|
||||
git -C fdk-aac pull
|
||||
fi
|
||||
|
||||
if [ ! -d SDL ]; then
|
||||
git clone --depth=1 https://github.com/libsdl-org/SDL -b SDL2
|
||||
else
|
||||
git -C SDL pull
|
||||
fi
|
||||
|
||||
if [ ! -d libxml2 ]; then
|
||||
git clone --depth=1 https://github.com/gnome/libxml2
|
||||
else
|
||||
git -C libxml2 pull
|
||||
fi
|
||||
|
||||
if [ ! -d opus ]; then
|
||||
git clone --depth=1 https://github.com/xiph/opus
|
||||
else
|
||||
git -C opus pull
|
||||
fi
|
||||
|
||||
if [ ! -d libjxl ]; then
|
||||
git clone --depth=1 https://github.com/libjxl/libjxl
|
||||
sed -i 's/-lm/-lm -lstdc++/g' libjxl/lib/jxl/libjxl.pc.in libjxl/lib/threads/libjxl_threads.pc.in
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
else
|
||||
git -C libjxl pull
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
fi
|
||||
|
||||
if [ ! -d zimg ]; then
|
||||
git clone --depth=1 https://github.com/sekrit-twc/zimg
|
||||
git -C zimg submodule update --init --recursive --depth 1
|
||||
wget https://raw.githubusercontent.com/m-ab-s/mabs-patches/master/zimg/0001-libm_wrapper-define-__CRT__NO_INLINE-before-math.h.patch
|
||||
git -C zimg apply 0001-libm_wrapper-define-__CRT__NO_INLINE-before-math.h.patch
|
||||
rm 0001-libm_wrapper-define-__CRT__NO_INLINE-before-math.h.patch
|
||||
else
|
||||
git -C zimg pull
|
||||
git -C zimg submodule update --init --recursive --depth 1
|
||||
fi
|
||||
|
||||
if [ ! -d soxr ]; then
|
||||
git clone --depth=1 https://github.com/chirlu/soxr
|
||||
else
|
||||
git -C soxr pull
|
||||
fi
|
||||
|
||||
if [ ! -d dav1d ]; then
|
||||
git clone --depth=1 https://code.videolan.org/videolan/dav1d
|
||||
else
|
||||
git -C dav1d pull
|
||||
fi
|
||||
|
||||
if [ ! -d codec2 ]; then
|
||||
git clone --depth=1 https://github.com/drowe67/codec2
|
||||
else
|
||||
git -C codec2 pull
|
||||
fi
|
||||
|
||||
if [ ! -d vmaf ]; then
|
||||
git clone --depth=1 https://github.com/netflix/vmaf
|
||||
else
|
||||
git -C vmaf pull
|
||||
fi
|
||||
|
||||
echo Starting to build fdk-aac:
|
||||
cd fdk-aac
|
||||
autoreconf -if && ./configure --enable-static --disable-shared --prefix=$MSYSTEM_PREFIX && make install -j $nproc
|
||||
cd ..
|
||||
|
||||
echo Starting to build libxml2:
|
||||
cd libxml2
|
||||
autoreconf -if && ./configure --enable-static --disable-shared --prefix=$MSYSTEM_PREFIX && make install -j $nproc
|
||||
cd ..
|
||||
|
||||
echo Starting to build sdl2:
|
||||
cd SDL
|
||||
mkdir build && cd build && cmake -DCMAKE_EXE_LINKER_FLAGS="-static" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX .. -G "MinGW Makefiles" && cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
|
||||
echo Starting to build libopus to improve decode quality on FFmpeg:
|
||||
cd opus
|
||||
autoreconf -if && CFLAGS="-O2 -D_FORTIFY_SOURCE=0" LDFLAGS="-flto -s" ./configure --enable-static --disable-shared --prefix=$MSYSTEM_PREFIX && make install -j $nproc
|
||||
cd ..
|
||||
|
||||
echo Starting to build libjxl:
|
||||
mkdir libjxl/build && cd libjxl/build && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_PLUGINS=ON -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=ON -DJPEGXL_FORCE_SYSTEM_GTEST=ON -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX .. && ninja install
|
||||
cd ../../
|
||||
|
||||
echo Starting to build dav1d:
|
||||
mkdir dav1d/build && cd dav1d/build && meson -Denable_docs=false -Ddefault_library=static -Dprefix=$MSYSTEM_PREFIX .. && ninja install
|
||||
cd ../../
|
||||
|
||||
echo Starting to build zimg:
|
||||
cd zimg && autoreconf -if && ./configure --disable-shared --prefix=$MSYSTEM_PREFIX && make install -j $nproc
|
||||
cd ..
|
||||
|
||||
echo Starting to build soxr:
|
||||
mkdir soxr/build && cd soxr/build && cmake -D{WITH_LSR_BINDINGS,BUILD_TESTS,WITH_OPENMP}=off -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -Wno-dev .. -G "MinGW Makefiles"
|
||||
cmake --build . -j $nproc --target install
|
||||
cd ../../
|
||||
|
||||
echo Starting to build codec2:
|
||||
cd codec2
|
||||
sed -i 's|if(WIN32)|if(FALSE)|g' CMakeLists.txt
|
||||
grep -ERl "\b(lsp|lpc)_to_(lpc|lsp)" --include="*.[ch]" | \
|
||||
xargs -r sed -ri "s;((lsp|lpc)_to_(lpc|lsp));c2_\1;g"
|
||||
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -D{UNITTEST,INSTALL_EXAMPLES}=off -DBUILD_SHARED_LIBS=OFF -DCMAKE_EXE_LINKER_FLAGS="-static" .. -G "MinGW Makefiles"
|
||||
cmake --build . -j $nproc --target install
|
||||
cd ../../
|
||||
|
||||
echo Starting to build vmaf to apply calculate VVC video references from original video:
|
||||
mkdir vmaf/libvmaf/build && cd vmaf/libvmaf/build && CFLAGS="-msse2 -mfpmath=sse -mstackrealign" meson -Denable_docs=false -Ddefault_library=static -Denable_float=true -Dbuilt_in_models=true -Dprefix=$MSYSTEM_PREFIX .. && ninja install
|
||||
cd ../../../
|
||||
sed -i 's/-lm/-lm -lstdc++/g' $MSYSTEM_PREFIX/lib/pkgconfig/libvmaf.pc
|
||||
|
||||
echo Starting to build vvenc...
|
||||
cd vvenc
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -DVVENC_ENABLE_LINK_TIME_OPT=OFF .. -G "MinGW Makefiles"
|
||||
cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
echo Starting to build vvdec...
|
||||
cd vvdec
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX -DVVDEC_ENABLE_LINK_TIME_OPT=OFF .. -G "MinGW Makefiles"
|
||||
cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
|
||||
echo Starting configuring and making FFmpeg VVCEasy build...
|
||||
cd FFmpeg-VVC
|
||||
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-libfdk-aac --enable-static --enable-libvvenc --enable-libvvdec --enable-pic \
|
||||
--enable-zlib --enable-libxml2 --enable-libdav1d --enable-libopus --enable-libcodec2 --enable-libjxl --enable-libzimg \
|
||||
--enable-libvmaf --enable-libsoxr --extra-ldexeflags=-static --pkg-config-flags=-static --disable-w32threads --enable-sdl2 --extra-version=VVCEasy && \
|
||||
make -j
|
||||
echo FFmpeg VVC version tools are now compiled, please see buildffmpegwin/FFmpeg folder.
|
254
FFMPEGVVC.md
Normal file
@ -0,0 +1,254 @@
|
||||
# FFmpeg VVC En/decoder & xHE-AAC installation (Windows, Mac OS and Linux)
|
||||
|
||||
Windows, Mac and Linux (Preview of VVC video in FFplay):
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
# Play video file
|
||||
|
||||
You can play VVC video codec with .h266, .vvc, .266 and anything or .mp4 mixed with VVC codec:
|
||||
|
||||
```
|
||||
ffplay_vvceasy versatile.266
|
||||
```
|
||||
|
||||
Or if you have xHE-AAC audio codec:
|
||||
|
||||
```
|
||||
ffplay_vvceasy -codec:a libfdk_aac -i versatile.m4a
|
||||
```
|
||||
|
||||
# Official FFmpeg VVC native decoder implementation
|
||||
|
||||
It started at January 4 2024 when the native VVC decoder is released on FFmpeg, but it was experimental without IBC (Intra Block Copy).
|
||||
|
||||
On February 24 2024, the finally moment about Intra Block Copy has been merged into FFmpeg's official repository, which means native VVC decoder on FFmpeg is completed and it's stable.
|
||||
|
||||
His hard work is very good and made by [nuomi2021](https://github.com/nuomi2021) to make native VVC decoder release to FFmpeg.
|
||||
|
||||
Now you can use official FFmpeg binaries by BtBn or Gyan or my custom build of FFmpeg VVCEasy build to play or decode VVC in FFmpeg. Also mpv too with shinchiro or VVCEasy builds. :)
|
||||
|
||||
But for libvvenc VVC encoder has not implemented yet into official FFmpeg. FFmpeg VVCEasy build has still libvvenc VVC encoder available by Martin Eesmaa's FFmpeg-VVC repository.
|
||||
|
||||
# Limitations of FFmpeg VVC encoder
|
||||
|
||||
Before encode to VVC video codec, see the limitations below.
|
||||
|
||||
libvvenc (FFmpeg vvc version) works for:
|
||||
|
||||
- Pixel format ⚠️ (only pixel format 10 bit is default, but you can still encode 8 bit by using `-bitdepth8 1`)
|
||||
- Video size (auto detects, but it doesn't detect for SAR and DAR anamorphic is glitch and corrupts the video) ⚠️ (Better way to use vvencapp without FFmpeg)
|
||||
- Frame rate ✅ (auto detects)
|
||||
- MP4/TS Mux ✅ (only works for stable if it's encoded VVC with MP4 or TS on FFmpeg and mp4box for muxing still works)
|
||||
- Mux MP4/TS container from raw bitstream on FFmpeg ⚠️ (the first frame freezes may just print error messages for libvvdec when muxed and seeking in FFmpeg, use mp4box for recommendation)
|
||||
- Matroska mux ⚠️ (Only matroska mux has an experimental, causing problem of the video sync delay with audio and others for FFmpeg libvvdec. It is unofficial support)
|
||||
- Demux ✅
|
||||
- Audio with encode VVC ✅
|
||||
- Broadcasting ✅ (MPEG-TS)
|
||||
- Streaming ✅ (MPEG-DASH)
|
||||
- Bitrates ✅ (average (`-b:v`) and maximum bitrate (`-maxrate`) are only supported)
|
||||
- Passes ⚠️ (you may need get passes using vvenc params on FFmpeg VVCEasy or use vvencapp, also it is only available to use bitrate for two passes, QP supports only one pass)
|
||||
- Presets ✅
|
||||
- QP ✅
|
||||
- HDR ✅
|
||||
|
||||
Built in libvvenc for FFmpeg command:
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -c:v libvvenc -qp 37 -preset slow example.266
|
||||
```
|
||||
|
||||
For more options for libvvenc in FFmpeg VVCEasy version, type `ffmpeg_vvceasy -h encoder=libvvenc` for available commands.
|
||||
|
||||
Additional command: You can convert to VVC video without taking a much space for vvencapp, example:
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -pix_fmt yuv420p -f yuv4mpegpipe - | vvencapp --y4m -i - --preset medium --qp 35 -o converted.266
|
||||
```
|
||||
|
||||
Converting xHE-AAC to AAC audio:
|
||||
|
||||
```
|
||||
ffmpeg -c:a libfdk_aac -i mymusic.m4a -c:a aac -b:a 128k mymusic.aac
|
||||
```
|
||||
|
||||
Replace video size for `-s` and frame rate for `-r`.
|
||||
|
||||
### Update 21th May 2022 of FFmpeg vvdec support
|
||||
|
||||
Good news, you can play .mp4 file after .h266 and audio format were merged into mp4 playable of VVC.
|
||||
|
||||
About [xHE-AAC](https://www.iis.fraunhofer.de/en/ff/amm/broadcast-streaming/xheaac.html), now it's available decode support xHE-AAC of FFmpeg. [Exhale](https://gitlab.com/ecodis/exhale) (encoder) is free to use and open source, but if you want Fraunhofer IIS xHE-AAC, you can download [EZ CD Audio Converter](https://www.poikosoft.com/music-converter) for Windows only. You can also merge your encoded xHE-AAC audio into mp4 too.
|
||||
|
||||
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 -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 (xHE-AAC & VVC en/decoder plugin compiled by Martin Eesmaa)
|
||||
|
||||
[Windows x64](https://mega.nz/file/Wp0HULZZ#cwoeAihRm7nPBBuFtFG3miXwMP0oJrqhqLTKWp3F37Q)
|
||||
|
||||
[Mac OS x86_64](https://mega.nz/file/G1tEEDJa#xVytDb_KuRfNJoaoEeVevLEN3syVH4z6vDa-YJB5-sY)
|
||||
|
||||
[Linux x64](https://mega.nz/file/n1lBhI7J#euCBkKAY-r5olLNZYA99XtII90f9vhXjvEoPNebw-ZE)
|
||||
|
||||
[FFmpeg-FixVVC archived old source code](https://mega.nz/file/G81QyT5S#jcbE1sYPEy1OMIDPCF8BPeAK-3KAGF50u23MVJzmBgw) (old)
|
||||
|
||||
### Note about downloads
|
||||
|
||||
Also, please check changelog before you download the new version.
|
||||
|
||||
### Changelog
|
||||
```
|
||||
09/04/2024: Updated FFmpeg with latest nightly and added early LC3 muxer & demuxer can encode, decode and play LC3 by liblc3 (Windows & Linux are already have liblc3) from FFmpeg patchwork.
|
||||
06/04/2024: Updated FFmpeg up to 7.0 latest with nightly, others & added Google LC3 encoder/decoder using liblc3 feature to Windows and Linux.
|
||||
31/03/2024: Updated FFmpeg, vvenc, libopus and others.
|
||||
19/03/2024: Updated FFmpeg, vvenc, libopus and others. Official commit set native VVC decoder is experimental, now decodes default VVC video by using external libvvdec.
|
||||
04/03/2024: Updated FFmpeg, vvenc, vvdec, libopus and others. Added libdvdnav and libdvdread, especially libdvdcss to Windows & Linux. Switched from external VVC decoder (libvvdec) to native VVC decoder by removing experimental.
|
||||
01/03/2024: Updated limitations of FFmpeg VVC encoder in FFMPEGVVC.md
|
||||
29/02/2024: Note about official FFmpeg and VVCEasy builds can play stable video of VVC for playing via decode, but libvvenc (external VVC encoder via vvenc) is still available on FFmpeg VVCEasy builds. I'll release soon later...
|
||||
15/02/2024: Updated FFmpeg and vvdec. Set libopus from stable to nightly latest version for improve with Windows & Linux.
|
||||
27/01/2024: Updated FFmpeg, vvenc, vvdec and others. Added libbs2b, libcdio and libmodplug features to Windows and Linux for DSP, Audio CD and MOD.
|
||||
26/01/2024: Updated FFmpeg & vvdec. Added libxavs & libsnappy features to Windows and Linux for Chinese AVS & Vidvox Hap external video encoders.
|
||||
19/01/2024: Updated FFmpeg, vvenc and vvdec.
|
||||
16/01/2024: Updated FFmpeg and added libspeex & libshine encoder features into FFmpeg VVCEasy builds for Windows & Linux.
|
||||
15/01/2024: Updated FFmpeg, vvenc, vvdec and other libraries. Added AMR-WB & iLBC encoder using libvo_amrwbenc & libilbc to FFmpeg for Windows and Linux (except only for ilBC encoder on Linux build), but for Linux build does not include iLBC encoder for linking failed to FFmpeg reason about PIE.
|
||||
27/12/2023: Updated FFmpeg, vvenc and other libraries.
|
||||
16/12/2023: Updated FFmpeg, vvenc and other libraries.
|
||||
06/12/2023: Updated FFmpeg and other libraries.
|
||||
28/11/2023: Updated FFmpeg and others.
|
||||
22/11/2023: New FFmpeg VVCEasy Linux complete static build using BtbN FFmpeg-Builds script of my forked repository. FFplay is now working and no broken.
|
||||
22/11/2023: New FFmpeg VVCEasy Windows build cross compiled on Linux using BtbN FFmpeg-Builds script of my forked repository.
|
||||
17/11/2023: Enable all filters via additional configuration of GPL 3 and non-free. Updated FFmpeg and others.
|
||||
12/11/2023: New FFmpeg 6.1+ latest VVCEasy build with updated vvenc, vvdec and others. Released new Mac OS x86_64 build.
|
||||
10/10/2023: Updated FFmpeg features with vvenc and vvdec on Windows build.
|
||||
21/09/2023: Added zimg and soxr features build configuration on Windows FFmpeg.
|
||||
20/09/2023: Update vvenc & libraries on FFmpeg.
|
||||
16/09/2023: Update libraries.
|
||||
11/08/2023: Update vvdec.
|
||||
07/08/2023: Added Ittiam Systems MPEG-H 3D Audio encoder and others were updated.
|
||||
30/07/2023: Updated external features, including vvenc & vvdec. Added XPSNR filter support.
|
||||
22/06/2023: Updated Linux FFmpeg by FFmpeg commits and other libraries. (still does not work for FFplay static only, others working fine)
|
||||
21/06/2023: Updated vvenc and FFmpeg commits.
|
||||
17/06/2023: Updated of vvenc, vvdec, dav1d, FFmpeg commits and others.
|
||||
01/05/2023: Added missing libvmaf feature in FFmpeg VVCEasy only.
|
||||
19/04/2023: Updated of vvenc, vvdec, FFmpeg commits and others.
|
||||
03/04/2023: New FFmpeg master latest VVCEasy builds with updated vvenc, vvdec and added libvmaf & libjxl. Removed AC4 for compilation/decoder errors for new AC4 audio files.
|
||||
03/02/2023: Updated vvenc library on Windows FFmpeg VVCEasy build.
|
||||
02/02/2023: Updated vvenc library and others on Windows FFmpeg VVCEasy build.
|
||||
29/01/2023: Updated vvenc, vvdec and other libraries on Windows FFmpeg VVCEasy build.
|
||||
10/01/2023: Updated vvenc latest and others.
|
||||
05/01/2023: Update Linux FFmpeg static builds (still does not work for FFplay static only, others working fine)
|
||||
30/12/2022: Improved vvenc codes of FFmpeg VVCEasy, thanks Thomas Siedel from Spin Digital! TIP: Type "ffmpeg_vvceasy -h encoder=libvvenc" for FFmpeg vvenc available. See the new vvenc patch: https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=7922
|
||||
23/12/2022: Update all libraries, fix MP4-ALS mono audio & added libcodec2 to FFmpeg.
|
||||
07/12/2022: Update vvenc, vvdec and others. Fixed Windows N version. (#22)
|
||||
20/10/2022: Add Linux static binaries of FFmpeg, but only FFplay does not work only.
|
||||
11/10/2022: Removed libvorbis + updated SDL2 latest.
|
||||
10/10/2022: Revert from flt to s16 for two decoders of libvorbis & libspeex.
|
||||
10/10/2022: Removed libvmaf (reason: not working), added libvorbis + libspeex improve decode quality.
|
||||
30/09/2022: Improved vmaf (float, built models to FFmpeg) & updated sdl2. Update: Fixed libvmaf models
|
||||
24/09/2022: Improved libvmaf up to date of FFmpeg code + update dav1d & vvenc.
|
||||
07/09/2022: Added Dolby AC4 decoder + updated vvenc/vvdec.
|
||||
01/09/2022: Added libopus with latest version for improve decode quality, libdav1d and libvmaf (optional if they want calculate score by vvc video and original video).
|
||||
29/08/2022: Brought back vvenc.
|
||||
```
|
||||
|
||||
# Mac OS downloaders (Important note)
|
||||
|
||||
Please note, this is not a malware of my compiled build, see the three screenshots to make run FFmpeg tools customized version
|
||||
|
||||
You need to allow the app on your Mac OS for chmod write access & Security & Privacy:
|
||||
|
||||
Step 1: Click cancel button, do not move to bin.
|
||||
|
||||

|
||||
|
||||
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:
|
||||
|
||||
```
|
||||
brew install libxml2 ffmpeg nasm
|
||||
git clone https://github.com/fraunhoferhhi/vvenc
|
||||
git clone https://github.com/fraunhoferhhi/vvdec
|
||||
git clone https://github.com/mstorsjo/fdk-aac
|
||||
cd vvenc && mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
|
||||
sudo cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
cd vvdec && mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
|
||||
sudo cmake --build . --target install -j $nproc
|
||||
cd ../../
|
||||
cd fdk-aac && ./autogen.sh && ./configure
|
||||
make -j
|
||||
sudo make install
|
||||
cd ../
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
cd FFmpeg-VVC
|
||||
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
||||
./configure --enable-libfdk-aac --enable-libvvenc --enable-libvvdec --enable-static --enable-pic --enable-libxml2 --pkg-config-flags="--static" --enable-sdl2
|
||||
make -j
|
||||
```
|
||||
|
||||
# Linux builders (Important for FFplay) (old)
|
||||
|
||||
You can build using [Linux script](libvvdecffmpeg.sh).
|
||||
|
||||
If you want actually play VVC file with FFplay on your local distro, you need to remove command `--extra-ldexeflags="-static"`, otherwise it might give result segmentation fault for FFplay static only.
|
||||
|
||||
If compiling is success and finished, you can install FFmpeg VVC for using the code:
|
||||
|
||||
```
|
||||
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
|
||||
|
||||
VVC programmers of FFmpeg:
|
||||
|
||||
Original author: [@FFmpeg](https://github.com/FFmpeg) Repository: https://github.com/FFmpeg/FFmpeg
|
||||
|
||||
[@lehmann-c](https://github.com/lehmann-c) (Christian Lehmann) Repository: https://github.com/lehmann-c/FFmpeg
|
||||
|
||||
[@tbiat](https://github.com/tbiat) (Thibaud Biatek) Repository: https://github.com/tbiat/FFmpeg
|
||||
|
||||
VVC encoder programmer to FFmpeg: [@IsaMorphic](https://github.com/IsaMorphic) (Isabelle Santin) Repository: https://github.com/IsaMorphic/FFmpeg-VVC
|
||||
|
||||
[@MartinEesmaa](https://github.com/MartinEesmaa) (Martin Eesmaa) Repository: https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
|
||||
[@NuoMi](https://github.com/nuomi2021) of some codes and [Thomas Siedel](https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=8577) of new external VVC encoder & decoder, also native VVC decoder ([ffvvc](https://github.com/ffvvc/FFmpeg)) by NuoMi.
|
||||
|
||||
AC4 decoder programmer to FFmpeg: [@richardpl](https://github.com/richardpl) (Paul B Mahol) Repository: https://github.com/richardpl/FFmpeg/tree/ac4
|
||||
|
||||
AC4 support in mp4 container: [@AUGxhub](https://github.com/AUGxhub) Repository: https://github.com/AUGxhub/FFmpeg/tree/patch-1
|
||||
|
||||
- Martin Eesmaa
|
172
INSTALLVLCPLUGIN/README.md
Normal file
@ -0,0 +1,172 @@
|
||||

|
||||
|
||||
# VLC Media Player (Inter Digital VLC VTM Decoder Plugin installation of Windows and Linux)
|
||||
This can work only for VLC 3.0.9.2 and later version (e.g., 3.0.17.4). VLC 4.0.0-dev or below than version 3 won't work.
|
||||
|
||||
To install Inter Digital VLC VTM Decoder Plugin, you need VLC Media Player latest version installed on your computer and supported 64-bit.
|
||||
|
||||
Step 1: Copy libvtmdec.dll and libvvcdecoder_plugin.dll into your VLC Media Player folder following folder: VLC/plugins/codec
|
||||
|
||||
C:\Program Files\VideoLAN\VLC\plugins\codec
|
||||
|
||||
Step 2: Copy libvvctsdemux_plugin.dll into your VLC Media Player folder following: VLC/plugins/demux
|
||||
|
||||
C:\Program Files\VideoLAN\VLC\plugins\demux
|
||||
|
||||
Step 3: Enjoy and play your h266 file into your VLC Media Player :).
|
||||
|
||||
### For Linux users
|
||||
|
||||
Open terminal and copy code:
|
||||
```
|
||||
sudo cp libvvcdecoder_plugin.so libvtmdec.so /lib/x86_64-linux-gnu/vlc/plugins/codec
|
||||
sudo cp libvctsdemux_plugin.so /lib/x86_64-linux-gnu/vlc/plugins/demux
|
||||
```
|
||||
|
||||
VLC from Snap Store:
|
||||
```
|
||||
sudo cp libvvcdecoder_plugin.so libvtmdec.so /snap/vlc/2344/usr/lib/vlc/plugins/codec
|
||||
sudo cp libvctsdemux_plugin.so /snap/vlc/2344/usr/lib/vlc/plugins/demux
|
||||
```
|
||||
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 Win64 3.0.9.2](https://download.videolan.org/pub/vlc/3.0.9.2/win64/) or [latest version](https://download.videolan.org/pub/vlc) (choose zip or 7z only), VLC source files .tar.xz, [libvtmdec](https://vcgit.hhi.fraunhofer.de/delagrangep/VVCSoftware_VTM/-/tree/VTM-22.2-MT) precompiled shared dll in lib folder + sources, dvbpsi source and VLC source files of the desktop version. You need to modify vlc_threads.h, before compile.
|
||||
|
||||
vlc_threads.h can be found in VLC folder/sdk/include/vlc/plugins. Search `val = poll(fds, nfds, timeout);` and comment the only one file, that's it.
|
||||
|
||||

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

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

|
||||
|
||||
### Linux
|
||||
|
||||
You need CMAKE GUI, build-essentials, VLC SDK (you have to get from Windows build of 7z or zip compressed file that contains `sdk/lib` and `sdk/include` folders), [libvtmdec](https://vcgit.hhi.fraunhofer.de/delagrangep/VVCSoftware_VTM/-/tree/VTM-22.2-MT) sources, dvbpsi source and VLC source files of the desktop version. You need to modify vlc_threads.h, before compile.
|
||||
|
||||
Please double-click downloaded compressed file and decompress VLC Windows SDK build to anywhere folder for example "~/vlc-3.0.9.2" or you can use CLI like 7-Zip `7z x vlc-3.0.9.2-win64.7z -o$HOME`.
|
||||
|
||||
vlc_threads.h can be found in VLC folder/sdk/include/vlc/plugins. Search `val = poll(fds, nfds, timeout);` and comment the only one file, that's it.
|
||||
|
||||

|
||||
|
||||
libvtmdec build:
|
||||
Compiled file could be found in lib folder in libvtmdec.
|
||||
|
||||
```
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
make -j
|
||||
```
|
||||
|
||||
Before build Decoder Plugin, you need to find libvlccore in Linux.
|
||||
|
||||
### Option 1 (recommended):
|
||||
|
||||
To find libvlccore, you can simply install VLC by your package distribution like apt, pacman or Snap.
|
||||
|
||||
Most Linux package version can be found libvlccore:
|
||||
|
||||
```
|
||||
/usr/lib/x86_64-linux-gnu/libvlccore.so.9.0.0
|
||||
```
|
||||
|
||||
On Snap store version, the latest version of VLC can be found, but the numbers are different:
|
||||
|
||||
```
|
||||
/snap/vlc/3777/usr/lib/libvlccore.so.9.0.1
|
||||
```
|
||||
|
||||
If you can't find it, you can find libvlccore on `/` folder.
|
||||
|
||||
```
|
||||
sudo find / -type f -name 'libvlccore.so*'
|
||||
```
|
||||
|
||||
You can pick Linux package or Snap version, if unsure pick Linux package standalone or only that you installed on Linux package or Snap version.
|
||||
|
||||
Once you've found,
|
||||
|
||||
### Option 2 (optional):
|
||||
|
||||
If you don't want to find libvlccore and you don't want to get libvlccore installed on Linux package or Snap package, you can build source code of VLC shipped inside libVLC.
|
||||
|
||||
Instructions can be found there of LibVLC:
|
||||
|
||||
https://wiki.videolan.org/LibVLC#Compiling
|
||||
|
||||
If option one or/and two didn't work, you can create issue to [VLC Forums](https://forum.videolan.org) or/and VVCEasy, so the VLC community or I/we can help you to solve your problem.
|
||||
|
||||
dvbpsi build requires of TS Demuxer Plugin:
|
||||
|
||||
```
|
||||
./bootstrap
|
||||
./configure --enable-release
|
||||
make -j
|
||||
sudo make install
|
||||
```
|
||||
|
||||
Build Decoder Plugin, see screenshot of CMAKE GUI:
|
||||
|
||||

|
||||
|
||||
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
|
||||
|
||||
Copy code following:
|
||||
```
|
||||
copy libvtmdec.dll "%programfiles%\VideoLAN\VLC\plugins\codec"
|
||||
copy libvvcdecoder_plugin.dll "%programfiles%\VideoLAN\VLC\plugins\codec"
|
||||
copy libvvctsdemux_plugin.dll "%programfiles%\VideoLAN\VLC\plugins\demux"
|
||||
```
|
||||
|
||||
Note to VLC 4.0.0-dev users:
|
||||
|
||||
The VVC video file cannot loaded by newest version of VLC 4.0.0-dev, because it is nightly build and it's unstable.
|
||||
|
||||
For more information about VLC 4.0.0-dev see: https://www.theverge.com/2021/2/12/22279750/vlc-4-0-new-user-interface-videolan-media-player-video-music-movie-database-web-player
|
||||
|
||||
I tried to build two DLL files on VLC 4.0.0 SDK, but the compiler failed, so you must use VLC 3.0.9.2 or latest of VLC 3 version branch.
|
||||
|
||||
- Martin Eesmaa
|
BIN
INSTALLVLCPLUGIN/libvctsdemux_plugin.so
Normal file
BIN
INSTALLVLCPLUGIN/libvtmdec.dll
Normal file
BIN
INSTALLVLCPLUGIN/libvtmdec.so
Normal file
BIN
INSTALLVLCPLUGIN/libvvcdecoder_plugin.dll
Normal file
BIN
INSTALLVLCPLUGIN/libvvcdecoder_plugin.so
Normal file
BIN
INSTALLVLCPLUGIN/libvvctsdemux_plugin.dll
Normal file
BIN
INSTALLVLCPLUGIN/vvceasylinuxvlc.png
Normal file
After Width: | Height: | Size: 592 KiB |
BIN
LAVFilters/LAVFilters-0.79.2-x64-VVCEasy.7z
Normal file
43
LAVFilters/README.md
Normal file
@ -0,0 +1,43 @@
|
||||
# LAV Filters for Windows (VVC version)
|
||||
|
||||
LAV Filters is an open source of Windows DirectShow filters with splitter and decoder for FFmpeg.
|
||||
|
||||
For VVC version, it includes external VVC decoder libvvdec and xHE-AAC with LAV Filters and can be played by any DirectShow players, but it requires Windows Vista and later.
|
||||
|
||||
To install LAV Filters VVC version on your computer, you need right click and run as administrator for batch files (.BAT file).
|
||||
|
||||
Original source code: https://github.com/Nevcairiel/LAVFilters
|
||||
|
||||
Changelog:
|
||||
```
|
||||
09/04/2024: Updated LAVFilters with new commits, FFmpeg and others.
|
||||
30/03/2024: Updated LAVFilters with new commits, FFmpeg, vvdec and others, still uses libvvdec library and disabled VVC native decoder.
|
||||
29/01/2024: Updated LAVFilters with new clsid2 commits, FFmpeg, vvdec and others.
|
||||
15/11/2023: Updated LAVFilters, new clsid2 commits from forked repository, FFmpeg, vvdec and others.
|
||||
11/08/2023: Updated vvdec
|
||||
04/08/2023: Updated vvdec and others.
|
||||
04/04/2023: Removed matroska demuxer of FFmpeg configuration to fix some computers having problem to play any Matroska container. Fixes #26.
|
||||
21/03/2023: Full VVC support and libfdk_aac is default after native AAC and AAC Fixed decoder disabled to fix USAC/xHE-AAC playable.
|
||||
```
|
||||
|
||||
## MPC-HC 2.2.0 (VVC version)
|
||||
|
||||
MPC-HC 2.2.0 comes with LAVFilters VVC installed and it is portable.
|
||||
|
||||
You can download via cloud link: https://mega.nz/file/X512UBwA#5HQ6Tj2ZfsNWimMitnR73SR3PcDAKCj4fdGIxELHu0I
|
||||
|
||||
After downloading, extract compressed file via [7-Zip](https://7-zip.org) and run `mpc-hc64.exe`. This program doesn't require administrator privileges.
|
||||
|
||||
Original forked source code: https://github.com/clsid2/mpc-hc
|
||||
|
||||
Changelog:
|
||||
```
|
||||
09/04/2024: Updated MPC-HC, LAVFilters with new commits, FFmpeg and others.
|
||||
30/03/2024: Updated MPC-HC, LAVFilters with new commits, FFmpeg, MediaInfo, yt-dlp, vvdec and others, still uses libvvdec library and disabled VVC native decoder.
|
||||
29/01/2024: Updated MPC-HC, LAVFilters with new clsid2 commits, FFmpeg, vvdec, Mediainfo, yt-dlp and others.
|
||||
15/11/2023: Updated MPC-HC, LAVFilters, new clsid2 commits from forked repository, FFmpeg, vvdec and others. Added yt-dlp support.
|
||||
11/08/2023: Updated vvdec
|
||||
05/08/2023: Uploaded MPC-HC 2.0.0 portable x64 VVCEasy version with LAVFilters64 installed.
|
||||
```
|
||||
|
||||
- Martin Eesmaa
|
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 Martin Eesmaa
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
BIN
LinuxVVC/LinuxVVC.7z
Normal file
21
LinuxVVC/LinuxVVC.sha256
Normal file
@ -0,0 +1,21 @@
|
||||
a420c1ac51177e52b5d6fc5ce8f295c12d4c92a578f3678027d944337ca6070e arm64/vvdecapp
|
||||
1934aad8f16f54f9f97198617bf61d8e240ad85d23550f384e7c6919c0ced867 arm64/vvencapp
|
||||
881864fd59cad0bd52a474e9f95b5e2cd274623ba09f51731b5e9e90b95ba34d arm64/vvencFFapp
|
||||
06eff05455824e2fa038dbc5cd4c0b7d54ae9672ebe41a4052bf881cd29a88ef arm64/vvencinterfacetest
|
||||
90e28323e4787636709bdf7fbe4d6f2449b8699a9b5c6cc29040f6d51502a383 arm64/vvenclibtest
|
||||
5bc52459de5c282e5c118c3d2e0dc3f43033af107f15d2b1e4f8e5fd5ca5546d armv7/vvdecapp
|
||||
3f7ec46b198d026d7ae84a0df5de236311da6aa933276019c2084998f7051922 armv7/vvencapp
|
||||
b9c53ca98d81e1a713c5a6b83d14cdd568c0a2902121fa261d311eb7ee4d15f2 armv7/vvencFFapp
|
||||
b1df774f659ef9f097b588ffdcbf6a6fceac9a13f15031f6cd5f248ae79485b2 armv7/vvencinterfacetest
|
||||
b7e58496a48449707da596f0bd6a8c08c75475ad11753586c8f0cc05ad64af25 armv7/vvenclibtest
|
||||
00ee3d9e087f80cd88a776608000b068ab4945984d9a55acd45e6b3dd95fe527 LinuxVVC.7z
|
||||
4024697d2b94b18ff09595526aa7d20c5d5f123d1c64b758a2ddd7e340bf17ce x64/vvdecapp
|
||||
185c093defad1f85857f90400bd75cf0b5a127eb2f2d2c8504490aa550cfb3fd x64/vvencapp
|
||||
7f0079d853fbca6d6b81b1bbe71157c3e9b3dda4f07f30d757b8943278dc6a9f x64/vvencFFapp
|
||||
1874c8a8def14b7a5c7b2b7e4013ceb9853aa37d4533687311486943af40f7f3 x64/vvencinterfacetest
|
||||
c49f06adcd55e40dda9662e35d0db30648db500205fff3125eb666b84dcdbc52 x64/vvenclibtest
|
||||
5bc52459de5c282e5c118c3d2e0dc3f43033af107f15d2b1e4f8e5fd5ca5546d x86/vvdecapp
|
||||
3bf31f047d900602729936862dd38baebbe6c7317bf6cb47f8ebf9524d7390e1 x86/vvencapp
|
||||
73314fc525d7e0cbf1a3e9b4cbd14d6cc890fc188707ce176f8f7ac332da4e09 x86/vvencFFapp
|
||||
45fdca2580d9d769aa42b5e5063a381bd7e081515a108759794b229722b88e92 x86/vvencinterfacetest
|
||||
b8ecf444121ecee6c200cdbe0fe01e5014bc7bc72f58e376ae207dfdbd3a1ea0 x86/vvenclibtest
|
190
MPV.md
Normal file
@ -0,0 +1,190 @@
|
||||

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

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
# Download MPV Windows/Linux/Android Player (libvvdec + xHE-AAC plugin)
|
||||
|
||||
[Windows 7 and later x64](https://mega.nz/file/v5sy0arD#673X-XfbrQYqDViVzAe8YBPQblTXdxeYqxiRh5oip4A)
|
||||
|
||||
[Windows MPV.NET VVCEasy version x64](https://mega.nz/file/D98jkBrY#_8A8wNkiH5dOxQeVCK4zi9rdF2gx2X-h0sYX7NH23A4)
|
||||
|
||||
[Windows MPVLIB VVCEasy version x64](https://mega.nz/file/K912BbIB#q-7al1uTgejrA9m4jN6ZtYOpJER7yOkxB1fIIHw2zqY)
|
||||
|
||||
[Windows 7 and later x86_64-v3 native](https://mega.nz/file/u1l2zTYA#HmiZtkd46EMd9pqcTnhWGC-M3nCv3Y__jLN9T7jLc-c)
|
||||
|
||||
[Windows MPVLIB VVCEasy version x86_64-v3 native](https://mega.nz/file/24UggbYD#CsTqPGLa4nEfs_9UheV0auISenDXqFdu465PZfRqozY)
|
||||
|
||||
[Linux MPV VVCEasy version x64](https://mega.nz/file/P1cFSLBA#1puDExJEG-sQOvv-BzLpUzRhcQp78dkoB8lma1k6AcQ)
|
||||
|
||||
[Arch Linux MPV VVCEasy version x64](https://mega.nz/file/2pFDTSzT#GwoVQ0u6RStUwjk3rc5LkIzLQgmSDMhgV1Xk8WMeQ-w)
|
||||
|
||||
[Android API 29 .APK Debug (Recommended)](https://mega.nz/file/r4cExARB#7-g9_vBlY2L0c59dM7xJ3SWP2Lm8D4rbQti4NMRVnsI)
|
||||
|
||||
[Android API 29 .APK Release unsigned](https://mega.nz/file/j81yVKQJ#3tbBL2wHSlW-gvH1eKNPtwOoiqMwIoEx8dXijymb7iM)
|
||||
|
||||
# Official MPV VVC native decoder implementation
|
||||
|
||||
It started at January 4 2024 when the native VVC decoder is released on FFmpeg, but it was experimental without IBC (Intra Block Copy).
|
||||
|
||||
On February 24 2024, the finally moment about Intra Block Copy has been merged into FFmpeg's official repository, which means native VVC decoder on FFmpeg is completed and it's stable.
|
||||
|
||||
His hard work is very good and made by [nuomi2021](https://github.com/nuomi2021) to make native VVC decoder release to FFmpeg.
|
||||
|
||||
Now you can use official MPV binaries by shinchiro or my custom build of MPV VVCEasy build to play or decode VVC in MPV. Also FFmpeg too with Btbn or Gyan or VVCEasy builds. :)
|
||||
|
||||
Update of 21.03.2024: On March 14th 2024, the official FFmpeg native VVC decoder set to experimental for some little bugs.
|
||||
|
||||
See the FFmpeg commit: https://github.com/FFmpeg/FFmpeg/commit/110d8549d575aae6b2f627cd63e2eb7082ab8926
|
||||
|
||||
Switched native VVC decoder back to external VVC decoder of libvvdec after native VVC decoder is experimental.
|
||||
|
||||
### Changelog
|
||||
|
||||
Please check the changelog before you download the new version.
|
||||
|
||||
```
|
||||
09/04/2024 - Removed unnecessary shared object files of libgbm, libm, libc and libgcc_s on Linux and Arch Linux AppImages, but now standard Linux AppImage works for all Linux distributions without segmentation fault and Arch Linux AppImage works for Arch based only.
|
||||
08/04/2024 - Updated FFmpeg for up to 7.0 with nightly latest with MPV VVCEasy Linux latest version and others.
|
||||
07/04/2024 - Fixed the bug of Android MPV VVCEasy builds by allowing & showing permission of Files and media since Android 13 to access all full of files, also older than Android 13 is still fine.
|
||||
07/04/2024 - Updated Android MPV VVCEasy latest build with FFmpeg for up to 7.0 with nightly, vvdec and others. Removed libxml2 for configuration and compilation error for using latest version and NDK, so next time or some times I'll put libxml2 back when problem is solved. Downgraded from mbedtls v3 to v2 to make sure include "mbedtls/certs.h" is found during FFmpeg compiling.
|
||||
07/04/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg for up to 7.0 with nightly, MediaInfo and others.
|
||||
04/04/2024 - Updated FFmpeg latest with MPV VVCEasy Linux latest version, vvdec and others.
|
||||
22/03/2024 - Added Windows MPV/MPV.LIB VVCEasy native x64-v3 build with use LLVM, Clang, mimalloc and LTO on, requested by Andarwinux at issue #42 improved.
|
||||
21/03/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg, vvdec and others. Official FFmpeg commit made native VVC decoder set to experimental, now using libvvdec to decode VVC video. Fixed issue #42.
|
||||
06/03/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg, vvdec and others. Switched from external VVC decoder to native VVC decoder for reduce CPU usage.
|
||||
01/03/2024 - Just small added words on instructions.
|
||||
29/02/2024 - Note about official Windows MPV (shinchiro) and VVCEasy builds can play stable video of VVC for playing via decode. I'll release soon later...
|
||||
20/01/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg, vvdec and others. About vvdec update, this lowers CPU usage than previous build.
|
||||
05/01/2024 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg and others.
|
||||
28/12/2023 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build with FFmpeg, vvdec, Mediainfo and others.
|
||||
02/12/2023 - Updated FFmpeg latest with MPV VVCEasy Linux latest version and others.
|
||||
01/12/2023 - Updated Android MPV VVCEasy latest build
|
||||
29/11/2023 - Fixed MPV Android VVCEasy build for file picker legacy issue
|
||||
29/11/2023 - Updated Android MPV VVCEasy build with latest FFmpeg, vvdec and others.
|
||||
18/11/2023 - Updated FFmpeg with MPV/MPV.NET/MPV LIB VVCEasy Windows build, vvdec and others.
|
||||
24/10/2023 - Updated Android MPV VVCEasy build with vvdec and others.
|
||||
23/10/2023 - Removed libmujs for error shared libraries loading reason on Arch Linux.
|
||||
23/10/2023 - Added X11 support to Arch Linux AppImage of MPV VVCEasy build.
|
||||
23/10/2023 - Added Arch Linux support to avoid segmentation fault reason, just another new AppImage.
|
||||
11/10/2023 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build, vvdec, Mediainfo and others.
|
||||
20/09/2023 - Update vvenc & libraries on FFmpeg.
|
||||
16/09/2023 - Update MPV Linux VVCEasy build with libraries.
|
||||
14/08/2023 - Update Android MPV VVCEasy build with vvdec updated.
|
||||
11/08/2023 - Update Linux MPV VVCEasy build and vvdec.
|
||||
11/08/2023 - Updated Windows MPV/MPV.NET/MPV LIB VVCEasy build, vvdec, Mediainfo and others.
|
||||
03/08/2023 - Initial release of MPV Linux version AppImage.
|
||||
05/07/2023 - Updated MPV/MPV.NET VVCEasy build.
|
||||
18/06/2023 - Improved codes and new commits of Android MPV VVCEasy custom build standalone.
|
||||
17/06/2023 - Cross compiled of Windows using Arch Linux for improved libraries and updated FFmpeg, MPV & MPV.NET VVCEasy build. New libmpv build.
|
||||
04/04/2023 - New Android MPV VVCEasy build with new FFmpeg VVCEasy libraries for updated vvenc and vvdec. For gpu-next build, still experimental.
|
||||
03/04/2023 - New MPV and MPV.NET latest VVCEasy build with new FFmpeg VVCEasy libraries for updated vvenc, vvdec and added libjxl, shaderc, libplacebo and vulkan to make gpu-next available.
|
||||
29/03/2023 - Update MPV Android package and icons. Tip: You can have two builds between official and VVCEasy build.
|
||||
19/02/2023 - Add Android TV support of APK builds & update Android MPV VVCEasy builds.
|
||||
15/02/2023 - Added Android MPV VVCEasy build with gpu-next support.
|
||||
14/02/2023 - Update Android MPV VVCEasy build latest, but vulkan support is removed for some reason.
|
||||
29/01/2023 - Updated vvdec code, mpv.net and others on Windows MPV VVCEasy build.
|
||||
11/01/2023 - Updated vvdec, added Vulkan with shaderc on MPV Android VVCEasy build.
|
||||
11/10/2022 - Removed libvorbis + updated SDL2 & mpv.net latest.
|
||||
10/10/2022 - libplacebo removed (does not work Dolby Vision with my custom build) + update mpv, added zimg, & two improved decoders of libspeex & libvorbis.
|
||||
11/09/2022 - Complete static adding LDFLAGS="-static" to fix new Intel CPU processor users for mpv.net.
|
||||
11/09/2022 - Added libplacebo + ffnvcodec.
|
||||
11/09/2022 - Added optional features: SDL2 gamepad, dvdnav & libbluray.
|
||||
10/09/2022 - Initial release of MPV.NET.
|
||||
01/09/2022 - New complete static of Windows MPV VVCEasy build.
|
||||
```
|
||||
|
||||
# Limitations & Tips
|
||||
|
||||
MPV Android libvvdec app requires your system type of ARM64 (aarch64), x86 (i686), ARMv7 (armeabi-v7a) and x86_64 to run on Android, Windows requires to run x64 or Linux requires to run x64.
|
||||
|
||||
Windows/Linux/Android MPV Player doesn't work seek duration of VVC decoded file only, but only mp4 video container mixed with VVC video codec is only seek supported, including audio & subtitle too.
|
||||
|
||||
Some Android users for 10-bit pixel format or/and tier high might not show video in mp4 container with VVC video codec only.
|
||||
|
||||
Solution: Please download latest mp4box nightly version and re-mux from .266 to .mp4 file again.
|
||||
|
||||
AppImage needs required fuse installed of your Linux distribution on your computer.
|
||||
|
||||
Some Linux distributions may not work for AppImage, which may result segmentation fault. Builded & tested on Ubuntu 22.04.2.
|
||||
|
||||
About Linux MPV VVCEasy AppImage problem before solution: The problem was that I put four shared object files of libgbm, libm, libc and libgcc_s on both AppImages, which makes some Linux distributions problem
|
||||
|
||||
Solution: Please update latest version of Linux or Arch Linux MPV VVCEasy AppImage, because I removed four shared object files of libgbm, libm, libc and libgcc_s to make all Linux distributions work on standalone Linux AppImage, also includes Arch Linux AppImage can work for only all Arch based operating systems.
|
||||
|
||||
If you're using Arch Linux or Arch based, please download the Arch Linux AppImage version. You can still use standalone Linux AppImage on Arch Linux or Arch based systems.
|
||||
|
||||
### Tips
|
||||
|
||||
Make sure to allow apps from unknown sources. Link: [Wikihow](https://www.wikihow.com/Allow-Apps-from-Unknown-Sources-on-Android)
|
||||
|
||||
If Google warns you that Android MPV (libvvdec plugin) app claimed is malicious by Play Protect, press "Install anyway" on your phone.
|
||||
|
||||
On Windows, there is available MPV.NET custom build on this download. You can have look for source code: https://github.com/stax76/mpv.net
|
||||
|
||||
# SHA256 SUMS
|
||||
```
|
||||
ee5d8b2ebdda7e9bacfe4a9dd2ce199e96f2a16ac56a8840190a5c66d86e2471 MPV-VVCEasy-API29debug.apk
|
||||
cc4ba84d91b91edda102bc0086fbfbfdee1a8b1dd9196bc76edd00101fdaff10 MPV-VVCEasy-API29release-unsigned.apk
|
||||
0543c9819db08d777386a616ba7317ada11109ababee18a7b7ea526de7f4c69d MPV-VVCEasy-Windows-x64.7z
|
||||
2aca485d75d4a300cb5ef50230f754f3737a1557565b058298061aa87a416b3c MPV.NET-VVCEasy-Windows-x64.7z
|
||||
fb320719d3b524cb79cfdfc079a2a7c39136df5a8fbdd747006ca747cfc6a02d MPVLIB-VVCEasy-Windows-x64.7z
|
||||
8d486291a371c8663e7ddd1d9845cf54f81c316a9c795333a5b490f7621a6cb3 MPV-VVCEasy-Windows-NativeX64.7z
|
||||
003dbdf1cd6639ff906c2c17dde69a16c1df7fa565cf310ba014ea24b5b330a5 MPVLIB-VVCEasy-Windows-NativeX64.7z
|
||||
2ec70f79011e341c92f06485c752e56311107e575d9d3fda9866a6fdba141f4e MPV-VVCEasy-Linux-x64.7z
|
||||
ab23b1928069bd3584297dae1d90a95fe2910f91936766ddfa5bdafd53c8a300 MPV-VVCEasy-ArchLinux-x64.7z
|
||||
```
|
||||
|
||||
# Build MPV Android with VVC and xHE-AAC:
|
||||
|
||||
If you want to build MPV Android, you need to update & upgrade first, then install packages:
|
||||
```
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install build-essential cmake nasm libsimde-dev python3 git
|
||||
```
|
||||
|
||||
Next download Temurin from Adoptium and follow the install instructions:
|
||||
|
||||
https://adoptium.net/installation/linux
|
||||
|
||||
After you installed Temurin from Adoptium, you can verify that is installed on your system:
|
||||
```
|
||||
java --version
|
||||
```
|
||||
|
||||
After installing the packages on Linux, clone mpv-android-vvc repository:
|
||||
```
|
||||
cd
|
||||
git clone https://github.com/MartinEesmaa/mpv-android-vvc
|
||||
cd mpv-android-vvc/buildscripts
|
||||
```
|
||||
|
||||
Give shell scripts permission in buildscripts folder:
|
||||
```
|
||||
chmod +x scripts/*.sh
|
||||
```
|
||||
|
||||
Before you build, you need to search `#ifdef __ANDROID__` and delete the lines by end `#endif`:
|
||||
|
||||
```
|
||||
nano deps/fdkaac/libSBRdec/src/lpp_tran.cpp
|
||||
```
|
||||
|
||||
Save the file in nano editor, when you finished removing `#ifdef __ANDROID` lines.
|
||||
|
||||
**TIP: You can edit script of vvdec.sh on your own choice.**
|
||||
|
||||
Continue follow instructions to build your own MPV build:
|
||||
|
||||
https://github.com/MartinEesmaa/mpv-android-vvc/blob/master/buildscripts/README.md
|
||||
|
||||
- Martin Eesmaa
|
BIN
MacOSVVC/MacOSVVC.7z
Normal file
11
MacOSVVC/MacOSVVC.sha256
Normal file
@ -0,0 +1,11 @@
|
||||
1d8ca41eae7efa10965432100c501edec126c437a53553d45c472cdfcfaa22cd arm64/vvdecapp
|
||||
ce25033eb1e6f9c0f139e0d44e148018661d276232135092b8af14a2fc12461a arm64/vvencapp
|
||||
28a955a607738eb1004900ac80627fa6c8511dbf8a61df37a863f88cd6c6c009 arm64/vvencFFapp
|
||||
7a651df54c2d68c26f91fe3c231693e4638c167af5d1b6b423e90c28c34cc9b4 arm64/vvencinterfacetest
|
||||
747c0100df6b9ac8b1fadd85c8902b3c40e42235d7593019ea4acf6af3de80aa arm64/vvenclibtest
|
||||
dee532c8515a8618d737342b3943ad28ac3826d1601ea1872f70de6db2007751 intel_x64/vvdecapp
|
||||
5cfe37271b70a981af82a538c5ba271f41e5449c2e938cfd598b6d3ea24a9ae7 intel_x64/vvencapp
|
||||
eb08377e040de5246bc0cf42d70247f88da727e78cc20c802cb905453d4f0754 intel_x64/vvencFFapp
|
||||
dd7811fc878ea9195b2057d339f3e05eb9aab14098ca698b632b779a29c4fd1e intel_x64/vvencinterfacetest
|
||||
d5323f8e9c77e5b0a1c5c703b894453de97cfd02fc2eda6fb1d97b9671989be5 intel_x64/vvenclibtest
|
||||
646f6e3e517be5a39c3e2290d81c5e208d39dda02b7e2cb56863edf058beeb30 MacOSVVC.7z
|
281
Program.cs
Normal file
@ -0,0 +1,281 @@
|
||||
using System.Net;
|
||||
|
||||
namespace VVCEasy
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
public static void Main()
|
||||
{
|
||||
string version = "v2.5.0";
|
||||
string codeversion = "Pretty big greatest ever!";
|
||||
string title = "Martin Eesmaa / VVCEasy";
|
||||
bool exit = false;
|
||||
Console.Title = title;
|
||||
Console.WriteLine("Martin Eesmaa / VVCEasy\nWelcome to VVCEasy. (.NET Console Release Version, " + version + ")\nVersion codename: " + codeversion);
|
||||
Console.ReadLine();
|
||||
do
|
||||
{
|
||||
Console.Clear();
|
||||
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 = 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();
|
||||
|
||||
if (input == "1")
|
||||
{
|
||||
encodestart:
|
||||
Console.Clear();
|
||||
Console.Title = "Encode to VVC";
|
||||
Console.WriteLine("Welcome to VVC encoder.\nWhat do you like encode to VVC?\nBefore we move to settings quality, is your video lossy or lossless?\n1. Lossy (example YouTube videos, Web videos, lossy compressed videos, and other webs)\n2. Lossless (example XIPH Media, Camera uncompressed (MOV/MP4/AVI), Apple ProRes and others uncompressed files)\n3. Go back to menu");
|
||||
|
||||
string input2 = Console.ReadLine();
|
||||
if (input2 == "1")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Lossy settings with Lossy compressed (VVC Encoder)";
|
||||
Console.WriteLine("Do you have YUV?\nIf you have YUV already, move your YUV file into C:/Program Files/VVCEasy/\nIf you do not have YUV, your instruction will go to next...\n1. I have YUV already (I am ready)\n2. No, I am not ready yet (go back to previous)\nIf you don't have Y4M already... you need transcode file from your lossy video file to YUV.\nExample: ffmpeg -i yourfile.mp4 -strict 1 yourfinal.yuv\n");
|
||||
|
||||
string input3 = Console.ReadLine();
|
||||
|
||||
if (input3 == "1")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "VVC ENCODER (YUV LOSSY)";
|
||||
Console.WriteLine("Before we start encode from your YUV file to VVC file, I'm afraid I cannot do automatically for you.\nYou have to manually encode to VVC, the 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")
|
||||
{
|
||||
goto encodestart;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (input == "2")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Decode from VVC to YUV/Y4M";
|
||||
Console.WriteLine("Do you want to transcode back from VVC to YUV or Y4M? Which did you choose settings?\nChoosing settings will transcode back.\nYou need copy from your VVC file to C:/Program Files/VVCEasy/WindowsVVC/.\nWindows Explorer will open automatically.\nAfter copying your VVC file into VVCEasy folder, you need rename to VVC.vvc.\nIt will transcode from your VVC file to YUV/Y4M.\nAfter transcoding, your transcoded file should be: C:/Program Files/VVCEasy/transcodedback\nNote, if you are using portable, like you git cloned VVCEasy or downloaded source files, go to your Downloads folder and select VVCEasy.\nPortable won't work, you need move from your Downloads folder/VVCEasy into Program Files/VVCEasy.\n1. YUV (lossy video VVC)\n2. Y4M (lossless video VVC)");
|
||||
|
||||
string decodestart1 = Console.ReadLine();
|
||||
|
||||
if (decodestart1 == "1")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "STARTING TRANSCODING BACK FROM VVC TO YUV...";
|
||||
Console.Beep();
|
||||
Console.WriteLine("Sorry, this is currently maintenance of C#");
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (decodestart1 == "2")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "STARTING TRANSCODING BACK FROM VVC TO Y4M...";
|
||||
Console.Beep();
|
||||
Console.WriteLine("Sorry, this is currently maintenance of C#");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "3")
|
||||
{
|
||||
helpingvvc:
|
||||
Console.Clear();
|
||||
Console.WriteLine("Welcome to VVCEasy help instructions!\nHere is tutorial about... How to use VVCEasy?");
|
||||
Console.ReadLine();
|
||||
Console.WriteLine("Step 1: Run on VVCEasy.bat. When you see the screen of Welcome to VVCEasy. You can press any key continue to main menu.\nStep 2: Here are the list of main menus, that you need type any number will go to direction like (goto) command.\nStep 3: Follow the command instructions and that is easy.");
|
||||
Console.ReadLine();
|
||||
Console.WriteLine("If you have any problems that you do not understand of VVCEasy. Please contact to Martin Eesmaa by creating issues for questions or/and problems.\nDo you want to start over help instructions? If yes, then it will go back from beginning. If No, going to back menu. Y/N?");
|
||||
|
||||
string helper = Console.ReadLine();
|
||||
|
||||
if (helper == "Y")
|
||||
{
|
||||
goto helpingvvc;
|
||||
}
|
||||
}
|
||||
else if (input == "4")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Have a wonderful day!";
|
||||
Console.WriteLine("Have a wonderful day! Thank you for using VVCEasy. :)");
|
||||
Console.WriteLine(" _ _ _ \n | | | | | | \n | |_| |__ __ _ _ __ | | ___ _ ___ _ _ \n | __| '_ / / _` | '_ /| |/ / | | |/ _ /| | | |\n | |_| | | | (_| | | | | <| |_| | (_) | |_| |\n /__|_| |_|/__,_|_| |_|_|/_\\__, |/___/ /__,_|\n __/ | \n |___/\n\n\n __ ____ _______ ______ \n / / / // / / / ____| ____| \n / // / / // /| | | __| / _` / __| | | |\n / / / / | |____| |___| (_| /__ / |_| |\n // // /_____|______/__,_|___//__, |\n __/ |\n |___/ \n\n\n __ __ _ _ ______ \n | // | | | (_) | ____| \n | / / | __ _ _ __| |_ _ _ __ | |__ ___ ___ _ __ ___ __ _ __ _ \n | |//| |/ _` | '__| __| | '_ / | __| / _ // __| '_ ` _ / / _` |/ _` |\n | | | | (_| | | | |_| | | | | | |___| __//__ / | | | | | (_| | (_| |\n |_| |_|/__,_|_| /__|_|_| |_| |______/___||___/_| |_| |_|/__,_|/__,_|\nCopyright 2021-2022 Martin Eesmaa\n\nExiting program...");
|
||||
Thread.Sleep(5000);
|
||||
exit = true;
|
||||
}
|
||||
else if (input == "5")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "INSTALL/TEST PATH ENVIRONMENT";
|
||||
Console.WriteLine("Martin Eesmaa is testing your paths, that you installed programs in PATH. Not sure, what is path?\nYou can go here for link: https://stackoverflow.com/questions/4910721/python-on-cmd-path\nAlso you can also search What is PATH in Windows? in DuckDuckGo or SearX.\nAre you ready to test? (Y/N) or type I to install path environment.");
|
||||
|
||||
string readytestbefore = Console.ReadLine();
|
||||
|
||||
if (readytestbefore == "Y")
|
||||
{
|
||||
Console.Title = "Testing time...";
|
||||
Console.WriteLine("Sorry, it's malfunction mode in C#...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (readytestbefore == "I")
|
||||
{
|
||||
Console.WriteLine("Installer path environment will be only for 7-Zip.\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();
|
||||
|
||||
if (installpath1 == "Y")
|
||||
{
|
||||
Console.Title = "INSTALLING 7-ZIP on your path environments...";
|
||||
Console.WriteLine("Sorry, it's malfunction mode in C#...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (input == "6")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "FFmpeg VVDec support";
|
||||
Console.WriteLine("Hello, would you like to download FFmpeg VVDec support? Y/N?");
|
||||
|
||||
string vlcinstall = Console.ReadLine();
|
||||
|
||||
if (vlcinstall == "Y")
|
||||
{
|
||||
Console.WriteLine("Your 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();
|
||||
}
|
||||
}
|
||||
else if (input == "7")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "ANACONDA";
|
||||
Console.WriteLine("Welcome to Anaconda Quick Install. This will only one task for ffmpeg. Would you like to install? Y/N?");
|
||||
|
||||
string anacondaman = Console.ReadLine();
|
||||
|
||||
if (anacondaman == "Y")
|
||||
{
|
||||
Console.WriteLine("SUCCESS, going to back menu...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "8")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "VVdec Web Player.";
|
||||
Console.WriteLine("By installing, you will have to agree to download VVDec Web Player from Fraunhoferhhi GitHub.\nSee the code of VVDEC Web Player: https://github.com/fraunhoferhhi/vvdecWebPlayer\nWhen you agree to install, it will clone of VVDec Web Player repository using git. After git, we will copy from VVDECWEBINSTALL files into vvdecWebPlayer/bin folder.\nAfter all of that, we will run Python to start web server of your localhost port 8000.\nWould you like to install of VVDEC Web Player?");
|
||||
|
||||
string okletsdoit = Console.ReadLine();
|
||||
|
||||
if (okletsdoit == "Y")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "INSTALLING VVDEC WEB PLAYER...";
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.WriteLine("Sorry, the command is not ready yet...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "9")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "WindowsVVC.7z (decompressing)";
|
||||
Console.WriteLine("Decompressing...\nSorry, the command is not ready yet...");
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (input == "10")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Install vvDecPlayer from BitMovin";
|
||||
Console.WriteLine("Would you like to install?\nY/N?\n");
|
||||
|
||||
string installbitmovin = Console.ReadLine();
|
||||
|
||||
if (installbitmovin == "Y")
|
||||
{
|
||||
bitmovingotoinstall:
|
||||
Console.Title = "Installing vvDecPlayer from BitMovin...";
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin on your computer...\nWhich operating system are you using?\nWindows, Mac or Linux?\nType W for Windows\nType M for Mac\nType L for Linux");
|
||||
|
||||
string installbitmovin1 = Console.ReadLine();
|
||||
|
||||
if (installbitmovin1 == "W")
|
||||
{
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Windows...\nSorry, the C# console is not ready yet...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (installbitmovin1 == "M")
|
||||
{
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Mac OS...\nSorry, the C# console is not ready yet...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (installbitmovin1 == "L")
|
||||
{
|
||||
Console.WriteLine("Installing vvDecPlayer from BitMovin for Linux...\nSorry, the C# console is not ready yet...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
else if (installbitmovin1 == "Back")
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("You typed wrong input command, follow the commands instructions... type Back to go back menu...");
|
||||
goto bitmovingotoinstall;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (input == "11")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "VLC VTM Plugins Install (Windows & Linux)";
|
||||
Console.WriteLine("Welcome to VLC Media Player of VTM Plugins Installation.\nYou need to run Windows version of Windows Vista / Windows Server 2008 to play VVC files.\nWindows XP can't load VTM plugins, but other plugins work.\nSystem type only = x64\nLinux is now available, see Linux installation at: https://github.com/MartinEesmaa/VVCEasy/tree/master/INSTALLVLCPLUGIN#for-linux-users\nCurrent version = 3.0.17.4\nWould you like to install VTM plugins to your VLC Media Player? Y/N?");
|
||||
|
||||
string vtmvlcinstallnow1 = Console.ReadLine();
|
||||
|
||||
if (vtmvlcinstallnow1 == "Y")
|
||||
{
|
||||
Console.Title = "Installing of VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)";
|
||||
Console.WriteLine("Installing of VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)\nSorry C# is malfunction mode...");
|
||||
|
||||
using (WebClient web1 = new())
|
||||
web1.DownloadFile("", "");
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
else if (input == "12")
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Title = "Android MPV Player (OpenVVC support)";
|
||||
Console.WriteLine("See information MPV.md or online Github: https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md\nPress enter to go back menu.\n");
|
||||
Console.ReadLine();
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
@ -1 +0,0 @@
|
||||
sudo apt install ffmpeg -y
|
538
README.md
@ -1,57 +1,238 @@
|
||||
# VVCEasy (Windows (Full), Mac and Linux (partial)
|
||||
VVCEasy is that you don't have to compile or/and coding to encode VVC (known as Versatile Video Codec). Simple. Easy. Encode. Decode
|
||||

|
||||

|
||||

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

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
VVCEasy comes to one-easy of ffmpeg, vvenc, vvdec and YUView.
|
||||
# VVCEasy (Windows, 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.
|
||||
|
||||
Installation: Go to releases and download latest version.
|
||||
VVCEasy comes to one-easy command of FFmpeg, VVC Tools, VLC o266player, VVDEC Web Player, Bitmovin VVDec Player, libvvdec and more.
|
||||
|
||||
VVCEasy is not yet finished. I'm trying to work with codes. I'm not good coding programming, just simple coding.
|
||||
Sorry to say that. I will give update, once I release news.
|
||||
Installation: Go to the releases and download latest version.
|
||||
|
||||
Windows source run: RUNVVCEASY.bat
|
||||
Windows source run (Batch-file): VVCEasy.bat
|
||||
|
||||
Note to Mac and Linux of o266player VLC: Sorry Mac and Linux users :(, on macOS 10.15.6, I tried build, but it failed, you can have a look for Stack Overflow: https://bit.ly/3GTtNTJ
|
||||
On Linux, it won't support of VLC (o266player build).
|
||||
If you want to run VLC (o266player version), you have to run Windows only for virtual machine or your real computer.
|
||||
Windows/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.
|
||||
|
||||
# Compatability Windows Operating System (VLC Media Player, o266player build version)
|
||||
Matrix chat: https://matrix.to/#/#vvceasy:matrix.org
|
||||
|
||||
Windows Normal O.S. | x64 | x86 |
|
||||
------------- | ------------- | -------------
|
||||
Windows 7 SP1 | :white_check_mark: | ?
|
||||
Windows 8 | :white_check_mark: | ?
|
||||
Windows 8.1 | :white_check_mark: | ?
|
||||
Windows 10 | :white_check_mark: | ?
|
||||
Windows 11 | :white_check_mark: | ?
|
||||
Revolt: https://app.revolt.chat/invite/0Y10qHzP
|
||||
|
||||
Windows Server O.S. | x64 | x86 |
|
||||
------------- | ------------- | -------------
|
||||
Windows Server 2012 | :white_check_mark: | ?
|
||||
Windows Server 2016 | :white_check_mark: | ?
|
||||
Windows Server 2019 | :white_check_mark: | ?
|
||||
Windows Server 2022 | :white_check_mark: | ?
|
||||
Discord: https://discord.gg/t54cADTbWW
|
||||
|
||||
If any operating system is not listed, like Windows XP, this cannot be run on Windows Vista / Windows Server 2008 or older to play VVC of VLC custom build. I'll make sure update to VLC 3.0.16 possible, including VVC dll.
|
||||
Reddit's community: https://reddit.com/r/VVCEasy
|
||||
|
||||
Lemmy's community of VVC (lemmy.world & lemmy.ml): https://lemmy.world/c/vvc
|
||||
|
||||
https://lemmy.ml/c/vvc
|
||||
|
||||
Lemmy's community of VVCEasy (lemmy.world & lemmy.ml): https://lemmy.world/c/vvceasy
|
||||
|
||||
https://lemmy.ml/c/vvceasy
|
||||
|
||||
*Note: Please note for my first language is Estonian and not native with English language. Some my English words might be errors with incomprehensible.*
|
||||
|
||||
# All lists
|
||||
|
||||
- [Donate to Martin Eesmaa using cryptocurrency](#donate-to-martin-eesmaa-for-an-cryptocurrencies)
|
||||
|
||||
- [Tests of VVC videos](#tests-of-vvc-videos)
|
||||
|
||||
- [VLC InterDigital VTM VVC Plugin](#vlc-interdigital-vtm-vvc-plugin)
|
||||
|
||||
- [FFmpeg VVC En/Decoder & xHE-AAC support](#ffmpeg-vvencdec--xhe-aac-support)
|
||||
|
||||
- [MPV libvvdec + xHE-AAC support (Windows x64/Linux/Android only)](#mpv-libvvdec--xhe-aac-support-windows-x64linuxandroid-only)
|
||||
|
||||
- [LAVFilters VVC version x64](#lavfilters-vvc-version-x64)
|
||||
|
||||
- [Deprecated builds](#deprecated-builds)
|
||||
|
||||
- [Compile for VVCEasy](#compile-for-vvceasy)
|
||||
|
||||
- [VVCEasy Batchfile Compile](#vvceasy-batchfile-version-optional-windows-only)
|
||||
|
||||
- [VVCEasy .NET Compile](#vvceasy-net-console-version-optional)
|
||||
|
||||
- [Encode/Decode easy](#encodedecode-easy)
|
||||
|
||||
- [GUI applications easy](#gui-applications-easy)
|
||||
|
||||
- [Hard option](#without-vvceasy-experimental-option-for-professional-coders-other-developers-and-everyone-hard)
|
||||
|
||||
- [VVEnc & VVDec compatibility test](#compatibility-results-vvenc-and-vvdec-tested-by-martin-eesmaa)
|
||||
|
||||
- [FAQ](#faq-known-as-frequently-asked-questions)
|
||||
|
||||
- [Credits & Licenses](#credits--licenses)
|
||||
|
||||
# Donate to Martin Eesmaa for a cryptocurrencies
|
||||
|
||||
- **BTC (BITCOIN):**
|
||||
```
|
||||
bc1qhf4zu5uythr7vyt2dru73qp0k2rzrx355fsx47yjxc2ueunz8frqxmwap3
|
||||
```
|
||||
- **XMR (MONERO):**
|
||||
```
|
||||
46Fk6k3qzhwXpLsDRWo4Uh63DDmwRX7gbL6P3zodAnvnRDr9Psi9uau19nCRQFHbmp3nLR3d5Ve8WRid71nuLZxAGygZ258
|
||||
```
|
||||
- **BAT (BASIC ATTENTION TOKEN):** For Brave Browser users only, you can also contribute by supporting me, I'm a verified Brave user on Brave Rewards.
|
||||
|
||||
- **Estonian bank account (Luminor Eesti IBAN):** You can donate to me. You have to pay a little network send fees before donate.
|
||||
```
|
||||
EE511700017003558571
|
||||
```
|
||||
|
||||
# Tests of VVC videos
|
||||
|
||||
You can test Martin Eesmaa's encoded movies of VVC video codec and follow README.txt instructions.
|
||||
|
||||
[Tears of Steel VVC](https://mega.nz/folder/64swUYxI#WE5njn2aX6-6fxypNC3gtA)
|
||||
|
||||
[Martin Eesmaa's VVC sample videos](https://mega.nz/folder/C5lFhALL#5fRQfHN4ulzdaq-B33WQ7w)
|
||||
|
||||
# VLC InterDigital VTM VVC Plugin
|
||||
|
||||
I have great news. VLC latest version worked out well of Inter Digital VTM plugins. On o266player, there were some problems on my computer for one reason...
|
||||
|
||||
One reason that my Windows 11 operating system won't view video of VVC file on o266player version. On VTM plugins of VLC, now it shows me VVC video good.
|
||||
|
||||
Here is a comparison of o266player version and VTM VVC plugins:
|
||||
|
||||
Top left and right is o266player by Tencent Cloud.
|
||||
|
||||
Bottom left and right is VLC VTM plugins by Inter Digital Inc.
|
||||
|
||||

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

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

|
||||
|
||||
---
|
||||
|
||||
### VVCEasy .NET Console Version (optional)
|
||||
|
||||
First, before you compile to VVCEasy .NET Console Version, you need .NET SDK x64 from Microsoft.
|
||||
Link: https://dotnet.microsoft.com/en-us/download
|
||||
|
||||
Step 1: Clone git and cd VVCEasy
|
||||
```
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/VVCEasy && cd VVCEasy
|
||||
```
|
||||
|
||||
Step 2: Before you build, make sure to build it. Don't worry, when you build with .NET, it will restore project and build.
|
||||
```
|
||||
dotnet build -c Release
|
||||
```
|
||||
|
||||
Step 3: Once building is done, the build folder directory is bin/Release
|
||||
```
|
||||
cd bin/Release
|
||||
```
|
||||
|
||||
*Tip: You can run VVCEasy without building.*
|
||||
```
|
||||
dotnet run
|
||||
```
|
||||
|
||||
# Encode/Decode (easy)
|
||||
|
||||
Before you run of RUNVVCEASY.bat or VVCEASY.exe, you need to change input from file name to input.mp4 (as example)
|
||||
Follow the instructions, the commands will give your options. Since 21 October 2021, VVCEasy is pre-release, but it's construction mode, but you can have a look with .BAT code.
|
||||
Before you run VVCEasy.bat or VVCEasy.exe, you need to change from your input video file name into input.mp4 (for example)
|
||||
Follow the instructions, the commands will give you options. From 21 October 2021 to 23 June 2022, VVCEasy was pre-release, but it's construction mode and you can have look with .BAT source code.
|
||||
|
||||
- Martin Eesmaa
|
||||
Since 23 June 2022, VVCEasy was initial released on v1.0.0.
|
||||
|
||||
# Without VVCEasy, experimental option for professional coders, other developers and everyone (hard)
|
||||
To encode/decode, please see the GUI applications.
|
||||
|
||||
You need 7Zip (requires ffmpeg and ffplay), ffmpeg, ffplay, vvenc/vvdec(app) and YUView.
|
||||
- Martin Eesmaa
|
||||
|
||||
# GUI applications (easy)
|
||||
|
||||
If you're not familiar for using CLI, you can use GUI with application window for ease use and without typing commands on your terminal.
|
||||
|
||||
These VVC programs of encode/decode are listed:
|
||||
|
||||
* [FastFlix](https://github.com/cdgriffith/FastFlix) (Note: You might need to download my custom FFmpeg builds for encoding/decoding VVC using external libraries, rename to ffmpeg.exe and ffprobe.exe from my custom names only, no ffplay executable file required) (created by Chris Griffith)
|
||||
|
||||
* [VVC-GUI-Encoder](https://github.com/Disa-Kizonda/VVC-GUI-Encoder) (only encoder) (created by Disa Kizonda)
|
||||
|
||||
* [aVVCator](https://github.com/gianni-rosato/aVVCator) (only encoder & Linux only) (created by Gianni Rosato)
|
||||
|
||||
* [VVenCguiEx](https://github.com/rigaya/VVenCguiEx) (original Japanese language only for instructions and application (you can still translate), only encoder & Windows only, requires Aviutl) (this may be medium or hard) (created by rigaya)
|
||||
|
||||
* [VVConvert](https://vvconvert.app/) (only encoder, encodes to VVC raw bitstream from any FFmpeg compatible video codecs, requires FFmpeg to open input video files) (created by Alec Carter) ([source code](https://github.com/alectr0/VVConvert))
|
||||
|
||||
# Without VVCEasy, experimental option for professional coders, other developers, and everyone (hard)
|
||||
|
||||
You need 7-Zip (requires ffmpeg and ffplay), ffmpeg, ffplay, vvenc/vvdec(app).
|
||||
|
||||
Here are the links:
|
||||
FFMPEG/FFPLAY: https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z (go to bin folder and extract two files)
|
||||
VVENC/VVDEC:
|
||||
https://github.com/MartinEesmaa/VVCEasy/blob/main/VVC/vvencapp.exe
|
||||
https://github.com/MartinEesmaa/VVCEasy/blob/main/VVC/vvdecapp.exe
|
||||
|
||||
YUView:
|
||||
https://github.com/IENT/YUView/actions/runs/1365560321
|
||||
FFMPEG/FFPLAY: https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z (go to bin folder and extract two files of ffmpeg and ffplay)
|
||||
VVENC/VVDEC (Windows, Mac and Linux):
|
||||
Windows: https://github.com/MartinEesmaa/VVCEasy/blob/master/WindowsVVC/WindowsVVC.7z
|
||||
Mac: https://github.com/MartinEesmaa/VVCEasy/tree/master/MacOSVVC/MacOSVVC.7z
|
||||
Linux: https://github.com/MartinEesmaa/VVCEasy/blob/master/LinuxVVC/LinuxVVC.7z
|
||||
|
||||
Before we start, you need to make path environments for ffmpeg, ffplay and vvenc/vvdec to make easily.
|
||||
In Command Prompt (Windows):
|
||||
@ -59,61 +240,126 @@ In Command Prompt (Windows):
|
||||
```
|
||||
set PATH=%PATH%;C:\Users\blah\Downloads\VVCEasy\Executables
|
||||
```
|
||||
Verify using Windows Command Prompt:
|
||||
Verify path using Windows Command Prompt/Windows Terminal (CMD):
|
||||
```
|
||||
echo %PATH%
|
||||
path
|
||||
```
|
||||
|
||||
First of all:
|
||||
First:
|
||||
Transcode any video formats to YUV/Y4M
|
||||
|
||||
For YUV transcode:
|
||||
**We recommend that you use from video to yuv/y4m for pixel format YUV420P, because YUV420P is smaller size than YUV420P10.**
|
||||
|
||||
**VVENC only supports pixel formats of YUV420 (8-bit) and YUV420_10 (10-bit), otherwise it will corrupt after vvc encoding.**
|
||||
|
||||
For YUV transcode (lossy from web quality, YouTube videos and others):
|
||||
```
|
||||
ffmpeg -i input.mp4 -strict 1 inputtranscode.yuv
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p inputtranscode.yuv
|
||||
```
|
||||
|
||||
For Y4M transcode:
|
||||
For Y4M transcode (lossless from uncompressed video files, only 8 bit):
|
||||
```
|
||||
ffmpeg -i input.mp4 -strict 1 inputtranscode.y4m
|
||||
ffmpeg -i input.mp4 -pix_fmt yuv420p inputtranscode.y4m
|
||||
```
|
||||
|
||||
Verify ffplay before encode with VVENC (replace video size, important otherwise it will not show correctly video, it's like scramble eggs):
|
||||
Verify uncompressed video using FFplay before encode to VVENC (important add video size after the input file, else it will not correctly show video like scrambled eggs video):
|
||||
```
|
||||
ffplay -f rawvideo -pixel_format yuv420p -video_size 854x480 -i inputtranscode.yuv
|
||||
ffplay inputtranscode.yuv -video_size 1280x720
|
||||
```
|
||||
Or replace -i inputtranscode.yuv with `-i inputtranscode.y4m` for y4m users. For yuv420p10 on your input video 10 bit, replace `-pixel_format yuv420p10`.
|
||||
|
||||
For easy to verify YUV/Y4M, use YUView, open your YUV or Y4M encoded, make sure video size, YUV format and frame rate same like from input video file (eg. MP4, AVI, MKV and others.
|
||||
Default pixel format of ffplay for yuv and y4m is yuv420p without `-pix_fmt` command.
|
||||
|
||||
After verifying correctly
|
||||
For y4m, replace `-i inputtranscode.yuv` with `-i inputtranscode.y4m`. In `-c:v wrapped_avframe` for y4m only, so you can verify to play Y4M (wrapped_avframe) for VLC, FFplay or MPV player. For yuv420p10 on your input video 10 bits, add `-pix_fmt yuv420p10`.
|
||||
|
||||
Playing FFplay for y4m video with wrapped_avframe, you don't need to put anything commands, just simple play this:
|
||||
|
||||
```
|
||||
ffplay transcoded.y4m
|
||||
```
|
||||
|
||||
For easy to verify YUV/Y4M, use YUView, open your YUV or Y4M encoded, make sure video size, YUV/Y4M format and frame rate same like from input video file (e.g., MP4, AVI, MKV and others).
|
||||
|
||||
After verifying correctly of your YUV/Y4M video
|
||||
Encode with VVENC (Simple settings, example)
|
||||
```
|
||||
vvencapp -i out.yuv -s 854x480 -r 30 -o vvc.266
|
||||
```
|
||||
-s means video size, -r means frame per second and -o means output
|
||||
`-s` means video size, `-r` means frame per second and `-o` means output. Note: (Simple) as Default settings is YUV420P (8-bit)
|
||||
|
||||
Note to Apple Mac OS and Linux users: Command with `./vvencapp`
|
||||
TIP: You could do the alternative without taking much disk space for uncompressed video (Y4M, recommended):
|
||||
|
||||
Encode with VVENC (Best settings, replace video size (-s), framerate (-r) and maximize threads of your cores (--threads), example)
|
||||
```
|
||||
vvencapp -i out.yuv -s 854x480 -r 30 --preset slow --threads 16 --tier high -o EXTREME.266
|
||||
ffmpeg -i example.mp4 -pix_fmt yuv420p -f yuv4mpegpipe - | vvencapp --y4m -i - --preset medium --qp 35 -o converted.266
|
||||
```
|
||||
|
||||
**PRO TIP: VVENC can detect your fps and video size for y4m file format, so you don't need to insert video size and frame per second of vvenc.**
|
||||
|
||||
**WARNING of vvenc pipe: VVENC does not support two-pass mode only when using pipe call/read from FFmpeg to vvenc.**
|
||||
|
||||
Or you could do legacy of YUV pipe video:
|
||||
|
||||
```
|
||||
ffmpeg -i example.mp4 -pix_fmt yuv420p -f rawvideo - | vvencapp -i - -s 1920x1080 -r 25 --preset medium --qp 35 -o converted.266
|
||||
```
|
||||
|
||||
**WARNING: If you encode from yuv/y4m of your frame rate is 11.988, 14.985, 23.976, 29.970 or 59.940 FPS, replace this command -r by --fps.**
|
||||
|
||||
11.988 fps = `--fps 12000/1001`
|
||||
|
||||
14.985 fps = `--fps 15000/1001`
|
||||
|
||||
23.976 fps = `--fps 24000/1001`
|
||||
|
||||
29.970 fps = `--fps 30000/1001`
|
||||
|
||||
59.940 fps = `--fps 60000/1001`
|
||||
|
||||
The default of VVENC: Quantization Parameter is 32 and preset is medium.
|
||||
|
||||
If you want to get smaller video size and lossy video, add `--qp 38`. (For web video or anything)
|
||||
|
||||
If you want to get lossless video without losing quality (visually lossless, minimum loss quality), use QP 16-19 and preset slow (optional slower). (Recommended for movies, camera footage or anything)
|
||||
|
||||
Lossy video/Smallest video size:
|
||||
```
|
||||
vvencapp --qp 38 -i out.yuv -s 854x480 -r 30 -o vvc.266
|
||||
```
|
||||
|
||||
**NOTE 1: If you want to have true lossless on your video, please use H.264 Lossless video codec or VVC with vvencffapp command of CostMode Lossless**
|
||||
|
||||
**NOTE 1.1: In vvencffapp application, you can add command `--CostMode lossless`. Y4M accepts chroma subsampling 420 only, but YUV accepts 400, 420, 422 and 444.**
|
||||
|
||||
True lossless video of 8-bit and 10-bit 4:2:0:
|
||||
```
|
||||
vvencffapp -i test.y4m --CostMode lossless -qpa 1 -b test.266
|
||||
```
|
||||
|
||||
Visually lossless video (or compress smaller than preset slow, use --preset slower):
|
||||
```
|
||||
vvencapp --qp 18 -i out.yuv -s 854x480 -r 30 --preset slow -o vvc.266
|
||||
```
|
||||
|
||||
For Apple macOS and Linux terminal users: Command with `./vvencapp`
|
||||
|
||||
For Windows Users using Windows PowerShell: Command with `.\vvencapp`
|
||||
|
||||
Encode with VVENC (Best settings (visually lossless), replace video size (`-s`), frame rate (`-r`) and maximize threads of your cores (`--threads`), example) (Minimum loss quality) If you want true lossless video, use H.264 Lossless video codec or VVC with vvencffapp command of CostMode Lossless. (Necessary make smaller file (slower) than preset slow, use `--preset slower`)
|
||||
```
|
||||
vvencapp --qp 18 -i out.yuv -s 854x480 -r 30 --preset slow --threads 16 --tier high -o EXTREME.266
|
||||
```
|
||||
|
||||
NOTE: It is acceptable only for encoding to .h266, .266 and .vvc file container.
|
||||
|
||||
Note to 10 bit YUV users: If you encoding YUV 10 bit to VVC file, add `-c yuv420_10` before you type ending of -o EXTREME.266
|
||||
Note to 10-bit YUV users: If you encode YUV 10 bit to VVC file, add `-c yuv420_10` before you type the ending word of -o EXTREME.266.
|
||||
|
||||
After VVEnc, you can play in YUView develop version, unfortunately this should not work on release version of June.
|
||||
Drag any your video file of .h266, .266 or .vvc to play. YUView will play your video about only 10 seconds.
|
||||
Note to 8-bit Y4M users: It's only from input video (8-bit) to Y4M (8 bit)
|
||||
|
||||
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 VVC, that you think this is too hard to encode and decode, or this cannot be played on VLC Media Player of VVC Video Codec, use AOMEDIA ONE that is recommended for most users for easily play VLC Media Player and others.
|
||||
If you are still not happy about VVC (known as Versatile Video Coding), that you think is too hard to encode and decode, use AOMEDIA ONE (AV1) that is recommended for most users to easily play VLC Media Player and others. VVC should need played on VLC Media Player in future.
|
||||
|
||||
|
||||
|
||||
# Compatability results (VVENC AND VVDEC) TEST COMPLETED BY MARTIN EESMAA
|
||||
# Compatibility results (VVENC AND VVDEC) TESTED BY MARTIN EESMAA
|
||||
|
||||
Windows (vvencapp):
|
||||

|
||||
@ -124,20 +370,168 @@ Mac (./vvencapp):
|
||||
Linux (./vvencapp):
|
||||

|
||||
|
||||
|
||||
# FAQ (known as Frequently Asked Questions)
|
||||
|
||||
Are you real creator of VVCEasy?
|
||||
Yes... but I'm not creator of VVC, I didn't build VVC, so it was Fraunhofer built VVC.
|
||||
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 yeah... it takes longer time to make VVCEasy easier, but VVCEasy is not yet finished until further/update announcement. I don't have employees, so I'm only one.
|
||||
|
||||
Is it okay to bring proof screenshots of my errors?
|
||||
I allow you to bring error screenshots, you can bring proof. More proofs, more easy to solve it.
|
||||
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.
|
||||
|
||||
My question is not listed on FAQ. Can I ask any question?
|
||||
Sure, just go to Issues tab and ask questions or give it issue to me.
|
||||
Is it okay to bring my proof screenshots of errors?
|
||||
|
||||
If you have any questions or any issues, please go to Issues tab and create your issue.
|
||||
- Martin Eesmaa
|
||||
Yes, you can bring error screenshots for your proof. More proof, easy to solve it.
|
||||
|
||||
My question is not listed on FAQ. Can I ask any question to you?
|
||||
|
||||
Sure, just go to Issues tab, ask questions or/and give your issue to me, I'd be happy to solve :).
|
||||
|
||||
Do you know what you have skills in your programming?
|
||||
|
||||
I know about batch file and HTML programming. Some hard programming languages might be difficult for me :/.
|
||||
Update of 19th February 2022: Maybe I should make C# Console program, that will be easy for Windows, Mac and Linux multi support.
|
||||
|
||||
If you have any questions or/and any issues, please go to Issues tab and create your issue.
|
||||
|
||||
Or you can chat us: https://matrix.to/#/#vvceasy:matrix.org
|
||||
- Martin Eesmaa
|
||||
|
||||
# Credits & Licenses
|
||||
|
||||
[VVCEasy](https://github.com/MartinEesmaa/VVCEasy) - VVCEasy is easy VVC, that no need to compile.
|
||||
|
||||
License: MIT
|
||||
|
||||
© 2021-2024 [Martin Eesmaa](https://github.com/MartinEesmaa) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[Versatile Video Encoder](https://github.com/fraunhoferhhi/vvenc) - Fraunhofer Versatile Video Encoder (VVenC)
|
||||
|
||||
[Versatile Video Decoder](https://github.com/fraunhoferhhi/vvdec) - Fraunhofer Versatile Video Encoder (VVdeC)
|
||||
|
||||
[Versatile Video Decoder Web Player](https://github.com/fraunhoferhhi/vvdecWebPlayer) - A minimal proof-of-concept VVC player for the web using WebAssembly
|
||||
|
||||
License: BSD 3-Clause Clear License (all of three repositories)
|
||||
|
||||
© 2018-2024, Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. & The VVC Authors. (All rights reserved)
|
||||
|
||||
GitHub: [Fraunhoferhhi](https://github.com/fraunhoferhhi)
|
||||
|
||||
---
|
||||
|
||||
[VLC VTM Decoder Plugin](https://github.com/InterDigitalInc/VTMDecoder_VLCPlugin) - VVC decoder plugin for VLC based on a multithreaded VTM
|
||||
|
||||
[VLC Original Version](https://code.videolan.org/videolan/vlc) - VLC Media Player
|
||||
|
||||
License: GPL Version 2 (VLC Original version) & LGPL-2.1 (VLC VTM Decoder Plugin)
|
||||
|
||||
© 2000-2024 [VLC Media Player](https://code.videolan.org/) Developers (All rights reserved)
|
||||
|
||||
© 2021-2023 [Inter Digital Inc](https://github.com/InterDigitalInc) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[uvg266](https://github.com/ultravideo/uvg266) - An open-source VVC encoder based on Kvazaar
|
||||
|
||||
License: BSD 3-Clause License
|
||||
|
||||
© 2021-2023, Tampere University, ITU/ISO/IEC, project contributors (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[BitMovin Versatile Video Decoder Player](https://github.com/bitmovin/vvDecPlayer) - BitMovin VVDecPlayer
|
||||
|
||||
License: MIT
|
||||
|
||||
© 2021-2022 [Christian Feldmann](https://github.com/ChristianFeldmann) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[FFmpeg](https://github.com/FFmpeg/FFmpeg) - Mirror of https://git.ffmpeg.org/ffmpeg.git
|
||||
|
||||
VVC developers & forkers: [Christian Lehmann](https://github.com/lehmann-c), [tbiat](https://github.com/tbiat), [Isabelle Santin](https://github.com/IsaMorphic) & [Martin Eesmaa](https://github.com/MartinEesmaa)
|
||||
|
||||
License: LGPL-2.1+ & GPL-2.0+
|
||||
|
||||
For my custom build configuration license is LGPL-2.1.
|
||||
|
||||
© 2000-2024 [FFmpeg developers](https://github.com/FFmpeg) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[fdk-aac](https://github.com/mstorsjo/fdk-aac) - A standalone library of the Fraunhofer FDK AAC code from Android.
|
||||
|
||||
License: None
|
||||
|
||||
© 2012-2023 [Martin Storsjö](https://github.com/mstorsjo) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[mpv](https://github.com/mpv-player/mpv) - 🎥 Command line video player
|
||||
|
||||
License: LGPL-2.1+ & GPL-2.0+
|
||||
|
||||
For my custom build license: GPL-3.0+ with nonfree (fdk-aac) for FFmpeg
|
||||
|
||||
© 2013-2024 [Vincent Lang, MPlayer, mplayer2 & MPV developers](https://github.com/mpv-player) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[mpv-android](https://github.com/mpv-android/mpv-android) - #mpv-android @ libera.chat
|
||||
|
||||
VVC developer & forker: [tbiat](https://github.com/tbiat) & [Martin Eesmaa](https://github.com/MartinEesmaa/mpv-android-vvc)
|
||||
|
||||
License: MIT
|
||||
|
||||
© 2016-2024 Ilya Zhuravlev, sfan5 & mpv developers (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[GPAC/MP4BOX](https://github.com/gpac/gpac) - Modular Multimedia framework for packaging, streaming and playing your favorite content.
|
||||
|
||||
License: LGPL-2.1
|
||||
|
||||
© 2003-2024 [Jean Le Feuvre](https://github.com/jeanlf) & [GPAC developers/contributors](https://github.com/gpac/gpac/graphs/contributors) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[LAVFilters](https://github.com/Nevcairiel/LAVFilters) - LAV Filters - Open-Source DirectShow Media Splitter and Decoders
|
||||
|
||||
License: None
|
||||
|
||||
© 2010-2023 [Hendrik Leppkes](https://github.com/Nevcairiel) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[MPC-HC](https://github.com/clsid2/mpc-hc/) - Media Player Classic (forked by clsid2)
|
||||
|
||||
License: GPL-3.0
|
||||
|
||||
© 2007-2018 [MPC-HC Community Forum & contributors](https://github.com/mpc-hc) (Original) (All rights reserved)
|
||||
|
||||
© 2018-2024 [clsid2](https://github.com/clsid2) (forked) (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[7-Zip](https://sourceforge.net/projects/sevenzip/files/7-Zip/) - 7-Zip is a file archiver with a high compression ratio.
|
||||
|
||||
Official website: https://7-zip.org
|
||||
|
||||
License: LGPL-2.1-or-later with unRAR restriction & LZMA SDK in the public domain
|
||||
|
||||
© 1999-2023 Igor Pavlov (All rights reserved)
|
||||
|
||||
---
|
||||
|
||||
[wget](https://git.savannah.gnu.org/cgit/wget.git) - GNU Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS, the most widely used Internet protocols.
|
||||
|
||||
License: GPL-3.0-or-later
|
||||
|
||||
Original written by Hrvoje Nikšić
|
||||
|
||||
© 2015 Free Software Foundation, Inc. (All rights reserved)
|
158
RUNVVCEasy.bat
@ -1,158 +0,0 @@
|
||||
echo off
|
||||
cd /d "%~dp0"
|
||||
cls
|
||||
title Martin Eesmaa / VVCEasy
|
||||
echo MARTIN EESMAA / VVCEasy
|
||||
echo Welcome to VVCEasy. (Alpha version, v.0.0.1)
|
||||
pause
|
||||
goto start
|
||||
|
||||
:start
|
||||
title Martin Eesmaa / VVCEasy
|
||||
color 07
|
||||
cls
|
||||
echo What do you like to do for encode/decode VVC?
|
||||
echo 1. Encode (construction)
|
||||
echo 2. Decode (construction)
|
||||
echo 3. Help (construction)
|
||||
echo 4. Exit
|
||||
echo 5. Test benchmark (construction)
|
||||
echo 6. Install VLC Media Player (o266player, Windows x64)
|
||||
echo 7. Install quickly through Anaconda for ffmpeg (Windows)
|
||||
set /p VVCSTART=Number:
|
||||
if %VVCSTART% == 1 goto encodestart
|
||||
if %VVCSTART% == 2 goto decodestart
|
||||
if %VVCSTART% == 3 goto help
|
||||
if %VVCSTART% == 4 goto exit
|
||||
if %VVCSTART% == 5 goto test
|
||||
if %VVCSTART% == 6 goto vlc
|
||||
if %VVCSTART% == 7 goto conda
|
||||
|
||||
:encodestart
|
||||
title Encode
|
||||
cls
|
||||
echo Welcome to VVC encoder.
|
||||
echo What do you like to make VVC encode?
|
||||
echo 1. Default settings
|
||||
echo 2. Best settings
|
||||
echo 3. Go back to menu
|
||||
set /p goodvvcenc=Number:
|
||||
if %goodvvcenc% == 1 goto defaultvvcenc1
|
||||
if %goodvvcenc% == 2 goto bestvvcenc1
|
||||
if %goodvvcenc% == 3 goto start
|
||||
|
||||
:defaultvvcenc1
|
||||
title Did you encode to YUV/Y4M?
|
||||
echo Okay, did you encode to YUV/Y4M?
|
||||
echo 1. Yes (YUV)
|
||||
echo 2. Yes (Y4M)
|
||||
echo 3. No
|
||||
set /p encoderyu4m=Number:
|
||||
if %encoderyu4m% == 1 goto YUVdefaultsetting
|
||||
if %encoderyu4m% == 2 goto Y4Mdefaultsetting
|
||||
if %encoderyu4m% == 3 goto nextoptionsetting
|
||||
|
||||
:test
|
||||
cls
|
||||
title TEST BENCHMARK
|
||||
echo Martin Eesmaa is testing your benchmark for two settings between default and best settings.
|
||||
echo Are you ready to test? (Y/N)
|
||||
set /p readytestbefore=Answer:
|
||||
if %readytestbefore% == Y goto nowtestingtime
|
||||
if %readytestbefore% == N goto start
|
||||
if %readytestbefore% == y goto nowtestingtime
|
||||
if %readytestbefore% == n goto start
|
||||
|
||||
:nowtestingtime
|
||||
title Testing time...
|
||||
cd /d "%~dp0"
|
||||
cd 7-Zip
|
||||
|
||||
:exit
|
||||
cls
|
||||
title Have a nice day!
|
||||
echo Have a nice day! :)
|
||||
::: _ _ _
|
||||
::: | | | | | |
|
||||
::: | |_| |__ __ _ _ __ | | ___ _ ___ _ _
|
||||
::: | __| '_ \ / _` | '_ \| |/ / | | |/ _ \| | | |
|
||||
::: | |_| | | | (_| | | | | <| |_| | (_) | |_| |
|
||||
::: \__|_| |_|\__,_|_| |_|_|\_\\__, |\___/ \__,_|
|
||||
::: __/ |
|
||||
::: |___/
|
||||
|
||||
for /f "delims=: tokens=*" %%A in ('findstr /b ::: "%~f0"') do @echo(%%A
|
||||
echo Copyright 2021 Martin Eesmaa
|
||||
echo ------------END----------------
|
||||
timeout 5 /nobreak
|
||||
exit
|
||||
|
||||
:vlc
|
||||
color 6F
|
||||
title VLC Media Player (custom build of o266player)
|
||||
cls
|
||||
echo Hello, would you like to install VLC Media Player (v3.0.11.1 Vetinari, custom build of o266player) on your computer?
|
||||
echo Before you install...
|
||||
echo The VLC Media Player (custom build of o266player) works only on Windows 11, Windows 10, Windows 8.1, Windows 8, Windows 7 SP1, Windows Server 2022, Windows Server 2019, Windows Server 2016 and Windows Server 2012.
|
||||
echo Windows XP and older versions won't work, because it could be terminal error or/and cannot decode format.
|
||||
echo You need to run 64-bit / x64. On 32-bit / x86, it won't work.
|
||||
echo Install? Y/N?
|
||||
set /p vlcinstall=Answer:
|
||||
if %vlcinstall% == Y goto vlcinstaller
|
||||
if %vlcinstall% == N goto start
|
||||
if %vlcinstall% == y goto vlcinstaller
|
||||
if %vlcinstall% == n goto start
|
||||
|
||||
:vlcinstaller
|
||||
wget https://www.dropbox.com/s/hs7yoa9hkxa6ugd/vlc-3.0.11.1-w64.7z
|
||||
mkdir VLC
|
||||
copy 7-Zip VLC
|
||||
move vlc-3.0.11.1-w64.7z VLC
|
||||
cd VLC
|
||||
del /q readme.txt
|
||||
del /q license.txt
|
||||
del /q History.txt
|
||||
7z x vlc-3.0.11.1-w64.7z
|
||||
del /q 7z.dll
|
||||
del /q 7z.exe
|
||||
del /q vlc-3.0.11.1-w64.7z
|
||||
cd ../
|
||||
color 6E
|
||||
cls
|
||||
echo SUCCESSFUL! Now, would you like to download test sample VVC file test it out to VLC custom build of o266player?
|
||||
echo If Yes, wget will download the example of VVC file and run to VLC a few seconds.
|
||||
echo If No, you will be prompted go back to menu.
|
||||
echo TIP: Run VLC.exe on your own VVC file for example, if your input frame rate is 30 and you encoded to VVC same frame rate input file.
|
||||
echo Example to run correctly frame rate on your VVC: vlc.exe yourownfile.266 --no-drop-late-frames --avformat-fps=30
|
||||
set /p vlccompleted=Answer:
|
||||
if %vlccompleted% == Y goto sample266
|
||||
if %vlccompleted% == N goto start
|
||||
if %vlccompleted% == y goto sample266
|
||||
if %vlccompleted% == n goto start
|
||||
|
||||
:sample266
|
||||
color 07
|
||||
wget https://www.dropbox.com/s/zp8b3xg0b5p1pwe/VVCEasy.266
|
||||
move VVCEasy.266 VLC
|
||||
cd VLC
|
||||
vlc.exe VVCEasy.266 --no-drop-late-frames --avformat-fps=24
|
||||
cd ../
|
||||
echo OK! Test completed!
|
||||
timeout 5
|
||||
goto start
|
||||
|
||||
:conda
|
||||
cls
|
||||
title ANACONDA
|
||||
echo Welcome to Anaconda Quick Install. This will only one task for ffmpeg. Would you like to install? Y/N?
|
||||
set /p anacondaman=
|
||||
if %anacondaman% == Y goto condainstall
|
||||
if %anacondaman% == N goto start
|
||||
if %anacondaman% == y goto condainstall
|
||||
if %anacondaman% == n goto start
|
||||
|
||||
:condainstall
|
||||
conda install -c conda-forge ffmpeg
|
||||
echo SUCCESS, going to back menu...
|
||||
pause
|
||||
goto start
|
27
SOCIALMEDIA.md
Normal file
@ -0,0 +1,27 @@
|
||||
# Martin Eesmaa's social media links
|
||||
|
||||
Linktree: https://linktr.ee/MartinEesmaa
|
||||
|
||||
YouTube: https://www.youtube.com/channel/UC8uLpZMsXjU3G3etHj4rr1Q
|
||||
|
||||
Reddit: [u/MartinEesmaa](https://reddit.com/u/MartinEesmaa)
|
||||
|
||||
Lemmy.world: [u/MartinEesmaa](https://lemmy.world/u/MartinEesmaa)
|
||||
|
||||
Pastebin: https://pastebin.com/u/MartinEesmaa
|
||||
|
||||
Github: [MartinEesmaa](https://github.com/MartinEesmaa)
|
||||
|
||||
Gitlab: [MartinEesmaa](https://gitlab.com/MartinEesmaa)
|
||||
|
||||
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
|
BIN
Screenshots/linux-ffplay_vvceasy.png
Normal file
After Width: | Height: | Size: 310 KiB |
BIN
Screenshots/mpv-vvceasy-android.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
Screenshots/mpv-vvceasy-linux.png
Normal file
After Width: | Height: | Size: 763 KiB |
BIN
Screenshots/mpv-vvceasy-windows.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
Screenshots/old-mpvlinuxvvceasy.png
Normal file
After Width: | Height: | Size: 824 KiB |
BIN
Screenshots/windows-ffplay_vvceasy.png
Normal file
After Width: | Height: | Size: 234 KiB |
17
THANKS.md
Normal file
@ -0,0 +1,17 @@
|
||||
# Thanks for recommending my VVCEasy software!
|
||||
|
||||
See the lists:
|
||||
|
||||
- ¡Gracias, TRASTARO! [Eletrolado.net](https://www.elotrolado.net/hilo_fraunhofer-versatile-video-coding-h266-el-rival-para-av1_2386654#p1752441408)
|
||||
|
||||
- Спасибі, Снеговик ХФорума (Forum Snowman)! Стойте з Україною! [Kharkov Forum #StandwithUkraine](https://www.kharkovforum.com/showthread.php?p=70577507#post70577507)
|
||||
|
||||
- ありがとう, ネクストスケープ (delsoladmin)! [NEXTSPACE Streaming Tech Blog](https://media-streaming.nextscape.net/blog/1153/)
|
||||
|
||||
- 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)
|
BIN
VVC/vvdecapp
BIN
VVC/vvdecapp.exe
BIN
VVC/vvencapp
BIN
VVC/vvencapp.exe
BIN
VVCEasy.266
Normal file
571
VVCEasy.bat
Normal file
@ -0,0 +1,571 @@
|
||||
echo off
|
||||
set welcometitle=Martin Eesmaa / VVCEasy
|
||||
set version=v2.5.0
|
||||
set versionname=Pretty big greatest ever!
|
||||
set vvceasydate=11 April 2024
|
||||
pushd "%~dp0"
|
||||
cls
|
||||
|
||||
REM === check and get the UAC for administrator privilege ===
|
||||
REM === code from https://sites.google.com/site/eneerge/scripts/batchgotadmin
|
||||
:: BatchGotAdmin
|
||||
:-------------------------------------
|
||||
REM --> Check for permissions
|
||||
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
|
||||
|
||||
REM --> If error flag set, we do not have admin.
|
||||
if '%errorlevel%' NEQ '0' (
|
||||
if '%1' EQU '1' (
|
||||
echo Cannot elevate administrator privilege
|
||||
echo Please try again with "Run as Administrator"
|
||||
echo Installation failed.
|
||||
pause
|
||||
exit /B
|
||||
) else (
|
||||
echo Requesting administrative privileges...
|
||||
goto UACPrompt
|
||||
)
|
||||
) else ( goto gotAdmin )
|
||||
|
||||
:UACPrompt
|
||||
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
|
||||
echo UAC.ShellExecute "%~s0", "1", "", "runas", 1 >> "%temp%\getadmin.vbs"
|
||||
|
||||
"%temp%\getadmin.vbs"
|
||||
exit /B
|
||||
|
||||
:gotAdmin
|
||||
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
|
||||
pushd "%CD%"
|
||||
CD /D "%~dp0"
|
||||
:--------------------------------------
|
||||
|
||||
goto welcomenow
|
||||
|
||||
:welcomenow
|
||||
cls
|
||||
title %welcometitle%
|
||||
echo %welcometitle%
|
||||
echo Welcome to VVCEasy. (Batch file Release Version, %version%, %vvceasydate%)
|
||||
echo Version codename: %versionname%
|
||||
pause
|
||||
goto start
|
||||
|
||||
:start
|
||||
title %welcometitle%
|
||||
color 07
|
||||
cls
|
||||
echo VVCEasy (Batchfile Release Version, %version%, %vvceasydate%)
|
||||
echo Version codename: %versionname%
|
||||
echo.
|
||||
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 7. Install/Update VVdec Web Player
|
||||
echo 8. Decompress WindowsVVC.7z (Before you use new VVCEasy version!!!)
|
||||
echo 9. Install vvDecPlayer from BitMovin
|
||||
echo 10. Install/Update VLC VTM Plugins (Windows/Linux x64 of VLC plugins by Inter Digital Inc)
|
||||
echo 11. Install FFmpeg VVDec support.
|
||||
echo 12. Install MPV Windows/Android (libvvdec plugin)
|
||||
echo 13. Tests of VVC videos
|
||||
set /p VVCSTART=Number:
|
||||
|
||||
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 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 the menu.
|
||||
set /p vvencquestion1=Number:
|
||||
if "%vvencquestion1%" == 1 goto losslessvvenc2
|
||||
if "%vvencquestion1%" == 2 goto lossyvvenc2
|
||||
if "%vvencquestion1%" == 3 goto start
|
||||
|
||||
:losslessvvenc2
|
||||
title Lossless settings with Lossless uncompressed (VVC Encoder)
|
||||
cls
|
||||
echo Do you have Y4M?
|
||||
echo If you have Y4M already, move your Y4M file into C:\Program Files\VVCEasy\
|
||||
echo If you do not have Y4M, your instruction will go to next...
|
||||
echo 1. I have Y4M already (I am ready)
|
||||
echo 2. No, I am not ready yet (go back to previous)
|
||||
echo If you don't have Y4M already... you need transcode file from your uncompressed file to Y4M.
|
||||
echo Example: ffmpeg -i yourfile.mov -strict 1 yourfinal.y4m
|
||||
echo Only 8-bit uncompressed movies input to Y4M.
|
||||
set /p doyouhavey4mvvencquestion3=Number:
|
||||
if "%doyouhavey4mvvencquestion3%" == 1 goto startlosslessvvenc2
|
||||
if "%doyouhavey4mvvencquestion3%" == 2 goto encodestart
|
||||
|
||||
:startlosslessvvenc2
|
||||
cls
|
||||
title VVC ENCODER (Y4M LOSSLESS)
|
||||
echo Before we start 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.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:lossyvvenc2
|
||||
title Lossy settings with Lossy compressed (VVC Encoder)
|
||||
cls
|
||||
echo Do you have YUV?
|
||||
echo If you have YUV already, move your YUV file into C:\Program Files\VVCEasy\
|
||||
echo If you do not have YUV, your instruction will go to next...
|
||||
echo 1. I have YUV already (I am ready)
|
||||
echo 2. No, I am not ready yet (go back to previous)
|
||||
echo If you don't have Y4M already... you need transcode file from your lossy video file to YUV.
|
||||
echo Example: ffmpeg -i yourfile.mp4 -strict 1 yourfinal.yuv
|
||||
set /p doyouhaveyuvvvencquestion4=Number:
|
||||
if "%doyouhaveyuvvvencquestion4%" == 1 goto startlossyvvenc2
|
||||
if "%doyouhaveyuvvvencquestion4%" == 2 goto encodestart
|
||||
|
||||
:startlossyvvenc2
|
||||
cls
|
||||
title VVC ENCODER (YUV LOSSY)
|
||||
echo Before we start 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
|
||||
goto start
|
||||
|
||||
:decodestart
|
||||
explorer "C:\Program Files\VVCEasy\WindowsVVC"
|
||||
cls
|
||||
title Decode from VVC to YUV/Y4M
|
||||
echo Do you want to transcode back from VVC to YUV or Y4M? Which did you choose settings? Choosing settings will transcode back.
|
||||
echo You need copy from your VVC file to C:\Program Files\VVCEasy\WindowsVVC\. Windows Explorer will open automatically.
|
||||
echo After copying your VVC file into VVCEasy folder, you need rename to VVC.vvc. It will transcode from your VVC file to YUV/Y4M.
|
||||
echo After transcoding, your transcoded file should be: C:\Program Files\VVCEasy\transcodedback
|
||||
echo Note, if you are using portable, like 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
|
||||
|
||||
:DECODESTARTFROMVVCTOYUV
|
||||
cls
|
||||
title STARTING TRANSCODING BACK FROM VVC TO YUV...
|
||||
mkdir transcodedback
|
||||
cd WindowsVVC
|
||||
vvdecapp -b VVC.vvc -o VVCTOYUV.yuv
|
||||
move VVCTOYUV.yuv ../
|
||||
move VVCTOYUV.yuv transcodedback
|
||||
explorer "C:\Program Files\VVCEasy\transcodedback"
|
||||
echo FINISHED. Going back to the menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:DECODESTARTFROMVVCTOY4M
|
||||
cls
|
||||
title STARTING TRANSCODING BACK FROM VVC TO Y4M...
|
||||
mkdir transcodedback
|
||||
cd WindowsVVC
|
||||
vvdecapp -b VVC.vvc --y4m -o VVCTOYUV.y4m
|
||||
move VVCTOYUV.y4m ../
|
||||
move VVCTOYUV.y4m transcodedback
|
||||
explorer "C:\Program Files\VVCEasy\transcodedback"
|
||||
echo FINISHED. Going back to the menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:test
|
||||
cls
|
||||
title INSTALL/TEST PATH ENVIRONMENT
|
||||
echo Martin Eesmaa is testing your paths, that you installed programs in PATH. Not sure, what is path?
|
||||
echo You can go here for link: https://stackoverflow.com/questions/4910721/python-on-cmd-path
|
||||
echo Also you can also search "What is PATH in Windows?" in DuckDuckGo or SearX.
|
||||
echo Are you ready to test? (Y/N) or type "I" to install path environment.
|
||||
set /p readytestbefore=Answer:
|
||||
if "%readytestbefore%" == Y goto nowtestingtime
|
||||
if "%readytestbefore%" == N goto start
|
||||
if "%readytestbefore%" == y goto nowtestingtime
|
||||
if "%readytestbefore%" == n goto start
|
||||
if "%readytestbefore%" == I goto installpath
|
||||
if "%readytestbefore%" == i goto installpath
|
||||
|
||||
:nowtestingtime
|
||||
title Testing time...
|
||||
7z
|
||||
ffmpeg
|
||||
ffplay
|
||||
wget
|
||||
git
|
||||
echo You need exit in Python for typing "exit()".
|
||||
python
|
||||
echo Did that work in your PATH? Y/N?
|
||||
set /p testdidworkq=Answer:
|
||||
if "%testdidworkq%" == Y goto youdidworktest
|
||||
if "%testdidworkq%" == N goto ahhdidnotwork
|
||||
if "%testdidworkq%" == y goto youdidworktest
|
||||
if "%testdidworkq%" == n goto ahhdidnotwork
|
||||
|
||||
:youdidworktest
|
||||
title Great!
|
||||
echo Great, your PATHS working now. Now back to the menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:ahhdidnotwork
|
||||
title Sorry...
|
||||
echo Sorry, your path environment did not work. Make sure follow that needs to be add it on paths installation like Python.
|
||||
echo Still not working? You can ask questions in Stack Overflow.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:installpath
|
||||
echo Installer path environment will be only for 7-Zip.
|
||||
echo Other programs should need manual, but Python, FFmpeg, wget and git must be installed manually and add automatically path environments.
|
||||
echo Do you want patch 7-Zip on your path environment, so you can type "7z" next time.
|
||||
echo Would you like to install 7-Zip on your path environments? Y/N? No means go back to test menu.
|
||||
set /p installpath1=Answer:
|
||||
if "%installpath1%" == Y goto installingpath
|
||||
if "%installpath1%" == N goto test
|
||||
if "%installpath1%" == y goto installingpath
|
||||
if "%installpath1%" == n goto test
|
||||
|
||||
:installingpath
|
||||
title INSTALLING 7-ZIP on your path environments...
|
||||
echo INSTALLING 7-ZIP on your path environments...
|
||||
set PATH=%PATH%;C:\Program Files\7-Zip
|
||||
echo DONE!
|
||||
echo Returning to test menu...
|
||||
timeout 3 /nobreak
|
||||
goto test
|
||||
|
||||
:exit
|
||||
cls
|
||||
title Have a wonderful day!
|
||||
echo Have a wonderful day! Thank you for using VVCEasy. :)
|
||||
::: _ _ _
|
||||
::: | | | | | |
|
||||
::: | |_| |__ __ _ _ __ | | ___ _ ___ _ _
|
||||
::: | __| '_ \ / _` | '_ \| |/ / | | |/ _ \| | | |
|
||||
::: | |_| | | | (_| | | | | <| |_| | (_) | |_| |
|
||||
::: \__|_| |_|\__,_|_| |_|_|\_\\__, |\___/ \__,_|
|
||||
::: __/ |
|
||||
::: |___/
|
||||
|
||||
::: __ ____ _______ ______
|
||||
::: \ \ / /\ \ / / ____| ____|
|
||||
::: \ \ / / \ \ / / | | |__ __ _ ___ _ _
|
||||
::: \ \/ / \ \/ /| | | __| / _` / __| | | |
|
||||
::: \ / \ / | |____| |___| (_| \__ \ |_| |
|
||||
::: \/ \/ \_____|______\__,_|___/\__, |
|
||||
::: __/ |
|
||||
::: |___/
|
||||
|
||||
::: __ __ _ _ ______
|
||||
::: | \/ | | | (_) | ____|
|
||||
::: | \ / | __ _ _ __| |_ _ _ __ | |__ ___ ___ _ __ ___ __ _ __ _
|
||||
::: | |\/| |/ _` | '__| __| | '_ \ | __| / _ \/ __| '_ ` _ \ / _` |/ _` |
|
||||
::: | | | | (_| | | | |_| | | | | | |___| __/\__ \ | | | | | (_| | (_| |
|
||||
::: |_| |_|\__,_|_| \__|_|_| |_| |______\___||___/_| |_| |_|\__,_|\__,_|
|
||||
|
||||
|
||||
for /f "delims=: tokens=*" %%A in ('findstr /b ::: "%~f0"') do @echo(%%A
|
||||
echo.
|
||||
echo Copyright (C) 2021-2022 Martin Eesmaa
|
||||
echo.
|
||||
echo ------------ END OF THE PROGRAM ----------------
|
||||
timeout 5 /nobreak
|
||||
exit
|
||||
|
||||
:conda
|
||||
cls
|
||||
title ANACONDA (PYTHON DISTRIBUTION)
|
||||
echo Welcome to Anaconda (Python Distribution) Quick Install. This will do only one task to download FFmpeg. Would you like to install? Y/N?
|
||||
set /p anacondaman=Answer:
|
||||
if "%anacondaman%" == Y goto condainstall
|
||||
if "%anacondaman%" == N goto start
|
||||
if "%anacondaman%" == y goto condainstall
|
||||
if "%anacondaman%" == n goto start
|
||||
|
||||
:condainstall
|
||||
conda install -c conda-forge ffmpeg
|
||||
echo SUCCESS, going to back the menu...
|
||||
pause
|
||||
goto start
|
||||
|
||||
:help
|
||||
cls
|
||||
echo Welcome to VVCEasy help instructions!
|
||||
echo Here is tutorial about... How to use VVCEasy?
|
||||
pause
|
||||
echo Step 1: Run on VVCEasy.bat. When you see the screen of Welcome to VVCEasy. You can press any key continue to main menu.
|
||||
echo Step 2: Here 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 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
|
||||
|
||||
:installvvdecweb
|
||||
cls
|
||||
title VVdec Web Player.
|
||||
echo Welcome to VVDEC Web Player.
|
||||
echo By installing, you will have to agree to download VVDec Web Player from Fraunhoferhhi GitHub.
|
||||
echo See the code of VVDEC Web Player: https://github.com/fraunhoferhhi/vvdecWebPlayer
|
||||
echo When you agree to install, it will clone VVDec Web Player repository using git. After git, we will copy from VVDECWEBINSTALL files into vvdecWebPlayer/bin folder.
|
||||
echo After all of that, we will run Python to start web server of your localhost port 8000.
|
||||
echo If you already have installed of VVDec Web Player, you can type "U" to update files of VVDec Web Player.
|
||||
echo Would you like to install VVDEC Web Player?
|
||||
set /p okletsdoit=Answer:
|
||||
if "%okletsdoit%" == Y goto installnowplayer
|
||||
if "%okletsdoit%" == N goto start
|
||||
if "%okletsdoit%" == y goto installnowplayer
|
||||
if "%okletsdoit%" == n goto start
|
||||
if "%okletsdoit%" == U goto updatevvdecwebplayer
|
||||
if "%okletsdoit%" == u goto updatevvdecwebplayer
|
||||
|
||||
:installnowplayer
|
||||
cls
|
||||
title INSTALLING VVDEC WEB PLAYER...
|
||||
git clone https://github.com/fraunhoferhhi/vvdecWebPlayer.git
|
||||
copy VVDECWEBINSTALL "vvdecWebPlayer/bin" /y
|
||||
cd vvdecWebPlayer
|
||||
wget https://www.dropbox.com/s/zp8b3xg0b5p1pwe/VVCEasy.266
|
||||
rename VVCEasy.266 dummy_raw_bitstream.266
|
||||
echo Note: If you want to go back to menu, press CTRL + C on your keyboard in Windows Terminal/CMD and type "Y" to terminate server and this will go back to main menu options.
|
||||
echo The python file is porting 8000 on your local host computer.
|
||||
python wasm_test-server.py
|
||||
cd ../
|
||||
echo Thanks for trying out VVDEC Web Player. If you want to run on your VVDEC Web Player Server, go to folder of vvdecWebPlayer and run one click wasm_test-server.py.
|
||||
echo Press any key to go back menu.
|
||||
timeout 10
|
||||
goto start
|
||||
|
||||
:updatevvdecwebplayer
|
||||
cls
|
||||
title UPDATING VVDEC WEB PLAYER...
|
||||
echo UPDATING VVDEC WEB PLAYER...
|
||||
cd vvdecWebPlayer
|
||||
git pull
|
||||
cd ../
|
||||
echo Your up to date is now latest.
|
||||
echo Returning to main menu...
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:decompresswin7z
|
||||
cls
|
||||
title WindowsVVC.7z (decompressing)
|
||||
echo Decompressing........
|
||||
cd WindowsVVC
|
||||
7z x WindowsVVC.7z
|
||||
certutil -hashfile vvencapp.exe SHA512
|
||||
certutil -hashfile vvdecapp.exe SHA512
|
||||
certutil -hashfile vvencFFapp.exe SHA512
|
||||
certutil -hashfile vvencinterfacetest.exe SHA512
|
||||
certutil -hashfile vvenclibtest.exe SHA512
|
||||
rename SHA512SUMS SHA512SUMS.txt
|
||||
SHA512SUMS.txt
|
||||
echo Now please make sure double check that needs to be same hash. If it 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 the menu.
|
||||
timeout 3
|
||||
goto start
|
||||
|
||||
:installbitmovin
|
||||
cls
|
||||
title Install BitVVDecPlayer from BitMovin
|
||||
echo Would you like to install on your operating system?
|
||||
echo Windows for W, Mac OS for M and Linux for L, Main Menu for N/n.
|
||||
set /p installbitmovind=Answer:
|
||||
if "%installbitmovind%" == W goto installbitmovin1windows
|
||||
if "%installbitmovind%" == w goto installbitmovin1windows
|
||||
if "%installbitmovind%" == M goto installbitmovin1macos
|
||||
if "%installbitmovind%" == m goto installbitmovin1macos
|
||||
if "%installbitmovind%" == L goto installbitmovin1linux
|
||||
if "%installbitmovind%" == l goto installbitmovin1linux
|
||||
if "%installbitmovind%" == N goto start
|
||||
if "%installbitmovind%" == n goto start
|
||||
|
||||
:installbitmovin1windows
|
||||
title Installing BitVVDecPlayer from BitMovin...
|
||||
echo Installing BitVVDecPlayer from BitMovin...
|
||||
mkdir BitVVDecPlayerWIN
|
||||
cd BitVVDecPlayerWIN
|
||||
echo Downloading BitVVDecPlayer (Windows) from Bitmovin, compiled by Martin Eesmaa
|
||||
wget https://www.dropbox.com/s/75ouoeadcr2cl53/BitVVDecPlayerWIN.7z
|
||||
7z x BitVVDecPlayerWIN.7z
|
||||
del /q BitVVDecPlayerWIN.7z
|
||||
vvDecPlayer
|
||||
echo Successfully running on BitVVDecPlayer, now if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
|
||||
echo If you receive error, that MSVCP140.DLL is missing, you might need download Microsoft Visual C++ Redistributable of 2015-2017-2019-2022: https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
|
||||
echo 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
|
||||
title Installing BitVVDecPlayer from BitMovin...
|
||||
echo Installing BitVVDecPlayer from BitMovin...
|
||||
mkdir BitVVDecPlayerMAC
|
||||
cd BitVVDecPlayerMAC
|
||||
echo Downloading BitVVDecPlayer (macOS) from Bitmovin, compiled by Martin Eesmaa
|
||||
wget https://www.dropbox.com/s/ilsoica7c8dh4hq/BitVVDecPlayerMAC.7z
|
||||
7z x BitVVDecPlayerMAC.7z
|
||||
del /q BitVVDecPlayerMAC.7z
|
||||
./vvDecPlayer
|
||||
echo Successfully running on vvDecPlayer, now if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
|
||||
echo If vvDecPlayer won't work probably, it might be issue that you haven't installed Qt on your Mac OS. Please install using code: "brew install qt" on Homebrew.
|
||||
echo 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
|
||||
title Installing BitVVDecPlayer from BitMovin...
|
||||
echo Installing BitVVDecPlayer from BitMovin...
|
||||
mkdir BitVVDecPlayerLINUX
|
||||
cd BitVVDecPlayerLINUX
|
||||
echo Downloading BitVVDecPlayer (Linux) from Bitmovin, compiled by Martin Eesmaa
|
||||
wget https://www.dropbox.com/s/bihm3pyh21lcvte/BitVVDecPlayerLINUX.7z?dl=0
|
||||
7z x BitVVDecPlayerLINUX.7z
|
||||
del /q BitVVDecPlayerLINUX.7z
|
||||
./vvDecPlayer
|
||||
echo Successfully running on vvDecPlayer, now if you have any problems, please go to Bitmovin/vvDecPlayer issues of https://github.com/bitmovin/vvDecPlayer/issues
|
||||
echo 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 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
|
||||
|
||||
:downloadvvcnowbit
|
||||
title Downloading VVC sample files and Coffee Run JSON & Sprite Fright JSON... from Bitmovin
|
||||
echo Downloading VVC sample files and Coffee Run JSON & Sprite Fright JSON from Bitmovin...
|
||||
wget "https://www.dropbox.com/s/qncefmnhw8hzr2k/vvcBlogPostDemo.7z" "https://www.dropbox.com/s/ogxw1pz9pr9bphi/CoffeeRun.json" "https://www.dropbox.com/s/6kpnoin4bwzb1ob/SpriteFright.json"
|
||||
echo Extracting from archived file...
|
||||
7z x vvcBlogPostDemo.7z
|
||||
echo Deleting archived file...
|
||||
del /q vvcBlogPostDemo.7z
|
||||
title Installation of BitVVDecPlayer
|
||||
echo Please edit 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 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.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:vlcvtmplugininstall
|
||||
cls
|
||||
title VLC VTM Plugins Install (Windows & Linux)
|
||||
echo Welcome to VLC Media Player of VTM Plugins Installation.
|
||||
echo You need to run Windows version of Windows Vista / Windows Server 2008 to play VVC files.
|
||||
echo Windows XP can't load VTM plugins, but other plugins work.
|
||||
echo System type only = x64
|
||||
echo Linux is now available, see Linux installation at: https://github.com/MartinEesmaa/VVCEasy/tree/master/INSTALLVLCPLUGIN#for-linux-users
|
||||
echo Current version = 3.0.16, latest version 3.0.17-4 (it will work same latest version)
|
||||
echo Would you like to install VTM plugins to your VLC Media Player? Y/N?
|
||||
set /p vlcvtmyesorno=Answer:
|
||||
if "%vlcvtmyesorno%" == Y goto installvlcvtmpluginnow
|
||||
if "%vlcvtmyesorno%" == y goto installvlcvtmpluginnow
|
||||
if "%vlcvtmyesorno%" == N goto start
|
||||
if "%vlcvtmyesorno%" == n goto start
|
||||
|
||||
:installvlcvtmpluginnow
|
||||
title Installing of VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)
|
||||
echo Installing VLC VTM Plugins by Inter Digital Inc... (Compiled by Martin Eesmaa)
|
||||
cd INSTALLVLCPLUGIN
|
||||
copy libvtmdec.dll "%programfiles%\VideoLAN\VLC\plugins\codec" /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.
|
||||
"%programfiles%\VideoLAN\VLC\vlc.exe"
|
||||
pause
|
||||
goto start
|
||||
|
||||
:ffmpegvvdec
|
||||
cls
|
||||
title FFmpeg VVDec support
|
||||
echo Hello, would you like to download FFmpeg VVDec support? Y/N?
|
||||
set /p vvcnow0=Answer:
|
||||
if "%vvcnow0%" == Y goto installvvdecffmpegnow
|
||||
if "%vvcnow0%" == N goto start
|
||||
if "%vvcnow0%" == y goto installvvdecffmpegnow
|
||||
if "%vvcnow0%" == n goto start
|
||||
|
||||
:installvvdecffmpegnow
|
||||
echo Your favorite operating system is available on FFmpeg VVDec support. Please copy the link to a web browser.
|
||||
echo.
|
||||
echo Download link: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md#ffmpeg-downloads-xhe-aac--vvc-endecoder-plugin-compiled-by-martin-eesmaa
|
||||
echo.
|
||||
echo See information on FFMPEGVVC.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md
|
||||
echo.
|
||||
echo Press enter to go back menu.
|
||||
pause
|
||||
goto start
|
||||
|
||||
:mpvandroidvvc
|
||||
echo Please see the document. The command will open the document for you.
|
||||
MPV.md
|
||||
echo.
|
||||
echo See information MPV.md or online GitHub: https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md
|
||||
echo.
|
||||
echo Press enter to go back 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
|
||||
|
10
VVCEasy.csproj
Normal file
@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
BIN
VVCEasy.png
Normal file
After Width: | Height: | Size: 112 KiB |
39
VVCEasy_compiler.iss
Normal file
@ -0,0 +1,39 @@
|
||||
; Script generated by the Inno Setup Script Wizard.
|
||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||
|
||||
#define MyAppName "VVCEasy"
|
||||
#define MyAppVersion "2.5.0"
|
||||
#define MyAppPublisher "Martin Eesmaa"
|
||||
#define MyAppURL "https://github.com/MartinEesmaa/VVCEasy"
|
||||
|
||||
[Setup]
|
||||
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
|
||||
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
||||
AppId={{CEFE5C0E-F29A-4459-A5FC-53267C743303}}
|
||||
AppName={#MyAppName}
|
||||
AppVersion={#MyAppVersion}
|
||||
;AppVerName={#MyAppName} {#MyAppVersion}
|
||||
AppPublisher={#MyAppPublisher}
|
||||
AppPublisherURL={#MyAppURL}
|
||||
AppSupportURL={#MyAppURL}
|
||||
AppUpdatesURL={#MyAppURL}
|
||||
DefaultDirName={autopf}\{#MyAppName}
|
||||
DefaultGroupName={#MyAppName}
|
||||
LicenseFile=C:\Users\User\Downloads\VVCEasy\LICENSE
|
||||
; Uncomment the following line to run in non administrative install mode (install for current user only.)
|
||||
;PrivilegesRequired=lowest
|
||||
OutputDir=C:\Users\User\Downloads
|
||||
OutputBaseFilename=VVCEasy
|
||||
Compression=lzma2/ultra64
|
||||
SolidCompression=yes
|
||||
WizardStyle=modern
|
||||
InternalCompressLevel=ultra64
|
||||
CompressionThreads=1
|
||||
|
||||
[Languages]
|
||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||
|
||||
[Files]
|
||||
Source: "C:\Users\User\Downloads\VVCEasy\*"; DestDir: "{win}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
4
VVDECWEBINSTALL/vvdecapp.js
Normal file
BIN
VVDECWEBINSTALL/vvdecapp.wasm
Normal file
1
VVDECWEBINSTALL/vvdecapp.worker.js
Normal file
@ -0,0 +1 @@
|
||||
"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");var vm=require("vm");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:f=>vm.runInThisContext(fs.readFileSync(f,"utf8"),{filename:f}),postMessage:msg=>parentPort.postMessage(msg),performance:global.performance||{now:Date.now}})}var initializedJS=false;function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+"\n");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var module=Module["wasmModule"];Module["wasmModule"]=null;var instance=new WebAssembly.Instance(module,info);return receiveInstance(instance)};self.onunhandledrejection=e=>{throw e.reason||e};function handleMessage(e){try{if(e.data.cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);self.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler:handler,args:args})}}Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}CreateVVdeC(Module)}else if(e.data.cmd==="run"){Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["__emscripten_thread_mailbox_await"](e.data.pthread_ptr);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){Module["__embind_initialize_bindings"]();initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="checkMailbox"){if(initializedJS){Module["checkMailbox"]()}}else if(e.data.cmd){err(`worker.js received unknown command ${e.data.cmd}`);err(e.data)}}catch(ex){Module["__emscripten_thread_crashed"]?.();throw ex}}self.onmessage=handleMessage;
|
BIN
WindowsVVC/WindowsVVC.7z
Normal file
11
WindowsVVC/WindowsVVC.sha256
Normal file
@ -0,0 +1,11 @@
|
||||
fb914c803bea599771118695d0746180eee4374b16e220dc8bb1a10138af6958 Win32/vvdecapp.exe
|
||||
752d8f3cbf00c1f90a24e2054d6f40214f58d83b165a801d1f9b9ff92520de30 Win32/vvencapp.exe
|
||||
52649207d1574ec7c9004dbc51a8ceb9c74fec50205d2be6218cd7fbe0c9ef35 Win32/vvencFFapp.exe
|
||||
cbe45af12631c8f8952b6b0f0ae4fd03b2d4610619dee8c2ac4aa0152e700868 Win32/vvencinterfacetest.exe
|
||||
9583f13c9dc31ad8a27b7883ce50d8d56551fde97a5b4d541575ee5de17bcbbe Win32/vvenclibtest.exe
|
||||
81ae4c9df313a49d55d2a56cf6bfcfbf2fd16dfba2a02b5fc73ae15be58af2a5 WindowsVVC.7z
|
||||
dc3eb2c5a60e31a138bbcb066b4ceedcb84b1b91e007eacddc95264b43c46870 x64/vvdecapp.exe
|
||||
0daa9582151661f7e760606ed3f7611fc5fa2f405873918de7856839f773663d x64/vvencapp.exe
|
||||
3bbe2c5162f5a7cc4c39a5816bd86c7553528d6a7bf4694a2b9f49fc70c480a1 x64/vvencFFapp.exe
|
||||
f0fa799cda88bc2236de003c976c1ee80beae65c599cefe5107c2471db0e86a6 x64/vvencinterfacetest.exe
|
||||
7a6b39f7247b3b932abb658d745b0a4cc0491127ade82ed39dbc223558bd1590 x64/vvenclibtest.exe
|
117
libvvdecffmpeg.sh
Normal file
@ -0,0 +1,117 @@
|
||||
#!/bin/bash
|
||||
PREFIX=/usr/local
|
||||
echo Building FFmpeg VVCEasy Linux version...
|
||||
sudo apt update && sudo apt upgrade -y && \
|
||||
sudo apt install build-essential cmake nasm autoconf pkg-config \
|
||||
python3-setuptools ninja-build python3-pip libtool git wget xxd -y && \
|
||||
sudo pip3 install meson
|
||||
|
||||
if [ ! -d FFmpeg-VVC ]; then
|
||||
git clone --depth=1 https://github.com/MartinEesmaa/FFmpeg-VVC
|
||||
else
|
||||
git -C FFmpeg-VVC pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvenc ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
else
|
||||
git -C vvenc pull
|
||||
fi
|
||||
|
||||
if [ ! -d vvdec ]; then
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
else
|
||||
git -C vvdec pull
|
||||
fi
|
||||
|
||||
if [ ! -d fdk-aac ]; then
|
||||
git clone --depth=1 https://github.com/mstorsjo/fdk-aac
|
||||
else
|
||||
git -C fdk-aac pull
|
||||
fi
|
||||
|
||||
if [ ! -d SDL ]; then
|
||||
git clone --depth=1 https://github.com/libsdl-org/SDL -b SDL2
|
||||
else
|
||||
git -C SDL pull
|
||||
fi
|
||||
|
||||
if [ ! -d libxml2 ]; then
|
||||
git clone --depth=1 https://github.com/gnome/libxml2
|
||||
else
|
||||
git -C libxml2 pull
|
||||
fi
|
||||
|
||||
if [ ! -d opus ]; then
|
||||
git clone --depth=1 https://github.com/xiph/opus
|
||||
else
|
||||
git -C opus pull
|
||||
fi
|
||||
|
||||
if [ ! -d libjxl ]; then
|
||||
git clone --depth=1 https://github.com/libjxl/libjxl
|
||||
sed -i 's/-lm/-lm -lstdc++/g' libjxl/lib/jxl/libjxl.pc.in libjxl/lib/threads/libjxl_threads.pc.in
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
else
|
||||
git -C libjxl pull
|
||||
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
|
||||
fi
|
||||
|
||||
if [ ! -d zimg ]; then
|
||||
git clone --depth=1 https://github.com/sekrit-twc/zimg
|
||||
git -C zimg submodule update --init --recursive --depth 1
|
||||
wget https://raw.githubusercontent.com/m-ab-s/mabs-patches/master/zimg/0001-libm_wrapper-define-__CRT__NO_INLINE-before-math.h.patch
|
||||
else
|
||||
git -C zimg pull
|
||||
git -C zimg submodule update --init --recursive --depth 1
|
||||
fi
|
||||
|
||||
if [ ! -d soxr ]; then
|
||||
git clone --depth=1 https://github.com/chirlu/soxr
|
||||
else
|
||||
git -C soxr pull
|
||||
fi
|
||||
|
||||
if [ ! -d dav1d ]; then
|
||||
git clone --depth=1 https://code.videolan.org/videolan/dav1d
|
||||
else
|
||||
git -C dav1d pull
|
||||
fi
|
||||
|
||||
if [ ! -d vmaf ]; then
|
||||
git clone --depth=1 https://github.com/netflix/vmaf
|
||||
else
|
||||
git -C vmaf pull
|
||||
fi
|
||||
|
||||
cd vvenc && sudo make install-release install-prefix=$PREFIX disable-lto=1 && \
|
||||
cd .. && \
|
||||
cd vvdec && sudo make install-release install-prefix=$PREFIX disable-lto=1 && \
|
||||
cd .. && \
|
||||
cd fdk-aac && autoreconf -if && ./configure --prefix=$PREFIX --enable-static --disable-shared && sudo make install -j $nproc && \
|
||||
cd .. && \
|
||||
cd libxml2 && autoreconf -if && ./configure --prefix=$PREFIX --enable-static --disable-shared && sudo make install -j $nproc && \
|
||||
cd .. && \
|
||||
cd opus && autoreconf -if && CFLAGS="-O2 -D_FORTIFY_SOURCE=0" LDFLAGS="-flto -s" ./configure --prefix=$PREFIX --enable-static --disable-shared && sudo make install -j $nproc && \
|
||||
cd .. && \
|
||||
mkdir libjxl/build && cd libjxl/build && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_PLUGINS=ON -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=ON -DJPEGXL_FORCE_SYSTEM_GTEST=ON -DCMAKE_INSTALL_PREFIX=$PREFIX .. -G Ninja && sudo ninja install && \
|
||||
cd ../../ && \
|
||||
mkdir vmaf/libvmaf/build && cd vmaf/libvmaf/build && CFLAGS="-msse2 -mfpmath=sse -mstackrealign" meson -Denable_docs=false -Ddefault_library=static -Denable_float=true -Dbuilt_in_models=true -Dprefix=$PREFIX .. && sudo ninja install && \
|
||||
cd ../../../ && \
|
||||
sudo sed -i 's/-lm/-lm -lstdc++/g' $PREFIX/lib/x86_64-linux-gnu/pkgconfig/libvmaf.pc && \
|
||||
cd SDL && mkdir build && cd build && cmake -DCMAKE_EXE_LINKER_FLAGS="-static" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .. && sudo make install -j $nproc && \
|
||||
cd ../../ && \
|
||||
cd zimg && autoreconf -if && ./configure --disable-shared --prefix=$PREFIX && sudo make install -j $nproc && \
|
||||
cd .. && \
|
||||
mkdir soxr/build && cd soxr/build && cmake -D{WITH_LSR_BINDINGS,BUILD_TESTS,WITH_OPENMP}=off -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -Wno-dev .. && \
|
||||
sudo cmake --build . -j $nproc --target install && \
|
||||
cd ../../ && \
|
||||
mkdir dav1d/build && cd dav1d/build && meson -Denable_docs=false -Ddefault_library=static -Dprefix=$PREFIX .. && sudo ninja install && \
|
||||
cd ../../ && \
|
||||
cd FFmpeg-VVC && \
|
||||
./configure --enable-static --pkg-config-flags="--static" --extra-ldexeflags="-static" \
|
||||
--enable-libfdk-aac --enable-libvvenc --enable-libvvdec --enable-pic \
|
||||
--enable-libxml2 --enable-libopus --enable-libdav1d --enable-libjxl --enable-libzimg --enable-libvmaf --enable-libsoxr --enable-sdl2 && \
|
||||
make -j
|
||||
echo You are ready to preview VVC, view VVC information or convert from VVC using ffmpeg, ffplay and ffprobe.
|
||||
echo - Martin Eesmaa
|
47
o266player.md
Normal file
@ -0,0 +1,47 @@
|
||||
# Compatibility Windows Operating System (VLC Media Player v3.0.11.1, o266player build version)
|
||||
|
||||
Limitations:
|
||||
|
||||
Note to Mac and Linux of o266player VLC: Sorry Mac and Linux users :(, here is a why MacOS and Linux cannot run VLC o266player.
|
||||
|
||||
On macOS 10.15.6, I tried build, but it failed, you can have a look for Stack Overflow: [Link](https://stackoverflow.com/questions/70387126/error-1-and-2-trying-to-compile-vlc-o266player-missing-git-and-txt).
|
||||
|
||||
On Linux, it doesn't support 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 | :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 | :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 | :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)
|
||||
------- | ------- | --------- | --------- |
|
||||
Windows Server 2003 | ⚠️ (Terminal only, GUI is not working) | [Link](https://i.imgur.com/G7F2bif.png) | 19/02/2022 21:38:20 (AEDT)
|
||||
Windows Server 2008 | ⚠️ (GUI Works, but VVC won't show video) | [Link](https://i.imgur.com/GXFgIt8.png) | 20/02/2022 14:02:28 (AEDT)
|
||||
Windows Server 2012 | :white_check_mark: (All checked) | [Link](https://i.imgur.com/Vcgag8B.png) | 17/12/2021 20:57:16 (AEDT)
|
||||
Windows Server 2016 | :white_check_mark: (Already checked by Tencent Cloud)
|
||||
Windows Server 2019 | :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.
|
||||
|
||||
***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 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)
|
||||
|
||||
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
|
20
vvcbuildfraun/BuildforLinux.sh
Normal file
@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
echo Martin Eesmaa / VVC Compiler (vvenc and vvdec)
|
||||
echo We will check packages called: build-essential and cmake
|
||||
echo It will check, if the build-essential and cmake packages are installed or not.
|
||||
echo If it's already, it will update.
|
||||
echo If it's not installed, we will install automatically for you.
|
||||
echo.
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install build-essential cmake -y
|
||||
cd ~/Downloads
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvenc
|
||||
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-static" .. && make
|
||||
cd ../../
|
||||
cd vvdec
|
||||
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-static" .. && make
|
||||
cd ../../
|
||||
echo Please see the build files following starting with vvenc/bin/release-static
|
||||
pause
|
19
vvcbuildfraun/BuildforMacOS.sh
Normal file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
echo Martin Eesmaa / VVC Compiler (vvenc and vvdec)
|
||||
echo Please make sure your Xcode is installed on your Applications.
|
||||
echo.
|
||||
cd ~/Downloads
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvenc
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
cmake --build . -j $nproc
|
||||
cd ../
|
||||
cd vvdec
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
cmake --build . -j $nproc
|
||||
cd ../
|
||||
echo Please see the build files following starting with bin/release-static
|
||||
pause
|
93
vvcbuildfraun/BuildforWin.bat
Normal file
@ -0,0 +1,93 @@
|
||||
echo off
|
||||
pushd "%~dp0"
|
||||
cls
|
||||
|
||||
echo.
|
||||
echo :: Checking For Administrator Elevation...
|
||||
echo.
|
||||
timeout /t 1 /nobreak > NUL
|
||||
openfiles > NUL 2>&1
|
||||
if %errorlevel%==0 (
|
||||
echo Elevation found! Proceeding...
|
||||
) else (
|
||||
echo :: You are NOT running as Administrator
|
||||
echo.
|
||||
echo Right-click and select ^'Run as Administrator^' and try again.
|
||||
echo Press any key to exit...
|
||||
pause > NUL
|
||||
exit
|
||||
)
|
||||
|
||||
goto main123
|
||||
|
||||
:main123
|
||||
title VVENC AND VVDEC (Build for Windows) (Script by Martin Eesmaa)
|
||||
cls
|
||||
echo Do you want build of vvenc and vvdec yourself on your computer?
|
||||
echo Before you agree to build for Windows, you need Cmake and Visual Studio on your computer.
|
||||
echo Requires build to Windows VVC by Cmake 3.13.0+ (need pathed environment) and Visual Studio 2017 and later (requires Desktop C++ and only one individual component ML.NET Model Builder).
|
||||
echo Requires download VVEnc and VVDec for (Git for Windows).
|
||||
echo Yes means build. No means will exit the program.
|
||||
echo Y/N?
|
||||
set /p main1234= Answer:
|
||||
if %main1234% == Y goto installmain123
|
||||
if %main1234% == y goto installmain123
|
||||
if %main1234% == N goto exit
|
||||
if %main1234% == n goto exit
|
||||
|
||||
:installmain123
|
||||
title Building time...
|
||||
echo Building time...
|
||||
mkdir Windows && cd Windows
|
||||
echo Download VVENC and VVDEC from Fraunhoferhhi GitHub...
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
||||
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
||||
cd vvenc
|
||||
mkdir build && cd build
|
||||
cmake ..
|
||||
cmake --build . --config Release
|
||||
cd ../bin/release-static
|
||||
explorer .
|
||||
cd ../../../
|
||||
cd vvdec
|
||||
mkdir build && cd build
|
||||
cmake ..
|
||||
cmake --build . --config Release
|
||||
cd ..\bin\release-static
|
||||
explorer .
|
||||
cd ../../../../
|
||||
goto successnow
|
||||
|
||||
:successnow
|
||||
echo.
|
||||
echo.
|
||||
echo.
|
||||
echo Successfully build of vvenc and vvdec on your Windows.
|
||||
echo Do you want delete source of VVENC and VVDEC files? Y/N?
|
||||
echo.
|
||||
echo WARNING!!!: YOU HAVE TO COPY EXECUTABLE FILES BEFORE YOU DELETE SOURCE FILES
|
||||
echo BUG: The syntax of the command is incorrect for unknown error.
|
||||
echo To see .EXE files, go to Windows/vvenc/bin/release-static in Windows Explorer.
|
||||
set /p installmain1234= Answer:
|
||||
if %installmain1234% == Y goto deletesourcefiles
|
||||
if %installmain1234% == y goto deletesourcefiles
|
||||
if %installmain1234% == N goto otherwisenow
|
||||
if %installmain1234% == n goto otherwisenow
|
||||
|
||||
:deletesourcefiles
|
||||
title Cleaning up source files on VVENC and VVDEC on your computer...
|
||||
echo Cleaning up source files on VVENC and VVDEC on your computer...
|
||||
cd ../
|
||||
rmdir /s Windows
|
||||
goto otherwisenow
|
||||
|
||||
:otherwisenow
|
||||
title Thank you for enjoying my script... (Martin Eesmaa)
|
||||
echo Thank you for enjoying my script... (Martin Eesmaa)
|
||||
echo Make sure go to Martin Eesmaa's GitHub: https://github.com/MartinEesmaa
|
||||
echo Exiting...
|
||||
timeout 3
|
||||
exit
|
||||
|
||||
:exit
|
||||
exit
|