Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Windows] Build - and not only - issues #15

Open
MarcoRavich opened this issue Aug 30, 2023 · 15 comments
Open

[Windows] Build - and not only - issues #15

MarcoRavich opened this issue Aug 30, 2023 · 15 comments

Comments

@MarcoRavich
Copy link

Hi there,
since the provided exe won't run on my W11x64 system, I've asked John Edwards (aka John33, the dev behind RareWares) to build an optimized - ICL 19 - bin and here's his reply about:

Bit of a puzzle, really! The 'make-solutions.bat' file generates a VisualStudio sln file that loads into VS and compiles but the resulting executable does nothing. I'm not convinced that all the necessary code is included. I tried to link to the dll that is provided, but that doesn't appear to work either. I can't generate a usable output file even using the exe that is provided but that could be me not generating a suitable input file correctly!

...can you help to fix the problem?

Thanks in advance.

@pigpeppa
Copy link
Owner

pigpeppa commented Aug 30, 2023 via email

@MarcoRavich
Copy link
Author

Wow, thanks for the lightning-fast reply !

There are two ways to run xin26x

  1. Directly to run pre-built xin26x_test.exe under testbin folder.

My W11x64 system won't run it 'cause claims - with a popup Windows system message (not a commandline error, to be clear) - that it's not compatible (is it a x32 build ?).

BTW, is it mandatory to place the file in a folder called "testbin" ?

Thanks again.

@pigpeppa
Copy link
Owner

pigpeppa commented Aug 30, 2023 via email

@MarcoRavich
Copy link
Author

Ok, I finally encoded my 1st video.

Here's the commandline and log:

C:\testbin>xin26x_test -i test.y4m -a 0 -p 3 -T 0 -o out.y4m

STATUS: Xin26x lib build date: Aug 18 2023 21:23:17
STATUS: yuv size 1280x720 fps:30.000 frame num:500
STATUS: algorithm:0 encoder mode:3 rdoq:0 screen mode:0
STATUS: smp:0 mctf:1 sao:1 deblock:1 alf:1
STATUS: tmvp:1 mctf:1 cclm:0 dmvr:1
STATUS: sbTmvp:0 affine:0 mts:0 sign bit hidden:1
STATUS: ctuSize:64, minCuSize:8, minQtSize:8, maxBtSize:64, maxTtSize:64
STATUS: rc mode:5 target bit:1000000
STATUS: b frame num:15 ref num:3
STATUS: thread num:4 wpp:1 fpp:1
Start coding...
500 frames encoded, coding speed fps:43.2227 bitrate: 1100.84 kbps.
Complete coding.

Performance is quite nice - considering that the encode has been executed on i3-4160 - but the result seems "uncorrect":

SOURCE: https://media.xiph.org/video/derf/y4m/ducks_take_off_420_720p50.y4m

OUTPUT: https://raw.githubusercontent.com/forart/HyMPS/main/out.y4m

...can you explain what's wrong with this commandline ? Thanks !

note: it would be nice to link test files for newbie users (https://media.xiph.org/video/derf/)

@pigpeppa
Copy link
Owner

pigpeppa commented Aug 31, 2023 via email

@pigpeppa
Copy link
Owner

pigpeppa commented Aug 31, 2023 via email

@MarcoRavich
Copy link
Author

MarcoRavich commented Aug 31, 2023

xin26x only supports yuv420 raw yuv file. It does not support y4m file.

Can you please point me to some suitable files - among those available at https://media.xiph.org/video/ - to perform encoding tests ?

note: it could be useful to list suitable files @ xin26x's readme.md

@pigpeppa
Copy link
Owner

pigpeppa commented Aug 31, 2023 via email

@MarcoRavich
Copy link
Author

MarcoRavich commented Sep 1, 2023

Ok, did more encoding tests using - as suggested - that "stripped" .yuv input file so here's my feedback:

  1. encoder goes in a "deadlock" state if -b parameter is set.
    Example: xin26x_test -i test.yuv -a 0 -p 3 -T 0 -F 1 -W 1 --lookAhead 100 -b 1500 -o out.yuv
  2. the -q parameter doesn't affect the result the output, regardless the value set;
  3. it slows down high framerate inputs (doesn't decimate correctly);

Hope that helps.

@pigpeppa
Copy link
Owner

pigpeppa commented Sep 1, 2023 via email

@pigpeppa
Copy link
Owner

pigpeppa commented Sep 1, 2023 via email

@MarcoRavich
Copy link
Author

MarcoRavich commented Sep 1, 2023

forart: it slows down high framerate inputs (doesn't decimate correctly);
Peppa: I do not quite understand your meaning.

Here's the encoded result: https://raw.githubusercontent.com/forart/HyMPS/main/out50.yuv

(commandline used: xin26x_test -i test.yuv -a 0 -p 3 -T 0 -F 1 -W 1 -w 1280 -h 720 -f 50 -d 1 --lookAhead 100 -r 1 -b 1500000 -o out50.yuv)

As you can see, it's NOT 50fps (nor decimated 25fps), but same numeber of frames slowed down.

Thanks for your help.

@pigpeppa
Copy link
Owner

pigpeppa commented Sep 1, 2023 via email

@MarcoRavich
Copy link
Author

MarcoRavich commented Sep 2, 2023

It works inside MKV container (muxed using MKVToolNix) too: https://raw.githubusercontent.com/forart/HyMPS/main/outHQ.mkv

So here's last 2 questions:

  1. Is this the best bitrate-based HEVC commandline to achieve both speed and quality ? Any suggestion to squeeze more ?
    xin26x_test -i test.yuv -a 0 -p 6 -T 0 -wpp 1 -fpp 1 -w 1280 -h 720 -f 50 -d 1 --lookAhead 100 -r 1 -b 1750000 -o out.yuv
  2. Can xin26x be used by piping ffmpeg/ffplay into it to get rid of ffmpeg -i example.y4m test.yuv ?

Thanks again.

note: I've added xin26x under HyMPS \ VIDEO \ Tools - Encoders

@pigpeppa
Copy link
Owner

pigpeppa commented Sep 4, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants