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

MPV player and FFmpeg don't work on my old Sandy Bridge cpu #16

Closed ZenKiyoshi closed 1 year ago

ZenKiyoshi commented 1 year ago

I try MPV and FFmpeg on AMD R5 3600 system, and they work perfectly.

But on my old Sandy Bridge system, they show error message. mpv-easy error

It's i5 2500S cpu.

Both system run Window 10.

MartinEesmaa commented 1 year ago

@ZenKiyoshi, thanks for your reply!

I'm claiming that you ran perfect of MPV and FFmpeg on your AMD processor, I have same perfect work with my AMD R7 5800H. But on your old computer of Intel CPU, it did not work.

I noticed that Intel CPU users cannot run on MPV/FFmpeg vvc build, because I used MinGW to compile FFmpeg and MPV too with my AMD processor, but I don't have an Intel laptop :(.

So I might use cross compilation on Windows in Linux, but my cross compilation is failed and it doesn't build for compile reason, see my GitHub actions of my self-hosted server: https://github.com/MartinEesmaa/mpv-vvc/runs/7154237122?check_suite_focus=true

Error:

sh: 1: x86_64-w64-mingw32-gcc -E -xc-header -DRC_INVOKED -MMD -MF libavdevice/avdeviceres.d -MT libavdevice/avdeviceres.o: not found
CC  libavformat/aadec.o
x86_64-w64-mingw32-windres: preprocessing failed.
make: *** [/home/martineesmaa/actions-runner/_work/mpv-vvc/mpv-vvc/ffmpeg/ffbuild/common.mak:93: libavdevice/avdeviceres.o] Error 1
make: *** Waiting for unfinished jobs....
Error: Process completed with exit code 2.

I might try again and try to learn cross compilation of Windows in Linux...

MartinEesmaa commented 1 year ago

@ZenKiyoshi, can you confirm that you tried latest FFmpeg (gyan.dev build) on your old Sandy Bridge system? If works, I can fix with adding static and arch too.

ZenKiyoshi commented 1 year ago

My old Sandy Bridge system can use FFmpeg (latest, gyan.dev) ffmpeg

MartinEesmaa commented 1 year ago

@ZenKiyoshi, seems the gyan.dev version worked on your old Sandy Bridge system. Might be issue of vvenc & vvdec might not static, I'll fix to build static of vvenc and vvdec and add static to FFmpeg. Here is my log, but my MINGW MSYS2 made me slow compilation today:

./configure --arch=x86_64 --enable-gpl --enable-version3 --enable-libvvenc --enable-libvvdec --enable-static --enable-libxml2 --enable-libaom --enable-libx264 --enable-libx265 --enable-libvpx --enable-libsvtav1 --enable-libopus --enable-zlib --extra-libs='-lpthread -lm -lz' --extra-ldexeflags=-static --pkg-config-flags=-static --disable-w32threads
install prefix            /usr/local
source path               .
C compiler                gcc
C library                 mingw64
ARCH                      x86 (generic)
big-endian                no
runtime cpu detection     yes
standalone assembly       yes
x86 assembler             nasm
MMX enabled               yes
MMXEXT enabled            yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
AESNI enabled             yes
AVX enabled               yes
AVX2 enabled              yes
AVX-512 enabled           yes
XOP enabled               yes
FMA3 enabled              yes
FMA4 enabled              yes
i686 features enabled     yes
CMOV is fast              yes
EBX available             yes
EBP available             yes
debug symbols             yes
strip symbols             yes
optimize for size         no
optimizations             yes
static                    yes
shared                    no
postprocessing support    yes
network support           yes
threading support         pthreads
safe bitstream reader     yes
texi2html enabled         no
perl enabled              yes
pod2man enabled           yes
makeinfo enabled          yes
makeinfo supports HTML    yes
MartinEesmaa commented 1 year ago

@ZenKiyoshi, I made static build of FFmpeg VVC build, but two DLL required to run executable files.

I tested this build with my AMD processor, works fine. For Intel CPU, I haven't tested and don't have it.

Link: https://mega.nz/file/T982HBpb#Gx1A75XPzSLsuvyq7ZSj9WULBDmm1UdGnyox-JjfmD4

ZenKiyoshi commented 1 year ago

@ZenKiyoshi, I made static build of FFmpeg VVC build, but two DLL required to run executable files.

I tested this build with my AMD processor, works fine. For Intel CPU, I haven't tested and don't have it.

Link: https://mega.nz/file/T982HBpb#Gx1A75XPzSLsuvyq7ZSj9WULBDmm1UdGnyox-JjfmD4

  • Martin Eesmaa

The new build seem good, my Intel Sandy Bridge cpu run fine, both encode and decode. (also AMD system) vvceasy-ffmpeg vvceasy-ffplay

MartinEesmaa commented 1 year ago

@ZenKiyoshi, thanks for checking with my new static build of FFmpeg VVC version. I'll release the version and make important note for older builds of FFmpeg VVC, that it needs to be updated, so now Intel users can run well. MPV build will come soon later during my vacation.

MartinEesmaa commented 1 year ago

And MPV is now last to go.... and it should be complete.

MartinEesmaa commented 1 year ago

@ZenKiyoshi good news, FFmpeg VVC version and MPV VVC version is now fixed and updated versions. Can you confirm does MPV player VVC version work on your Intel Sandy Bridge?

ZenKiyoshi commented 1 year ago

Missing postproc-55.dll, happens both Intel and AMD. vvceasy-mpv-error

MartinEesmaa commented 1 year ago

Sorry, I thought worked on my computer of Windows 11, here is a fix again:

https://mega.nz/file/KhlSzbBQ#uhyFwOPKFrssHweqXozS7B8iZxWtf0oX2o_jrY__rhQ

and I forgot to enable gnutls on ffmpeg shared before mpv build.

postproc-55.dll => /mingw64/bin/postproc-55.dll (0x7ffc01750000)
MartinEesmaa commented 1 year ago

@ZenKiyoshi, here is my proof screenshot:

proofofwindows10newmpv

ZenKiyoshi commented 1 year ago

It works finally, both Intel and AMD.

vvceasy-mpv

MartinEesmaa commented 1 year ago

Nice, @ZenKiyoshi! Thanks for finding the bug! :)

Have a nice day!