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

vvencapp: The encoding process stopped at the beginning. #34

Open Niotferdi opened 8 months ago

Niotferdi commented 8 months ago

Describe the bug vvencapp: The encoding process stopped at the beginning.

To Reproduce Run the command ffmpeg -i cut_test.mkv -pix_fmt yuv420p -f yuv4mpegpipe - | vvencapp --y4m -i - --preset medium --qp 35 -o converted.266 The frame counter stops at a certain number (sometimes - 20, 40, 17, 23, 35), the file size specified in -o is 0 bytes and does not grow. No coding occurs.

Expected behavior I see how the counter of processed frames increases in the cmd output, and how the size of the output file increases.

Desktop (please complete the following information): Windows 10

Niotferdi commented 8 months ago

Tested it. I can use ffmpeg -i cut_test.mkv -pix_fmt yuv420p -f yuv4mpegpipe - | vvencapp --y4m -i - -r 24000/1001 -s 1920x1080 --preset medium --qp 35 -o converted.266 command, but I can't use ffmpeg -i cut_test.mkv -pix_fmt yuv420p -f yuv4mpegpipe - | vvencapp --y4m -i - -r 24000/1001 -s 1920x1080 --preset medium --qp 10 -o converted.266. HOWEVER, the only difference between them is --qp - 10 versus 35. 34 can already be used, like 35. But 20 cannot. Although valid values are from 0 to 63. What's the problem?

MartinEesmaa commented 8 months ago

Hi, @Niotferdi!

I don't know why the problem caused for the frame counter using some QP numbers, that's weird :/. Maybe you can give me a sample matroska file to me via GitHub or send me email martin.eesmaa@protonmail.com?

Also, I updated vvenc build if you want to try it again. https://github.com/MartinEesmaa/VVCEasy/commit/1662a7784d9b9d624c2128de7d1ae5dba5e0f76b

Niotferdi commented 8 months ago

During this time I conducted a couple of tests. --qp works fine, only --refreshsec with any value does not work, I use --intraperiod instead. I also need to specify -r 24000/1001 -s 1920x1080, otherwise nothing will happen.

However, copying video properties into cmd is not a problem for me. I noticed that keyframes need to be set manually, chosen at random. By randomly selecting a lucky number of frames, I will get a smaller file size. Numbers both larger and smaller than happy ones inflate the file size. Also, by specifying too high a value, frame backstep rewind does not work in my mpv. And about fps. You said that when dividing one number by another, you need to specify --fps instead of -r. It turns out I made a mistake. And what happened to my video?

My video is an anime segment. I don’t know if publishing it freely on the Internet is considered piracy (even publishing a 60-second segment). This is a clip from the first episode of Ergo Proxy to avoid spoilers.