MartinEesmaa / VVCEasy

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://martineesmaa.org/en/vvceasy
MIT License
145 stars 15 forks source link

How to encode VVC video like HEVC #25

Closed harinitw closed 11 months ago

harinitw commented 1 year ago

good afternoon sir, I installed VVC software, according to your youtube video. I have a small doubt regarding VVC encoding , how to find encoding time bit rate, and psnr like HEVC. In HEVC HM software it shows VC2010, VC21015, VC2016, etc. like HM can we run VVC? thanks in advance sir..

MartinEesmaa commented 1 year ago

Hello, @harinitw! Thank you for your reply!

To find encoding time bitrate and PSNR in VVC, you need to encode sample video file to get results, but it's only XPSNR calculation for vvencapp tools. Here is my example final result of message:

started @ Sat Apr  1 13:38:35 2023
        Total Frames |   Bitrate     Y-PSNR    U-PSNR    V-PSNR    YUV-PSNR
              300    a    7580.0560   34.9054   41.8351   43.4788   36.2365
finished @ Sat Apr  1 13:40:10 2023

Total Time: 95.045 sec. Fps(avg): 3.156 encoded Frames 300

vvencapp reports XPSNR of value 36.2365, but we will use FFmpeg to show PSNR result:

Please note: Raw bitstreams of VVC may result wrong calculation, use mp4box to get real PSNR result: mp4box -add yourfile.266 -new vvc.mp4.

ffmpeg_vvceasy -i original.mp4 -i vvc.mp4 -filter_complex psnr -f null -

Result:
[Parsed_psnr_0 @ 0000025c61f73e40] PSNR y:34.852036 u:41.840254 v:43.497804 average:36.261995 min:33.887332 max:40.456512

If you're looking VVC VTM (VVC Test Model), you can checkout source code of VVC VTM: https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM, but it's experts only of a lot commands, nightly day commits and the compiler requires VC2017+ or GCC to build VVC VTM softwares. More information can be found: https://jvet.hhi.fraunhofer.de/

TIP for calculation of VMAF (easy):

ffmpeg_vvceasy -i original.mp4 -i vvc.mp4 -filter_complex libvmaf -f null -

Update: You could also check Multicoreware is developing and release x266 encoder in Q2 2023: https://multicorewareinc.com/faq-x266-webinar/ Update 2: Now the libvmaf is merged with my new FFmpeg build https://github.com/MartinEesmaa/VVCEasy/commit/39f09eda995163bfa3d47df0fbacc45942bb0420

If you have any issue or question, please let me know. Thank you! :)

harinitw commented 1 year ago

sir I successfully encoded a video with the HM programme, but I ran into trouble with the VVC encoding, sir. I watched your YouTube video and built the folder and opened the ALL_BUILD solution file as instructed. I've included a errors of the build solution where the RUN tests issue appeared when I was building the solution. Please explain the process for include configuration files in command parameters. Sincere gratitude, sir

7/43 Test #7: Test_vvenclibtest-timestamps ..................... Passed 60.92 sec 3> Start 8: Test_vvencapp-tooltest 3> 8/43 Test #8: Test_vvencapp-tooltest ...........................Exception: Illegal 5.66 sec 3> Start 9: Test_vvencFFapp-tooltest 3> 9/43 Test #9: Test_vvencFFapp-tooltest .........................Exception: Illegal 6.10 sec 3> Start 10: Test_compare_output-tooltest 3>Failed test dependencies: Test_vvencFFapp-tooltest Test_vvencapp-tooltest 3>10/43 Test #10: Test_compare_output-tooltest .....................Not Run 0.00 sec 3> Start 11: Test_vvencFFapp-tooltest-Scalar 3>11/43 Test #11: Test_vvencFFapp-tooltest-Scalar .................. Passed 10.21 sec 3> Start 12: Test_compare_output-tooltest-Scalar 3>Failed test dependencies: Test_vvencapp-tooltest 3>12/43 Test #12: Test_compare_output-tooltest-Scalar ..............Not Run 0.00 sec 3> Start 13: Test_vvencFFapp-tooltesttrans 3>13/43 Test #13: Test_vvencFFapp-tooltesttrans ....................Exception: Illegal 0.49 sec 3> Start 14: Test_output-tooltesttrans 3>Failed test dependencies: Test_vvencFFapp-tooltesttrans 3>14/43 Test #14: Test_output-tooltesttrans ........................Not Run 0.00 sec 3> Start 15: Test_vvencapp-faster 3>15/43 Test #15: Test_vvencapp-faster ............................. Passed 0.70 sec 3> Start 16: Test_vvencFFapp-faster 3>16/43 Test #16: Test_vvencFFapp-faster ........................... Passed 0.80 sec 3> Start 17: Test_compare_output-faster 3>17/43 Test #17: Test_compare_output-faster ....................... Passed 0.03 sec 3> Start 18: Test_vvencapp-fast 3>18/43 Test #18: Test_vvencapp-fast ............................... Passed 1.23 sec 3> Start 19: Test_vvencFFapp-fast 3>19/43 Test #19: Test_vvencFFapp-fast ............................. Passed 1.29 sec 3> Start 20: Test_compare_output-fast 3>20/43 Test #20: Test_compare_output-fast ......................... Passed 0.02 sec 3> Start 21: Test_vvencFFapp-transcoding 3>21/43 Test #21: Test_vvencFFapp-transcoding ...................... Passed 0.49 sec 3> Start 22: Test_output-transcoding 3>22/43 Test #22: Test_output-transcoding .......................... Passed 0.02 sec 3> Start 23: Test_vvencapp-medium 3>23/43 Test #23: Test_vvencapp-medium .............................Exception: Illegal 2.32 sec 3> Start 24: Test_vvencFFapp-medium 3>24/43 Test #24: Test_vvencFFapp-medium ...........................Exception: Illegal 2.30 sec 3> Start 25: Test_compare_output-medium 3>Failed test dependencies: Test_vvencFFapp-medium Test_vvencapp-medium 3>25/43 Test #25: Test_compare_output-medium .......................Not Run 0.00 sec 3> Start 26: Test_vvencapp-slow 3>26/43 Test #26: Test_vvencapp-slow ............................... Passed 5.78 sec 3> Start 27: Test_vvencFFapp-slow 3>27/43 Test #27: Test_vvencFFapp-slow ............................. Passed 5.99 sec 3> Start 28: Test_compare_output-slow 3>28/43 Test #28: Test_compare_output-slow ......................... Passed 0.02 sec 3> Start 29: Test_vvencapp-medium_noqpa_0thr 3>29/43 Test #29: Test_vvencapp-medium_noqpa_0thr ..................Exception: Illegal 1.64 sec 3> Start 30: Test_vvencFFapp-medium_noqpa_0thr 3>30/43 Test #30: Test_vvencFFapp-medium_noqpa_0thr ................Exception: Illegal 1.73 sec 3> Start 31: Test_compare_output-medium_noqpa_0thr 3>Failed test dependencies: Test_vvencFFapp-medium_noqpa_0thr Test_vvencapp-medium_noqpa_0thr 3>31/43 Test #31: Test_compare_output-medium_noqpa_0thr ............Not Run 0.00 sec 3> Start 32: Test_vvencFFapp-lowdelay_medium_enc 3>32/43 Test #32: Test_vvencFFapp-lowdelay_medium_enc ..............Exception: Illegal 3.34 sec 3> Start 33: Test_vvencFFapp-lowdelay_medium_dec 3>Failed test dependencies: Test_vvencFFapp-lowdelay_medium_enc 3>33/43 Test #33: Test_vvencFFapp-lowdelay_medium_dec ..............Not Run 0.00 sec 3> Start 34: Test_vvencapp-medium_rc2p 3>34/43 Test #34: Test_vvencapp-medium_rc2p ........................ Passed 3.33 sec 3> Start 35: Test_vvencFFapp-medium_rc2p 3>35/43 Test #35: Test_vvencFFapp-medium_rc2p ...................... Passed 2.87 sec 3> Start 36: Test_compare_output-medium_rc2p 3>36/43 Test #36: Test_compare_output-medium_rc2p .................. Passed 0.02 sec 3> Start 37: Test_vvencFFapp-medium_rc2p_statsFile1_exp 3>37/43 Test #37: Test_vvencFFapp-medium_rc2p_statsFile1_exp ....... Passed 0.47 sec 3> Start 38: Test_vvencFFapp-medium_rc2p_statsFile2_exp 3>38/43 Test #38: Test_vvencFFapp-medium_rc2p_statsFile2_exp ....... Passed 2.80 sec 3> Start 39: Test_compare_output-medium_rc2p_statsFile_exp 3>39/43 Test #39: Test_compare_output-medium_rc2p_statsFile_exp .... Passed 0.02 sec 3> Start 40: Test_vvencapp-medium_rc2p_statsFile1_easy 3>40/43 Test #40: Test_vvencapp-medium_rc2p_statsFile1_easy ........ Passed 0.47 sec 3> Start 41: Test_vvencapp-medium_rc2p_statsFile2_easy 3>41/43 Test #41: Test_vvencapp-medium_rc2p_statsFile2_easy ........ Passed 2.86 sec 3> Start 42: Test_compare_output-medium_rc2p_statsFile_easy 3>42/43 Test #42: Test_compare_output-medium_rc2p_statsFile_easy ... Passed 0.02 sec 3> Start 43: Cleanup_remove_temp_files 3>43/43 Test #43: Cleanup_remove_temp_files ........................ Passed 0.02 sec 3> 3>67% tests passed, 14 tests failed out of 43 3> 3>Total Test time (real) = 146.58 sec 3> 3>The following tests FAILED: 3> 8 - Test_vvencapp-tooltest (ILLEGAL) 3> 9 - Test_vvencFFapp-tooltest (ILLEGAL) 3> 10 - Test_compare_output-tooltest (Not Run) 3> 12 - Test_compare_output-tooltest-Scalar (Not Run) 3> 13 - Test_vvencFFapp-tooltesttrans (ILLEGAL) 3> 14 - Test_output-tooltesttrans (Not Run) 3> 23 - Test_vvencapp-medium (ILLEGAL) 3> 24 - Test_vvencFFapp-medium (ILLEGAL) 3> 25 - Test_compare_output-medium (Not Run) 3> 29 - Test_vvencapp-medium_noqpa_0thr (ILLEGAL) 3> 30 - Test_vvencFFapp-medium_noqpa_0thr (ILLEGAL) 3> 31 - Test_compare_output-medium_noqpa_0thr (Not Run) 3> 32 - Test_vvencFFapp-lowdelay_medium_enc (ILLEGAL) 3> 33 - Test_vvencFFapp-lowdelay_medium_dec (Not Run)

MartinEesmaa commented 1 year ago

@harinitw, thank you for your response. Sorry for a long wait time.

Anyway, I'm not kinda sure if you tick check on for ALL_BUILD on Visual Studio, it may be tests wrong or errors, years ago I did default check on ALL_BUILD on my visual studio and did not success for some reason. You can ignore "ALL_BUILD" error message for your option, because it builds all executable files.

For tests, run vvencinterfacetest.exe and vvenclibtest.exe for vvenc tests if it's optional for you to test it out.

But if you want to still report failed tests for your necessary, you can create issue to vvenc or vvdec of Fraunhofer HHI.

MartinEesmaa commented 11 months ago

I have to close the issue, because it was generated CMake projects like ALL_BUILD and ZERO_CHECK. ALL_BUILD is reference to make all. See more information: https://cmake.cmake.narkive.com/1h5gz55b/all-build-and-zero-check

Feel free to reopen the issue.

Thank you! :)

Sincerely