cdgriffith / FastFlix

FastFlix is a free GUI for H.264, HEVC and AV1 hardware and software encoding!
https://fastflix.org/
MIT License
1.12k stars 55 forks source link

Pyinstaller packaging to executable does not work on Arch Linux #271

Closed Nhunz closed 10 months ago

Nhunz commented 2 years ago

Hello,

As usual your pre-built binary won't run on Arch Linux derivatives. I tried to compile it using the build instructions you sent out a couple of versions ago. The compile process completes successfully but the resulting file still won't execute on my system. Looks like it has to do with the QT libraries. Can you please provide updated instructions to compile from source code for the latest version?

Thanks, Neal

cdgriffith commented 2 years ago

Not sure what the arch equivalent are for any required packages. https://github.com/cdgriffith/FastFlix/blob/master/.github/workflows/build.yaml#L30 those are the ones that were needed for Ubuntu.

Does it work without being packaged?

Nhunz commented 2 years ago

Yes it does work without being packaged. Here is the error message that the packaged version gives when I try and run it.

fastflix-core[43917] INFO Starting FastFlix 4.5.0 qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in "" This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

cdgriffith commented 2 years ago

https://github.com/cdgriffith/FastFlix/wiki/Common-questions-and-problems#qtqpaplugin-could-not-load-the-qt-platform-plugin-xcb-in--even-though-it-was-found is the knowledge I have on that issue so far, don't know what would fix it on arch specifically.

Nhunz commented 2 years ago

These are the instructions I followed to compile:

git clone https://github.com/cdgriffith/FastFlix.git 
    cd FastFlix
    # would suggest creating python venv for these packages 
    # python -m venv venv 
    # source ./venv/bin/activate 
    python -m pip install --upgrade pip setuptools --ignore-installed
    python -m pip install --upgrade wheel typing_extensions pyinstaller==4.3
    python -m pip install -r requirements.txt
    python -m pip install --upgrade pyqt5-tools
    cp $(python -c "import iso639; print(iso639.mapping.TABLE_PATH)") iso-639-3.tab
    cp $(python -c "import iso639; print(iso639.mapping.MAPPING_PATH)") iso-639-3.json
    pyinstaller FastFlix_Nix_OneFile.spec
    # File created at dist/FastFlix
brunogm0 commented 2 years ago

hi, im using the packaged version on Garuda Archlinux. My issue is on ERROR Could not run task Gather. Then maybe parsing ffmpeg config bugs?

bgm@optiplex9010 in ~/.local/share/FastFlix took 1m18s
λ ffmpeg                                                                                                                                                                                                                              (base) 
ffmpeg version n5.0 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 11.2.0 (GCC)
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-shared --enable-version3
libavutil      57. 17.100 / 57. 17.100
libavcodec     59. 18.100 / 59. 18.100
libavformat    59. 16.100 / 59. 16.100
libavdevice    59.  4.100 / 59.  4.100
libavfilter     8. 24.100 /  8. 24.100
libswscale      6.  4.100 /  6.  4.100
libswresample   4.  3.100 /  4.  3.100
libpostproc    56.  3.100 / 56.  3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'

