Skip to main content

Export fails on AMD GPUs since NV12 fast path (v0.1.142)

Hello. I’m currently on a new system (MX Linux, though don’t think the distro is the problem here) and wanted to do a quick recording. Installed using the install script and all went well. Authenticated youtube and when trying to upload, it fails. I’ve attached the log file found in ~/.local/state/hosaka/

hosaka.log

188.7 KB

Status: Completed11 comments

Log in to comment and vote

  • Hugo Baldwin

    Team•

    Mar 26

    Hi Sujal I’ve included a fix for this in v0.1.147 (along with the new track for changing the recording layout)

    It turns out AMD devices are more pedantic about which flags are provided to FFmpeg when encoding than Intel and that’s why the issue wasn’t caught earlier. In your logs there was a compatibility probe which passed and then the encoding itself failed after a few frames. To prevent it occurring again I’ve added test coverage to ensure the args used in the compatibility check and encoding always match. I’ll also see if I can pickup a AMD laptop for testing

    Let me know if that fixes the issue for you

    • Sujal Gurung

      •

      Mar 27

      Thanks! I had a separate issue with the stop systray icon crashing the app that got fixed by this, though this error still persists.

      Some background info: I'm running MX linux off a usb on the same laptop i used to report arch issues before. Haven't updated and tested on arch but I am getting the previously attached errors on MX. Also updated all packages. Here's the latest logs

      
      2026-03-27 21:22:04 DEBUG hosaka:82 - Log file: /home/demo/.local/state/hosaka/hosaka.log
      2026-03-27 21:22:04 DEBUG hosaka.app:214 - Applied dark color scheme from XDG portal
      2026-03-27 21:22:04 DEBUG hosaka.core.single_instance:71 - Started as primary instance (IPC server listening)
      2026-03-27 21:22:04 INFO hosaka.app:315 - Hosaka Studio v0.1.147
      2026-03-27 21:22:04 DEBUG hosaka.app:665 - Signal handling set up for graceful shutdown
      2026-03-27 21:22:04 DEBUG hosaka.ui.recording_modal:999 - Device enumeration started
      2026-03-27 21:22:04 DEBUG hosaka.ui.recording_modal:1439 - Screen warmup started
      2026-03-27 21:22:04 DEBUG hosaka.ui.recording_modal:922 - Recording modal first paint in 677ms
      2026-03-27 21:22:05 INFO hosaka.qt:99 - Using Qt multimedia with FFmpeg version 7.1.3-0+deb13u1 GPL version 2 or later
      2026-03-27 21:22:05 INFO hosaka.qt:99 - Available HW decoding frameworks:
      2026-03-27 21:22:05 DEBUG hosaka.licensing.license_store:84 - No license file at /home/demo/.local/share/hosaka/license.dat
      2026-03-27 21:22:05 INFO hosaka.qt:99 -      vaapi
      2026-03-27 21:22:05 INFO hosaka.qt:99 -      vdpau
      2026-03-27 21:22:05 INFO hosaka.qt:99 -      vulkan
      2026-03-27 21:22:05 INFO hosaka.qt:99 - Available HW encoding frameworks:
      2026-03-27 21:22:05 INFO hosaka.qt:99 -      vaapi
      2026-03-27 21:22:05 INFO hosaka.qt:99 -      vdpau
      2026-03-27 21:22:05 INFO hosaka.qt:99 -      vulkan
      2026-03-27 21:22:05 DEBUG hosaka.ui.workers.device_enumeration:84 - Found 1 webcam(s)
      2026-03-27 21:22:05 DEBUG hosaka.ui.recording_modal:1017 - Webcams loaded: 1 devices
      2026-03-27 21:22:05 DEBUG hosaka.capture.webcam:144 - Opening webcam device: Integrated Camera: Integrated C
      2026-03-27 21:22:05 DEBUG hosaka.capture.webcam:556 - Selected camera format: Format_YUYV 640x480 @ 30.0 fps (requested 640x480 @ 30 fps)
      2026-03-27 21:22:06 INFO hosaka.capture.webcam:184 - Webcam started: Integrated Camera: Integrated C (requested 640x480 @ 30 fps)
      2026-03-27 21:22:06 DEBUG hosaka.ui.recording_modal:1320 - Webcam pre-started for warm-up
      2026-03-27 21:22:06 DEBUG hosaka.app:537 - Started revalidation timer (every 3600000 ms)
      2026-03-27 21:22:06 DEBUG hosaka.ui.workers.device_enumeration:124 - Found 1 loopback device(s)
      2026-03-27 21:22:06 DEBUG hosaka.ui.recording_modal:1056 - Loopback devices loaded: 1 devices
      2026-03-27 21:22:06 DEBUG hosaka.ui.workers.device_enumeration:103 - Found 1 microphone(s), default usable: True
      2026-03-27 21:22:06 INFO hosaka.capture.audio.parecord_loopback:318 - Resolved monitor source: alsa_output.pci-0000_03_00.6.analog-stereo.monitor
      2026-03-27 21:22:06 INFO hosaka.capture.audio.parecord_loopback:177 - Using monitor source: alsa_output.pci-0000_03_00.6.analog-stereo.monitor
      2026-03-27 21:22:06 DEBUG hosaka.capture.audio.parecord_loopback:183 - Desktop audio capture started: 48000 Hz, 2 channel(s) via parecord
      2026-03-27 21:22:06 DEBUG hosaka.ui.recording_modal:1404 - Desktop audio recorder pre-started for warm-up
      2026-03-27 21:22:06 DEBUG hosaka.ui.recording_modal:1035 - Microphones loaded: 1 devices
      2026-03-27 21:22:06 INFO hosaka.capture.audio.parecord_mic:121 - Using microphone source: @DEFAULT_SOURCE@
      2026-03-27 21:22:06 INFO hosaka.capture.audio.parecord_mic:268 - PulseAudio default source: alsa_input.pci-0000_03_00.6.analog-stereo
      2026-03-27 21:22:06 DEBUG hosaka.capture.audio.parecord_mic:129 - Microphone capture started: 48000 Hz, 2 channel(s) via parecord
      2026-03-27 21:22:06 DEBUG hosaka.ui.recording_modal:1364 - Mic recorder pre-started for warm-up
      2026-03-27 21:22:06 DEBUG hosaka.ui.workers.screen_warmup:51 - Starting encoder warmup
      2026-03-27 21:22:06 INFO hosaka.pipeline.encoder:174 - Detected GPU type: amd
      2026-03-27 21:22:06 DEBUG hosaka.ui.recording_modal:1117 - Audio warmup complete - all recorders ready
      2026-03-27 21:22:06 DEBUG hosaka.core.codec_check:105 - CPU encoder probe succeeded: libx264
      2026-03-27 21:22:06 DEBUG hosaka.core.codec_check:174 - Detected H.264 encoders: {'libx264': True, 'libopenh264': False, 'h264_vaapi': True}
      2026-03-27 21:22:06 DEBUG hosaka.core.codec_check:105 - CPU encoder probe succeeded: libx264
      2026-03-27 21:22:06 DEBUG hosaka.core.codec_check:174 - Detected H.264 encoders: {'libx264': True, 'libopenh264': False, 'h264_vaapi': True}
      2026-03-27 21:22:06 DEBUG hosaka.core.ffmpeg:173 - Running VAAPI runtime probe...
      2026-03-27 21:22:07 DEBUG hosaka.core.ffmpeg:116 - VAAPI runtime probe succeeded
      2026-03-27 21:22:07 DEBUG hosaka.core.ffmpeg:198 - VAAPI is available and working
      2026-03-27 21:22:07 INFO hosaka.pipeline.encoder:180 - Auto-detected encoder: VAAPI for codec H264
      2026-03-27 21:22:07 DEBUG hosaka.ui.workers.screen_warmup:53 - Encoder warmup complete
      2026-03-27 21:22:07 DEBUG hosaka.ui.workers.screen_warmup:59 - X11 detected, no screen warmup needed
      2026-03-27 21:22:07 DEBUG hosaka.ui.recording_modal:1185 - All devices, screen, and audio ready to record
      2026-03-27 21:22:07 DEBUG hosaka.ui.recording_modal:1490 - Screen ready (display_server=x11)
      2026-03-27 21:22:08 INFO hosaka.capture.screen.qt_screen:175 - Qt screen capture started (waiting for permission)
      2026-03-27 21:22:08 DEBUG hosaka.app:911 - Using pre-started webcam capture
      2026-03-27 21:22:08 INFO hosaka.capture.screen.qt_screen:294 - First frame received - permission granted
      2026-03-27 21:22:09 INFO hosaka.app:967 - Recording started
      2026-03-27 21:22:09 DEBUG hosaka.core.frame_store:79 - Opened audio store for writing: /tmp/hosaka_mic_50719_7wg1s37s.bin
      2026-03-27 21:22:09 DEBUG hosaka.core.frame_store:79 - Opened audio store for writing: /tmp/hosaka_desktop_50719_kph6xre8.bin
      2026-03-27 21:22:09 DEBUG hosaka.ui.workers.record:539 - Screen recorder: QtScreenRecorder
      2026-03-27 21:22:09 DEBUG hosaka.ui.workers.record:543 - Initializing cursor tracker...
      2026-03-27 21:22:09 DEBUG hosaka.ui.workers.record:548 - Cursor tracker: X11CursorTracker
      2026-03-27 21:22:09 DEBUG hosaka.ui.workers.record:553 - Starting cursor tracker...
      2026-03-27 21:22:09 DEBUG hosaka.ui.workers.record:565 - Webcam capture already running (pre-initialized)
      2026-03-27 21:22:09 DEBUG hosaka.ui.workers.record:235 - Using pre-warmed microphone recorder (warmup mode)
      2026-03-27 21:22:09 DEBUG hosaka.ui.workers.record:235 - Using pre-warmed desktop audio recorder (warmup mode)
      2026-03-27 21:22:09 INFO hosaka.ui.workers.record:575 - Recording started
      2026-03-27 21:22:09 DEBUG hosaka.capture.audio.parecord_mic:254 - Mic recorder: recording started (warmup audio discarded)
      2026-03-27 21:22:09 DEBUG hosaka.capture.audio.parecord_loopback:295 - Desktop audio recorder: recording started (warmup audio discarded)
      2026-03-27 21:22:09 DEBUG hosaka.core.video_store:377 - AUTO encoder: selected VAAPI (runtime probe passed)
      2026-03-27 21:22:09 DEBUG hosaka.core.video_store:399 - Opening video store with H264_INTRA (VAAPI): /tmp/hosaka_screen_50719_gi71hvs3.mp4 (1366x768 @ 60.0 fps)
      2026-03-27 21:22:09 DEBUG hosaka.core.ffmpeg:861 - Starting FFmpeg encoder: ffmpeg -y -loglevel warning -f rawvideo -pix_fmt bgr24 -s 1366x768 -r 60 -i pipe:0 -vaapi_device /dev/dri/renderD128 -vf scale=in_color_matrix=bt709:out_color_matrix=bt709:flags=accurate_rnd,format=nv12,hwupload -c:v h264_vaapi -pix_fmt vaapi -g 1 -bf 0 -qp 10 -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv -f mp4 /tmp/hosaka_screen_50719_gi71hvs3.mp4
      2026-03-27 21:22:09 DEBUG hosaka.core.ffmpeg:882 - FFmpeg encoder started (PID: 50854)
      2026-03-27 21:22:09 DEBUG hosaka.core.video_store:429 - Video store opened for writing (H264_INTRA): /tmp/hosaka_screen_50719_gi71hvs3.mp4
      2026-03-27 21:22:09 DEBUG hosaka.ui.workers.record:391 - Opened video store: 1366x768 @ 60 fps (output: 1366x768)
      2026-03-27 21:22:09 DEBUG hosaka.core.video_store:377 - AUTO encoder: selected VAAPI (runtime probe passed)
      2026-03-27 21:22:09 DEBUG hosaka.core.video_store:399 - Opening video store with H264_INTRA (VAAPI): /tmp/hosaka_webcam_50719_tbj365pm.mp4 (640x480 @ 30.0 fps)
      2026-03-27 21:22:09 DEBUG hosaka.core.ffmpeg:861 - Starting FFmpeg encoder: ffmpeg -y -loglevel warning -f rawvideo -pix_fmt bgr24 -s 640x480 -r 30 -i pipe:0 -vaapi_device /dev/dri/renderD128 -vf scale=in_color_matrix=bt709:out_color_matrix=bt709:flags=accurate_rnd,format=nv12,hwupload -c:v h264_vaapi -pix_fmt vaapi -g 1 -bf 0 -qp 10 -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv -f mp4 /tmp/hosaka_webcam_50719_tbj365pm.mp4
      2026-03-27 21:22:09 DEBUG hosaka.core.ffmpeg:882 - FFmpeg encoder started (PID: 50857)
      2026-03-27 21:22:09 DEBUG hosaka.core.video_store:429 - Video store opened for writing (H264_INTRA): /tmp/hosaka_webcam_50719_tbj365pm.mp4
      2026-03-27 21:22:09 DEBUG hosaka.ui.workers.record:429 - Opened webcam video store: 640x480 @ 30 fps
      2026-03-27 21:22:11 DEBUG hosaka.capture.webcam:437 - Webcam capture stats (52 frames, 10.4 fps): main=5.40ms [map=4.86, decode=0.53] | conv=0.04ms [frombuf=0.02, reshape=0.01, ascontig=0.00]
      2026-03-27 21:22:12 DEBUG hosaka.ui.workers.record:714 - Click stored: t=3.316 x=23 y=555 type=LEFT pressed=True
      2026-03-27 21:22:12 DEBUG hosaka.ui.workers.record:714 - Click stored: t=3.397 x=23 y=555 type=LEFT pressed=False
      2026-03-27 21:22:12 DEBUG hosaka.ui.recording_tray:114 - Tray icon activated with reason: ActivationReason.Trigger
      2026-03-27 21:22:12 INFO hosaka.ui.recording_tray:109 - Stop recording requested via tray icon
      2026-03-27 21:22:12 INFO hosaka.ui.workers.record:688 - Stopping recording (190 screen frames, 34 webcam frames, 164 mic audio chunks, 164 desktop audio chunks)
      2026-03-27 21:22:12 DEBUG hosaka.capture.webcam:195 - Stopping webcam
      2026-03-27 21:22:12 DEBUG hosaka.ui.workers.record:848 - Cleaning up audio resources...
      2026-03-27 21:22:12 DEBUG hosaka.capture.audio.parecord_mic:161 - Microphone capture stopped: total_captured=166080 samples (3.46s), remaining_in_buffer=2880 samples (0.06s)
      2026-03-27 21:22:12 DEBUG hosaka.capture.audio.parecord_loopback:215 - Desktop audio capture stopped
      2026-03-27 21:22:12 DEBUG hosaka.ui.workers.record:884 - Webcam: 34 frames received, none dropped
      2026-03-27 21:22:12 DEBUG hosaka.ui.workers.record:886 - Audio cleanup complete
      2026-03-27 21:22:12 DEBUG hosaka.ui.workers.record:825 - Cleaning up cursor resources...
      2026-03-27 21:22:12 INFO hosaka.app:1082 - Recording stopped, showing editor while finalizing...
      2026-03-27 21:22:12 DEBUG hosaka.ui.workers.record:787 - Transferred 193 cursor positions to log
      2026-03-27 21:22:12 DEBUG hosaka.ui.workers.record:796 - Cursor position samples - first: (t=1774625829.190, x=583, y=428), mid: (t=1774625830.903, x=767, y=218), last: (t=1774625832.790, x=51, y=531)
      2026-03-27 21:22:12 DEBUG hosaka.ui.workers.record:836 - Cursor cleanup complete (2 clicks captured)
      2026-03-27 21:22:12 DEBUG hosaka.core.video_store:715 - Stop event set, queue has 0 items, encoded 190 frames so far
      2026-03-27 21:22:12 DEBUG hosaka.core.video_store:659 - Waiting for encoding thread to drain (0 items)
      2026-03-27 21:22:12 DEBUG hosaka.core.video_store:715 - Stop event set, queue has 0 items, encoded 34 frames so far
      2026-03-27 21:22:12 DEBUG hosaka.core.video_store:659 - Waiting for encoding thread to drain (0 items)
      2026-03-27 21:22:12 DEBUG hosaka.core.video_store:691 - Encoding thread drained in 0.0s
      2026-03-27 21:22:12 DEBUG hosaka.core.video_store:735 - Closing FFmpeg encoder (timeout=30s, frames_written=34)
      2026-03-27 21:22:12 DEBUG hosaka.core.ffmpeg:1149 - Waiting for FFmpeg to finish (frames=34)
      2026-03-27 21:22:12 DEBUG hosaka.core.video_store:691 - Encoding thread drained in 0.1s
      2026-03-27 21:22:12 DEBUG hosaka.core.video_store:735 - Closing FFmpeg encoder (timeout=30s, frames_written=190)
      2026-03-27 21:22:12 DEBUG hosaka.core.ffmpeg:1149 - Waiting for FFmpeg to finish (frames=190)
      2026-03-27 21:22:12 DEBUG hosaka.core.frame_store:165 - Finalized audio store: 166 chunks, 0.01 MB, 0 dropped
      2026-03-27 21:22:12 DEBUG hosaka.core.frame_store:193 - Opened audio store for reading: /tmp/hosaka_desktop_50719_kph6xre8.bin
      2026-03-27 21:22:12 DEBUG hosaka.core.frame_store:165 - Finalized audio store: 166 chunks, 1.06 MB, 0 dropped
      2026-03-27 21:22:12 DEBUG hosaka.core.frame_store:193 - Opened audio store for reading: /tmp/hosaka_mic_50719_7wg1s37s.bin
      2026-03-27 21:22:12 DEBUG hosaka.ui.widgets.background_controls:582 - Background mode: gradient
      2026-03-27 21:22:13 DEBUG hosaka.ui.widgets.gl_preview:107 - GLPreview initialized: AMD AMD Radeon Vega 3 Graphics (radeonsi, raven2, ACO, DRM 3.61, 6.12.63+deb13-amd64) (GL 4.6 (Core Profile) Mesa 25.0.7-2)
      2026-03-27 21:22:13 DEBUG hosaka.ui.editor_window:1602 - Editor preview first paint in 676ms
      2026-03-27 21:22:13 DEBUG hosaka.core.ffmpeg:1202 - FFmpeg encoder finished in 0.5s: 34 frames written to /tmp/hosaka_webcam_50719_tbj365pm.mp4
      2026-03-27 21:22:13 DEBUG hosaka.core.video_store:763 - Finalized video store: 34 frames (34 keyframes), 2.49 MB, 0 dropped, 0 skipped (backpressure)
      2026-03-27 21:22:13 DEBUG hosaka.core.ffmpeg:346 - Running VAAPI decode runtime probe...
      2026-03-27 21:22:13 DEBUG hosaka.core.ffmpeg:1202 - FFmpeg encoder finished in 0.5s: 190 frames written to /tmp/hosaka_screen_50719_gi71hvs3.mp4
      2026-03-27 21:22:13 DEBUG hosaka.core.video_store:763 - Finalized video store: 190 frames (190 keyframes), 16.20 MB, 0 dropped, 0 skipped (backpressure)
      2026-03-27 21:22:13 DEBUG hosaka.core.ffmpeg:346 - Running VAAPI decode runtime probe...
      2026-03-27 21:22:13 DEBUG hosaka.core.ffmpeg:294 - VAAPI decode runtime probe succeeded
      2026-03-27 21:22:13 DEBUG hosaka.core.ffmpeg:351 - VAAPI decoding is available and working
      2026-03-27 21:22:13 DEBUG hosaka.core.ffmpeg:1323 - Using hybrid decoder (VAAPI sequential, PyAV seeks): /tmp/hosaka_screen_50719_gi71hvs3.mp4
      2026-03-27 21:22:13 DEBUG hosaka.core.ffmpeg:294 - VAAPI decode runtime probe succeeded
      2026-03-27 21:22:13 DEBUG hosaka.core.ffmpeg:351 - VAAPI decoding is available and working
      2026-03-27 21:22:13 DEBUG hosaka.core.ffmpeg:1323 - Using hybrid decoder (VAAPI sequential, PyAV seeks): /tmp/hosaka_webcam_50719_tbj365pm.mp4
      2026-03-27 21:22:13 DEBUG hosaka.core.video_store:825 - Opened video store for reading: /tmp/hosaka_webcam_50719_tbj365pm.mp4
      2026-03-27 21:22:13 DEBUG hosaka.core.video_store:825 - Opened video store for reading: /tmp/hosaka_screen_50719_gi71hvs3.mp4
      2026-03-27 21:22:13 DEBUG hosaka.ui.workers.record:991 - Store finalization completed in 0.914 seconds
      2026-03-27 21:22:13 INFO hosaka.app:1143 - Recording finalization complete
      2026-03-27 21:22:14 DEBUG hosaka.ui.workers.preview_render_worker:256 - Preview worker video info: hosaka_screen_50719_gi71hvs3.mp4 (1366x768)
      2026-03-27 21:22:14 DEBUG hosaka.ui.workers.preview_render_worker:270 - Preview worker webcam video info: hosaka_webcam_50719_tbj365pm.mp4 (640x480)
      2026-03-27 21:22:14 DEBUG hosaka.ui.audio_player:165 - AudioPlayer initialized: 173760 mixed samples, 3.62 seconds (mic=166080, desktop=173760)
      2026-03-27 21:22:14 INFO hosaka.effects.gpu_compositor:223 - GPU compositor initialized: AMD AMD Radeon Vega 3 Graphics (radeonsi, raven2, ACO, DRM 3.61, 6.12.63+deb13-amd64) (GL 4.6 (Core Profile) Mesa 25.0.7-2)
      2026-03-27 21:22:14 INFO hosaka.ui.workers.preview_render_worker:500 - GPU compositing enabled on render worker thread
      2026-03-27 21:22:14 DEBUG hosaka.core.ffmpeg:1323 - Using hybrid decoder (VAAPI sequential, PyAV seeks): /tmp/hosaka_webcam_50719_tbj365pm.mp4
      2026-03-27 21:22:14 DEBUG hosaka.ui.workers.preview_render_worker:298 - Created webcam preview decoder at 640x480
      2026-03-27 21:22:14 DEBUG hosaka.effects.gpu_compositor:386 - GPU compositor shaders initialized
      2026-03-27 21:22:14 DEBUG hosaka.ui.preview_controller:318 - Audio player attached to preview controller
      2026-03-27 21:22:14 DEBUG hosaka.core.ffmpeg:1313 - Using hybrid decoder (VAAPI sequential, PyAV seeks) with decode-time scaling 1366x768 -> 1184x666: /tmp/hosaka_screen_50719_gi71hvs3.mp4
      2026-03-27 21:22:14 DEBUG hosaka.ui.workers.preview_render_worker:396 - Created preview decoder at 1184x666 for display 658x381
      2026-03-27 21:22:17 DEBUG hosaka.ui.audio_player:434 - Audio seek to 0.00 s (sample 0)
      2026-03-27 21:22:17 DEBUG hosaka.ui.audio_player:348 - Audio sink created: 48000 Hz, device=Family 17h/19h/1ah HD Audio Controller Analog Stereo
      2026-03-27 21:22:17 DEBUG hosaka.ui.audio_player:410 - Audio playback started at sample 0
      2026-03-27 21:22:17 DEBUG hosaka.ui.preview_controller:526 - Playback started at 0.00
      2026-03-27 21:22:20 DEBUG hosaka.ui.audio_player:419 - Audio playback paused at sample 173760
      2026-03-27 21:22:20 DEBUG hosaka.ui.preview_controller:542 - Playback paused at 3.63
      2026-03-27 21:22:20 DEBUG hosaka.ui.audio_player:434 - Audio seek to 0.00 s (sample 0)
      2026-03-27 21:22:21 DEBUG hosaka.ui.export_dialog:392 - Quality preset changed to: EDITING (crf=18, bitrate=20000000, preset=fast, faststart=False)
      2026-03-27 21:22:23 DEBUG hosaka.ui.audio_player:373 - Audio sink stopped and released
      2026-03-27 21:22:23 INFO hosaka.pipeline.export:467 - Starting export of 190 frames
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:1460 - Source resolution: 1366x768
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:1461 - Content resolution: 1230x692
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:1462 - Output resolution: 1366x768
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:1464 - Frame scaling enabled for resolution preset
      2026-03-27 21:22:23 DEBUG hosaka.core.ffmpeg:1313 - Using hybrid decoder (VAAPI sequential, PyAV seeks) with decode-time scaling 1366x768 -> 1230x692: /tmp/hosaka_screen_50719_gi71hvs3.mp4
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:532 - Created export decoder at 1230x692 (source 1366x768)
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:1418 - Duration: 3.38s (last frame at 3.38s)
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:784 - Audio prepared: 173760 samples (3.62s), 2 ch, mic_vol=1.00, desktop_vol=1.00
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:592 - Output path: /home/demo/Videos/Hosaka/Screencast 2026-03-27 21:22:04.mp4
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:144 - Creating output directory: /home/demo/Videos/Hosaka
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:355 - Wrote temp audio: /tmp/hosaka_audio_50719_54699cf8.wav (173760 samples, 48000 Hz, 2 ch)
      2026-03-27 21:22:23 INFO hosaka.pipeline.export:161 - Using encoder: VAAPI
      2026-03-27 21:22:23 DEBUG hosaka.core.ffmpeg:861 - Starting FFmpeg encoder: ffmpeg -y -loglevel warning -f rawvideo -pix_fmt nv12 -s 1366x768 -r 60 -i pipe:0 -i /tmp/hosaka_audio_50719_54699cf8.wav -vaapi_device /dev/dri/renderD128 -vf format=nv12,hwupload -c:v h264_vaapi -pix_fmt vaapi -qp 18 -g 30 -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv -map 0:v -map 1:a -c:a aac -b:a 192k -f mp4 /home/demo/Videos/Hosaka/Screencast 2026-03-27 21:22:04.mp4
      2026-03-27 21:22:23 DEBUG hosaka.core.ffmpeg:882 - FFmpeg encoder started (PID: 51123)
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:179 - Export initialization complete
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:602 - Export initialized successfully
      2026-03-27 21:22:23 INFO hosaka.effects.gpu_compositor:223 - GPU compositor initialized: AMD AMD Radeon Vega 3 Graphics (radeonsi, raven2, ACO, DRM 3.61, 6.12.63+deb13-amd64) (GL 4.6 (Core Profile) Mesa 25.0.7-2)
      2026-03-27 21:22:23 INFO hosaka.pipeline.export:218 - GPU compositing enabled for export
      2026-03-27 21:22:23 DEBUG hosaka.pipeline.export:957 - Re-timing export (GPU): 190 source frames -> 203 output frames (duration=3.38s, fps=60, output=1366x768)
      2026-03-27 21:22:24 DEBUG hosaka.pipeline.export:1052 - First frame from export decoder: shape=(692, 1230, 3)
      2026-03-27 21:22:24 DEBUG hosaka.effects.gpu_compositor:386 - GPU compositor shaders initialized
      2026-03-27 21:22:24 DEBUG hosaka.pipeline.export:1226 - FFmpeg stopped accepting frames at 5/203 (audio stream ended). 4 frames written.
      2026-03-27 21:22:24 WARNING hosaka.core.ffmpeg:977 - FFmpeg process has exited (code 218)
      2026-03-27 21:22:24 DEBUG hosaka.pipeline.export:1339 - Export complete (GPU): 203 frames from 190 source in 1.3s (160.3 fps). Avg: fetch=75.20ms (5 unique), compose=0.19ms, readback=0.19ms, write=2.60ms, seg_wait=0.00ms (0 calls)
      2026-03-27 21:22:25 DEBUG hosaka.pipeline.export:642 - Finishing export...
      2026-03-27 21:22:25 DEBUG hosaka.core.ffmpeg:1149 - Waiting for FFmpeg to finish (frames=4)
      2026-03-27 21:22:25 WARNING hosaka.core.ffmpeg:1087 - FFmpeg exited with code 218: n not implemented)
      [vf#0:0 @ 0x55a200b39080] Terminating thread with return code -38 (Function not implemented)
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Could not open encoder before EOF
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Task finished with error code: -22 (Invalid argument)
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Terminating thread with return code -22 (Invalid argument)
      [out#0/mp4 @ 0x55a200d44a00] Nothing was written into output file, because at least one of its streams received no packets.
      
      2026-03-27 21:22:25 DEBUG hosaka.pipeline.export:285 - Deleted temp audio file: /tmp/hosaka_audio_50719_54699cf8.wav
      2026-03-27 21:22:25 INFO hosaka.pipeline.export:296 - Deleted incomplete export file: /home/demo/Videos/Hosaka/Screencast 2026-03-27 21:22:04.mp4
      2026-03-27 21:22:25 ERROR hosaka.ui.workers.export:294 - Export failed: FFmpeg encoding failed: n not implemented)
      [vf#0:0 @ 0x55a200b39080] Terminating thread with return code -38 (Function not implemented)
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Could not open encoder before EOF
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Task finished with error code: -22 (Invalid argument)
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Terminating thread with return code -22 (Invalid argument)
      [out#0/mp4 @ 0x55a200d44a00] Nothing was written into output file, because at least one of its streams received no packets.
      Traceback (most recent call last):
        File "/usr/lib/python3/dist-packages/hosaka/ui/workers/export.py", line 248, in _run_file_based
          exporter.export_recording(
          ~~~~~~~~~~~~~~~~~~~~~~~~~^
              self.frames,
              ^^^^^^^^^^^^
          ...<15 lines>...
              shadow_config=self.shadow_config,
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          )
          ^
        File "/usr/lib/python3/dist-packages/hosaka/pipeline/export.py", line 643, in export_recording
          self.finish_export()
          ~~~~~~~~~~~~~~~~~~^^
        File "/usr/lib/python3/dist-packages/hosaka/pipeline/export.py", line 299, in finish_export
          raise RuntimeError(failure_reason)
      RuntimeError: FFmpeg encoding failed: n not implemented)
      [vf#0:0 @ 0x55a200b39080] Terminating thread with return code -38 (Function not implemented)
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Could not open encoder before EOF
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Task finished with error code: -22 (Invalid argument)
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Terminating thread with return code -22 (Invalid argument)
      [out#0/mp4 @ 0x55a200d44a00] Nothing was written into output file, because at least one of its streams received no packets.
      
      2026-03-27 21:22:25 ERROR hosaka.app:1474 - Export failed: FFmpeg encoding failed: n not implemented)
      [vf#0:0 @ 0x55a200b39080] Terminating thread with return code -38 (Function not implemented)
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Could not open encoder before EOF
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Task finished with error code: -22 (Invalid argument)
      [vost#0:0/h264_vaapi @ 0x55a200d45280] Terminating thread with return code -22 (Invalid argument)
      [out#0/mp4 @ 0x55a200d44a00] Nothing was written into output file, because at least one of its streams received no packets.
      
      2026-03-27 21:22:40 DEBUG hosaka.core.video_store:930 - Deleted video store file: /tmp/hosaka_screen_50719_gi71hvs3.mp4
      2026-03-27 21:22:40 DEBUG hosaka.core.video_store:930 - Deleted video store file: /tmp/hosaka_webcam_50719_tbj365pm.mp4
      2026-03-27 21:22:40 DEBUG hosaka.core.frame_store:255 - Deleted audio store file: /tmp/hosaka_mic_50719_7wg1s37s.bin
      2026-03-27 21:22:40 DEBUG hosaka.core.frame_store:255 - Deleted audio store file: /tmp/hosaka_desktop_50719_kph6xre8.bin
      2026-03-27 21:22:40 DEBUG hosaka.core.single_instance:138 - IPC server stopped
      2026-03-27 21:22:40 DEBUG hosaka.app:737 - Signal handling cleaned up
      • Sujal Gurung

        •

        Mar 27

        You can get mx linux here if you wanna test (issue confirmed on both xfce and kde variants:

        https://mxlinux.org/download-links/

        Also, here's Gemini's take on it. It also gave me a python command to force the app to use the cpu but that just made my laptop freeze

        Gemini:

        This is definitively an issue with the app itself, not a missing dependency on your new system. You can pass this exact explanation back to the developer—they made a tiny oversight in the app's export pipeline regarding AMD hardware compatibility. Here is exactly what is happening: The Problem: B-Frames and AMD Vega GPUs Your new system is running an AMD Radeon Vega 3 GPU on Debian 13. The hardware video encoder on this specific generation of AMD chips (Raven/VCN 1.0) does not support B-frames for H.264 encoding. The developer actually handled this perfectly during the recording phase, but forgot to apply the same fix to the export phase.

        1. The Recording Phase (Success) If you look at the FFmpeg command the app generates to record your screen, it includes a specific flag:

        ... -c:v h264_vaapi -pix_fmt vaapi -g 1 -bf 0 -qp 10 ...

        That -bf 0 explicitly tells FFmpeg to disable B-frames. Because of this, the AMD driver accepts it, and the recording succeeds perfectly. 2. The Export Phase (Failure) When you stop recording and the app tries to export/render the final file, it generates a slightly different FFmpeg command:

        ... -c:v h264_vaapi -pix_fmt vaapi -qp 18 -g 30 ...

        Notice that -bf 0 is missing. Because it's missing, FFmpeg falls back to its default behavior (which tries to use B-frames). The AMD hardware driver instantly rejects this because it physically can't do it, resulting in the errors you see:

        • Task finished with error code: -22 (Invalid argument) (The AMD driver rejecting the encoder settings)

        • Terminating thread with return code -38 (Function not implemented) (The video filter failing because the encoder crashed) How the Dev can fix it Tell the developer that they need to ensure the -bf 0 flag (or any hardware-specific compatibility flags they are using for the live capture) is also being passed to the FFmpeg builder during the export pipeline for AMD VA-API users. Right now, their app checks the hardware capability for the capture stream but seemingly uses a hardcoded preset for the export stream that breaks on older AMD APUs.

        • Hugo Baldwin

          Team•

          Mar 27

          Can you test again with the latest release? And yes, Gemini's analysis was spot-on. Hopefully this sorts it. TBH because of issues like this I'm glad I haven't done heavy marketing until I'm confident there's reasonably broad device/architecture compatibility.

          • Sujal Gurung

            •

            Mar 28

            Hmm still getting those errors. Couldn't upload the lofg file from my phone so here's a google drive link: https://drive.google.com/file/d/1EfZGQ440oFXv12TMVW0GvPJPMeRt8g7V/view?usp=drivesdk

            I was trying out a bunch of distros a while back so I guess I should've tested Hosaka on them more. If you do want to test on different distros, using ventoy might be more convenient than spinning up virtual machines.

            • Hugo Baldwin

              Team•

              Mar 28

              Hi Sujal sorry for the trouble, and thank you again for being patient through multiple rounds of AMD-related fixes (it’s definitely an AMD thing, changing distro at the same time was simply a coincidence).

              The root cause stems from when I added a direct GPU → encoder NV12 path to speed up export in v0.1.142.

              The performance gain is real on most hardware, but AMD's VAAPI driver has a quirk where its hwupload filter advertises RGBA surfaces instead of NV12, causing FFmpeg to silently convert the frames to the wrong format before encoding - the encoder then rejects them with the "Function not implemented" error seen in your logs.

              The recording path was unaffected because it goes through a software scale step first, which happens to sidestep the issue. Only export broke.

              I’ve deployed a fix in v0.1.149 to probe whether the fast NV12 path works at startup. If it doesn't - as on your system - it falls back to a path that should still work on AMD, while still using hardware (VAAPI) encoding. So you should still get GPU-accelerated exports, just without the NV12 shortcut.


              Let me know if you're still seeing issues once it's out.

              • Sujal Gurung

                •

                Mar 30

                No worries. Sorry I didn’t get notified of this. Tested and I’m still getting the same issue (on both MX Linux as well as Arch on the same device.

                Here’s logs for MX:

                hosaka.log

                46.2 KB


                And for Arch:

                hosaka-arch.log

                38.8 KB

                • Hugo Baldwin

                  Team•

                  Mar 31

                  I picked up an old Lenovo with AMD CPU/GPU today to squash this bug for good - I’ll push changes up once I’ve tested them myself on AMD