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

Release Linux binary without pipewire #44

Closed waarmond closed 1 month ago

waarmond commented 2 months ago

Is your feature request related to a problem? Please describe. At https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md there is only a Linux appImage. On ArchLinux appImages fail with an memory access error: 3294295: __vdso_time

Therefore I've extracted it. I avoid GStreamer and PipeWire, but you've compiled against libpipewire.

Describe the solution you'd like May you please be so kind to produce a non-pipewire build? (On a static built meant for VVC playback none of the extra capabilities of PipeWire like streaming seem necessary. PipeWire itself can't output audio without using either ALSA, PulseAudio or JACK. ALSA and PulseAudio may be used directly and can be required for users wanting to play videos.)

Keeping the libraries compatible is my responsibility. For ArchLinux or Gentoo users this works well over years.

Describe alternatives you've considered Compiling https://github.com/MartinEesmaa/FFmpeg-VVC for myself. Failed so far due to LTO issues with https://github.com/fraunhoferhhi/vvdec

Additional context Olge nii lahke!

MartinEesmaa commented 2 months ago

Hello, @waarmond! Thank you for bringing the information got there.

Hmm, that's weird that you claiming ArchLinux appimage fail with an memroy access error :/.

Therefore I've extracted it. I avoid GStreamer and PipeWire, but you've compiled against libpipewire.

Well, yes it compiled against libpipewire. After FFmpeg compilation, the final thing is to build MPV custom build by meson with default commands, including customized commands on my forked repository. Before building mpv, it chooses default automatically to detect is PipeWire found or not.

You can check the mesa_options in mpv: https://github.com/mpv-player/mpv/blob/master/meson_options.txt

If you would like to get non-pipewire build, I can build non-pipewire by disabling command of mpv build compilation in meson by -Dpipewire=disabled.

Compiling https://github.com/MartinEesmaa/FFmpeg-VVC for myself. Failed so far due to LTO issues with https://github.com/fraunhoferhhi/vvdec

It may cause fail that libvvdec is not found on FFmpeg, when libvvdec is already built using LTO default on. So you need to recompile vvdec by disabling LTO on CMake or Makefile:

CMake on build directory of vvdec (vvdec/build): cmake -DCMAKE_BUILD_TYPE=Release -DVVDEC_ENABLE_LINK_TIME_OPT=OFF ..

Makefile on source directory of vvdec: make install-release disable-lto

I will try to compile MPV without PipeWire and post new comment with non-pipewire build link.

Feel free to reply or ask question to me. :) Thanks!

Regards

MartinEesmaa commented 2 months ago

Hi, @waarmond! I compiled two builds of Linux and Arch Linux without libpipewire enabled. It is disabled libpipewire on mpv of meson options.

Here's for you two builds of Linux and Arch Linux without PipeWire:

Linux: https://mega.nz/file/L51jwJID#mjIywhDb543d4jaLuyUboQgPPG42iIRfrz-0R6JnoWA Arch Linux: https://mega.nz/file/W811FAYb#XfQSBzOtL2WD0R6fpRpM3g7N_AkKYGDv-iMF75cbWJQ

Feel free to reply or ask question to me. Thank you! :)

Regards

MartinEesmaa commented 1 month ago

Closing issue due to the inactivity, no responses heard after my previous comment. Feel free to reopen the issue if you like. Thanks! :)

Sincerely, Martin Eesmaa