bgm@optiplex9010 in ~/.local/share/FastFlix took 34ms
[🔴] × /home/bgm/Applications/FastFlix_4.7.1_linux_x86_64/FastFlix                                                                                                                                                                     (base) 
2022-03-26 15:45:42 optiplex9010 fastflix-core[4070422] INFO Starting FastFlix 4.7.1
2022-03-26 15:45:42 optiplex9010 fastflix[4070429] DEBUG Using config file fastflix.yaml
libGL error: MESA-LOADER: failed to open r600: /tmp/_MEI0KMGHP/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib/dri/r600_dri.so) (search paths /usr/lib/dri, suffix _dri)
libGL error: failed to load driver: r600
libGL error: MESA-LOADER: failed to open r600: /tmp/_MEI0KMGHP/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib/dri/r600_dri.so) (search paths /usr/lib/dri, suffix _dri)
libGL error: failed to load driver: r600
libGL error: MESA-LOADER: failed to open swrast: /tmp/_MEI0KMGHP/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib/dri/swrast_dri.so) (search paths /usr/lib/dri, suffix _dri)
libGL error: failed to load driver: swrast
2022-03-26 15:45:42 optiplex9010 fastflix[4070429] INFO Running command: /usr/bin/ffmpeg -version
2022-03-26 15:45:42 optiplex9010 fastflix[4070429] ERROR Could not run task Gather FFmpeg version with config version='4.7.1' config_path=PosixPath('fastflix.yaml') ffmpeg=PosixPath('/usr/bin/ffmpeg') ffprobe=PosixPath('/usr/bin/ffprobe')hdr10plus_parser=None nvencc=None vceencc=None output_directory=False source_directory=False output_name_format='{source}-fastflix-{rand_4}.{ext}' flat_ui=True language='eng' logging_level=10 crop_detect_points=10 continue_on_failure=True work_path=PosixPath('/home/bgm/.local/share/FastFlix') use_sane_audio=True selected_profile='Standard Profile' theme='onyx' disable_version_check=False disable_update_check=False disable_automatic_subtitle_burn_in=False custom_after_run_scripts=Box({}) profiles={'Standard Profile': Profile(profile_version=1, auto_crop=False, keep_aspect_ratio=True, fast_seek=True, rotate=0, vertical_flip=False, horizontal_flip=False, copy_chapters=True, remove_metadata=True, remove_hdr=False, encoder='HEVC (x265)', audio_filters=None, audio_language=None, audio_select=None, audio_select_preferred_language=None, audio_select_first_matching=None, subtitle_language=None, subtitle_select=None, subtitle_select_preferred_language=None, subtitle_automatic_burn_in=None, subtitle_select_first_matching=None, advanced_options=AdvancedOptions(video_speed=1, deblock=None, deblock_size=16, tone_map='hable', vsync=None, brightness=None, saturation=None, contrast=None,maxrate=None, bufsize=None, source_fps=None, output_fps=None, color_space=None, color_transfer=None, color_primaries=None, denoise=None, denoise_type_index=0, denoise_strength_index=0), x265=x265Settings(max_muxing_queue_size='1024', pix_fmt='yuv420p10le', extra='', extra_both_passes=False, preset='medium', intra_encoding=False, profile='default', tune='default', hdr10=False, hdr10_opt=False, dhdr10_opt=False, repeat_headers=False, aq_mode=2, hdr10plus_metadata='', crf=22, bitrate=None, x265_params=[], bframes=4, lossless=False, b_adapt=2, intra_refresh=False, intra_smoothing=True, frame_threads=0, name='HEVC (x265)'), x264=None, rav1e=None, svt_av1=None, vp9=None, aom_av1=None, gif=None, webp=None, copy_settings=None, ffmpeg_hevc_nvenc=None, nvencc_hevc=None, nvencc_avc=None, vceencc_hevc=None, vceencc_avc=None), 'UHD HDR10 Film': Profile(profile_version=1, auto_crop=True, keep_aspect_ratio=True, fast_seek=True, rotate=0, vertical_flip=False, horizontal_flip=False, copy_chapters=True, remove_metadata=True, remove_hdr=False, encoder='HEVC (x265)', audio_filters=None, audio_language=None, audio_select=None, audio_select_preferred_language=None, audio_select_first_matching=None, subtitle_language=None, subtitle_select=None, subtitle_select_preferred_language=None, subtitle_automatic_burn_in=None, subtitle_select_first_matching=None, advanced_options=AdvancedOptions(video_speed=1, deblock=None, deblock_size=16, tone_map='hable', vsync=None, brightness=None, saturation=None, contrast=None, maxrate=None, bufsize=None, source_fps=None, output_fps=None, color_space=None, color_transfer=None, color_primaries=None, denoise=None, denoise_type_index=0, denoise_strength_index=0), x265=x265Settings(max_muxing_queue_size='1024', pix_fmt='yuv420p10le', extra='', extra_both_passes=False, preset='slow', intra_encoding=False, profile='default', tune='default', hdr10=True, hdr10_opt=True, dhdr10_opt=False, repeat_headers=True, aq_mode=2, hdr10plus_metadata='', crf=18, bitrate=None, x265_params=[], bframes=4, lossless=False, b_adapt=2, intra_refresh=False, intra_smoothing=True, frame_threads=0, name='HEVC (x265)'), x264=None, rav1e=None, svt_av1=None, vp9=None, aom_av1=None, gif=None, webp=None, copy_settings=None, ffmpeg_hevc_nvenc=None, nvencc_hevc=None, nvencc_avc=None, vceencc_hevc=None, vceencc_avc=None), '1080p Film': Profile(profile_version=1, auto_crop=True, keep_aspect_ratio=True, fast_seek=True, rotate=0, vertical_flip=False, horizontal_flip=False, copy_chapters=True, remove_metadata=True, remove_hdr=False, encoder='AVC (x264)', audio_filters=None, audio_language=None, audio_select=None, audio_select_preferred_language=None, audio_select_first_matching=None, subtitle_language=None, subtitle_select=None, subtitle_select_preferred_language=None, subtitle_automatic_burn_in=None, subtitle_select_first_matching=None, advanced_options=AdvancedOptions(video_speed=1, deblock=None, deblock_size=16, tone_map='hable', vsync=None, brightness=None, saturation=None, contrast=None, maxrate=None, bufsize=None, source_fps=None, output_fps=None, color_space=None, color_transfer=None, color_primaries=None, denoise=None, denoise_type_index=0, denoise_strength_index=0), x265=None, x264=x264Settings(max_muxing_queue_size='1024', pix_fmt='yuv420p', extra='', extra_both_passes=False, preset='slow', profile='default', tune=None, crf=22, bitrate=None, name='AVC (x264)'), rav1e=None, svt_av1=None, vp9=None, aom_av1=None, gif=None, webp=None, copy_settings=None, ffmpeg_hevc_nvenc=None, nvencc_hevc=None, nvencc_avc=None, vceencc_hevc=None, vceencc_avc=None)} sane_audio_selection=BoxList(['aac', 'ac3', 'alac', 'dca', 'dts', 'eac3', 'flac', 'libfdk_aac', 'libmp3lame', 'libopus', 'libvorbis', 'libwavpack', 'snoicls', 'sonic', 'truehd', 'tta'])
Traceback (most recent call last):
File "fastflix/widgets/progress_bar.py", line 90, in run
task.command(config=self.app.fastflix.config, app=self.app, **task.kwargs)
File "fastflix/flix.py", line 156, in ffmpeg_configuration
raise FlixError(f'"{config.ffmpeg}" file not found')
fastflix.exceptions.FlixError: "/usr/bin/ffmpeg" file not found
2022-03-26 15:45:42 optiplex9010 fastflix[4070429] ERROR Exception in 'run': "/usr/bin/ffmpeg" file not found - args: (<fastflix.widgets.progress_bar.ProgressBar(0x306d200, name="ProgressBar") at 0x7f09e3cd1a80>,)
Traceback (most recent call last):
File "reusables/wrappers.py", line 285, in wrapper
File "fastflix/widgets/progress_bar.py", line 90, in run
task.command(config=self.app.fastflix.config, app=self.app, **task.kwargs)
File "fastflix/flix.py", line 156, in ffmpeg_configuration
raise FlixError(f'"{config.ffmpeg}" file not found')
fastflix.exceptions.FlixError: "/usr/bin/ffmpeg" file not found
2022-03-26 15:45:42 optiplex9010 fastflix[4070429] ERROR Could not start FastFlix!
Traceback (most recent call last):
File "fastflix/application.py", line 179, in start_app
ProgressBar(app, startup_tasks)
File "fastflix/widgets/progress_bar.py", line 61, in __init__
self.run()
File "reusables/wrappers.py", line 293, in wrapper
File "reusables/wrappers.py", line 285, in wrapper
File "fastflix/widgets/progress_bar.py", line 90, in run
task.command(config=self.app.fastflix.config, app=self.app, **task.kwargs)
File "fastflix/flix.py", line 156, in ffmpeg_configuration
raise FlixError(f'"{config.ffmpeg}" file not found')
fastflix.exceptions.FlixError: "/usr/bin/ffmpeg" file not found
2022-03-26 15:45:42 optiplex9010 fastflix-core[4070422] DEBUG Conversion worker shutting down
cdgriffith commented 2 years ago

@brunogm0 going to add logging to better understand this with next release. For now lets do a sanity check, what integer is returned for the return code:

ffmpeg -version > /dev/null && echo "$?"
brunogm0 commented 2 years ago

@brunogm0 going to add logging to better understand this with next release. For now lets do a sanity check, what integer is returned for the return code:

ffmpeg -version > /dev/null && echo "$?"

λ ffmpeg -version > /dev/null && echo "$?"
fish: $? is not the exit status. In fish, please use $status. ffmpeg -version > /dev/null && echo "$?" ^ λ ffmpeg -version > /dev/null && echo "$status"
0

brunogm0 commented 2 years ago

Hi, tried a new version FastFlix_4.10.0_ubuntu_22_x86_64 and it opened the GUI on the same Garuda Linux OS.

cdgriffith commented 10 months ago

I believe this issue is now resolved. Please re-open if still experiencing it.