Skip to main content

Log in to comment and vote

Comments8

  • Hugo Baldwin

    Team•

    Mar 19

    Pinned

    Unofficial but can be installed via the install script:

    curl -fsSL https://hosaka.studio/install.sh | bash

  • Hugo Baldwin

    Team•

    Mar 19

    Pinned

    The various flatpak permissions issues when combined with Wayland’s security model and too painful to resolve - it’s simpler to just package the app for Arch … and this will also provide better performance than Flatpak.

  • Sujal Gurung

    •

    Mar 20

    Thanks! Tested and the arch version still logs the same error about va-api

    06:51:27.796 INFO hosaka.pipeline.encoder:174 - Detected GPU type: amd 06:51:28.074 DEBUG hosaka.core.codec_check:105 - CPU encoder probe succeeded: libx264 06:51:28.074 DEBUG hosaka.core.codec_check:105 - CPU encoder probe succeeded: libx264 06:51:28.074 DEBUG hosaka.core.codec_check:174 - Detected H.264 encoders: {'libx264': True, 'libopenh264': False, 'h264_vaapi': True} 06:51:28.074 DEBUG hosaka.core.codec_check:174 - Detected H.264 encoders: {'libx264': True, 'libopenh264': False, 'h264_vaapi': True} 06:51:28.075 DEBUG hosaka.core.ffmpeg:176 - Running VAAPI runtime probe... 06:51:28.246 DEBUG hosaka.core.ffmpeg:124 - VAAPI runtime probe failed (exit 234): enc:h264_vaapi @ 0x556debfaa480] Could not open encoder before EOF [vost#0:0/h264_vaapi @ 0x556debfaa000] Task finished with error code: -22 (Invalid argument) [vost#0:0/h264_vaapi @ 0x556debfaa000] Terminating thread with return code -22 (Invalid argument) [out#0/null @ 0x556debfa9c80] Nothing was written into output file, because at least one of its streams received no packets. frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A elapsed=0:00:00.00 Conversion failed!
    06:51:28.247 WARNING hosaka.core.ffmpeg:190 - VAAPI runtime probe failed. AMD GPU detected - ensure 'mesa-va-drivers' is installed. Falling back to CPU encoding. 06:51:28.247 INFO hosaka.pipeline.encoder:180 - Auto-detected encoder: CPU for codec H264

    Gemini Pro had this to say:

    This tells them exactly what they need to fix in their Python code (hosaka.core.ffmpeg:124):

    Update on the -22 Error: The native Arch build throws the exact same -22 (Invalid argument) on the h264_vaapi probe. This confirms it is not a Flatpak/sandbox issue.

    AMD's radeonsi VA-API encoder is highly strict. The probe command in hosaka.core.ffmpeg is likely failing for one of these three reasons:

    1. Rate Control: AMD's VA-API often rejects standard -crf parameters. It usually requires explicit rate control like -rc_mode CQP -qp 20 or standard -b:v bitrates.

    2. Pixel Format: The probe might be missing the explicit video filter chain to move the frames into hardware memory: -vf format=nv12,hwupload. AMD strictly requires NV12 for basic VA-API H.264.

    3. Resolution: If the probe is testing with an odd-numbered resolution (e.g., 1920x1079), AMD will instantly reject it. It requires dimensions to be divisible by 2 (and ideally 16).

    It told me to test GPU encoding using this command, which ran properly so it concluded that the problem might be with Hosaka itself

    ffmpeg -vaapi_device /dev/dri/renderD128 -f lavfi -i testsrc=duration=1:size=1280x720:rate=30 -vf "format=nv12,hwupload" -c:v h264_vaapi -f null -

    Gemini Pro noticed that app now has access to “libx264 (the gold standard CPU encoder), whereas the Flatpak was stuck with the slightly worse openh264". So for now, even with CPU encoding, the export is faster and the quality seems to look better.

    • Hugo Baldwin

      Team•

      Mar 20

      I fed your report and Gemini’s analysis to Claude which had this to say:


      The issue was in Hosaka's VAAPI runtime probe, not in the encoding pipeline itself (which is why your manual ffmpeg command worked fine). Two problems were found:

      1. -vaapi_device ordering — The probe was specifying the VAAPI device after the input (-i), but FFmpeg requires it to come before so the hardware context is established before stream processing begins. This is confirmed across FFmpeg docs and AMD-specific guides.

      2. Missing rate control — The probe had no explicit rate control parameter, while AMD's radeonsi encoder expects one. Adding -qp 20 (matching what the actual encoder already uses) makes the probe consistent with AMD's requirements.

      Both fixes are going out in the next release. Once updated, VAAPI should be detected and used automatically on your system — you should see GPU encoding in the logs instead of the CPU fallback.


      … 🙄 third time lucky? This fix is in v0.1.128. At least this explains why the issue occurs for you (on AMD) and not for me - the three laptops I’ve been testing on are all Intel.

      • Sujal Gurung

        •

        Mar 20

        … 🙄 third time lucky?

        Let’s hope so :D

        the three laptops I’ve been testing on are all Intel.

        Now we just need an Nvidia user to come in and report bugs

      • Sujal Gurung

        •

        Mar 20

        Hmm still no luck.

        08:09:22.628 INFO hosaka.pipeline.encoder:174 - Detected GPU type: amd
        08:09:23.155 DEBUG hosaka.core.codec_check:105 - CPU encoder probe succeeded: libx264
        08:09:23.156 DEBUG hosaka.core.codec_check:174 - Detected H.264 encoders: {'libx264': True, 'libopenh264': False, 'h264_vaapi': True}
        08:09:23.156 DEBUG hosaka.core.ffmpeg:178 - Running VAAPI runtime probe...
        08:09:23.194 DEBUG hosaka.core.codec_check:105 - CPU encoder probe succeeded: libx264
        08:09:23.194 DEBUG hosaka.core.codec_check:174 - Detected H.264 encoders: {'libx264': True, 'libopenh264': False, 'h264_vaapi': True}
        08:09:23.548 DEBUG hosaka.core.ffmpeg:126 - VAAPI runtime probe failed (exit 234): enc:h264_vaapi @ 0x55f732c79400] Could not open encoder before EOF
        [vost#0:0/h264_vaapi @ 0x55f732c78fc0] Task finished with error code: -22 (Invalid argument)
        [vost#0:0/h264_vaapi @ 0x55f732c78fc0] Terminating thread with return code -22 (Invalid argument)
        [out#0/null @ 0x55f732c78c40] Nothing was written into output file, because at least one of its streams received no packets.
        frame=    0 fps=0.0 q=0.0 Lsize=       0KiB time=N/A bitrate=N/A speed=N/A elapsed=0:00:00.00
        Conversion failed!
        
        08:09:23.550 WARNING hosaka.core.ffmpeg:192 - VAAPI runtime probe failed. AMD GPU detected - ensure 'mesa-va-drivers' is installed. Falling back to CPU encoding.
        08:09:23.550 INFO hosaka.pipeline.encoder:180 - Auto-detected encoder: CPU for codec H264

        I had gotten some permission warnings when updating. Not sure if that would prevent it from working

        warning: directory permissions differ on /opt/hosaka-studio/lib/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av-17.0.0.dist-info/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av-17.0.0.dist-info/licenses/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av-17.0.0.dist-info/sboms/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av.libs/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av/audio/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av/codec/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av/container/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av/filter/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av/sidedata/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av/subtitles/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/av/video/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/bin/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/cffi-2.0.0.dist-info/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/cffi-2.0.0.dist-info/licenses/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/cffi/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/dbus_fast-4.0.0.dist-info/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/dbus_fast-4.0.0.dist-info/licenses/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/dbus_fast/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/dbus_fast/_private/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/dbus_fast/aio/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/dbus_fast/glib/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pycparser-3.0.dist-info/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pycparser-3.0.dist-info/licenses/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pycparser/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland-0.4.18.dist-info/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland-0.4.18.dist-info/licenses/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/_ffi/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/client/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/alpha_modifier_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/content_type_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/cursor_shape_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/drm_lease_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/ext_foreign_toplevel_list_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/ext_idle_notify_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/ext_session_lock_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/ext_transient_seat_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/fractional_scale_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/fullscreen_shell_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/idle_inhibit_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/input_method_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/input_timestamps_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/keyboard_shortcuts_inhibit_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/linux_dmabuf_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/linux_dmabuf_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/linux_drm_syncobj_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/pointer_constraints_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/pointer_gestures_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/presentation_time/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/relative_pointer_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/security_context_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/single_pixel_buffer_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/tablet_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/tablet_unstable_v2/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/tablet_v2/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/tearing_control_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/text_input_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/text_input_unstable_v3/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/viewporter/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/wayland/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/wp_primary_selection_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xdg_activation_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xdg_decoration_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xdg_dialog_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xdg_foreign_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xdg_foreign_unstable_v2/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xdg_output_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xdg_shell/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xdg_shell_unstable_v5/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xdg_shell_unstable_v6/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xdg_toplevel_drag_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xwayland_keyboard_grab_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/xwayland_shell_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol/zwp_linux_explicit_synchronization_unstable_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/protocol_core/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/scanner/
        filesystem: 755  package: 755
        warning: directory permissions differ on /opt/hosaka-studio/lib/pywayland/server/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka.dist-info/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/assets/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/assets/cursors/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/assets/icons/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/capture/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/capture/audio/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/capture/cursor/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/capture/screen/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/capture/wayland/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/capture/wayland/protocols/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/capture/wayland/protocols/ext_image_capture_source_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/capture/wayland/protocols/ext_image_copy_capture_v1/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/core/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/effects/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/licensing/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/pipeline/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/ui/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/ui/widgets/
        filesystem: 755  package: 755
        warning: directory permissions differ on /usr/lib/python3.14/site-packages/hosaka/ui/workers/
        filesystem: 755  package: 755
        • Hugo Baldwin

          Team•

          Mar 20

          Both issues hopefully fixed in v0.1.129 (well, the second one I know for sure is fixed):

          • lavfi is now used when probing VAAPI support instead of the previous implementation - this is the exact command that Gemini suggest you use and it worked when you tried it;

          • the nonsensical “directory permissions differ” bug where they’re both 755 was caused by a bug in nfpm which Hosaka was using for Arch packaging. This has been replaced with makepkg which appears to be the gold standard for Arch packaging.

          • Sujal Gurung

            •

            Mar 20

            Thanks. Both issues fixed now