Bug 510820

Summary: Kdenlive SDL Pipewire Audio Driver ignores virtual devices
Product: [Applications] kdenlive Reporter: Marvin1099 <marvin.d1099>
Component: User Interface & MiscellaneousAssignee: Jean-Baptiste Mardelle <jb>
Status: ASSIGNED ---    
Severity: major CC: berndmj, junxuan_liao
Priority: NOR Keywords: triaged
Version First Reported In: 25.08.2   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Marvin1099 2025-10-20 10:07:24 UTC
SUMMARY
When on Linux selecting Pipewire or PulseAudio (with Pipewire host) it never shows any virtual devices.
As i use a 2 Pc setup my mic needs to be in the other pc, i just send it over via tcp.
Same with my speaker its all plugged into my streaming pc and my gaming pc gets to share the devices.
Im using virtual devices for that, so on my gaming pc i have my default device as "game" a virtual speaker that gets send over to my streaming pc.
But i can only select physical audio devices.
How do i make kdenlive be able to use the virtual devices / can you make this so it works.
Seams strange that this has not come up jet, 
there are a lot of setups where people will use a virtual device to output to all attached speakers.

STEPS TO REPRODUCE
1. Be on linux with pipewire working
2. Set audio driver to pipewire or pulseaudio
3. See that you can only use physical audio devices

OBSERVED RESULT
Only lists physical audio devices

EXPECTED RESULT
Should list all audio devices, virtual ones included

SOFTWARE/OS VERSIONS
Operating System: Garuda Linux
KDE Plasma Version: 6.4.5
KDE Frameworks Version: 6.19.0
Qt Version: 6.10.0
Kernel Version: 6.17.3-zen2-1-zen (64-bit)
Graphics Platform: Wayland
Processors: 12 × Intel® Core™ i7-8700K CPU @ 3.70GHz
Memory: 32 GiB of RAM (31.3 GiB usable)
Graphics Processor: NVIDIA GeForce RTX 3070 Ti

ADDITIONAL INFORMATION
The audio connection can be changed in qpwgraph but kdenlive will always go back to a physical device on statup.

As info for my virtual devices setup, there are a few files at:
~/.config/pipewire/pipewire.conf.d/

As example my default virtual device is this file "10-game.conf" and has contents:
context.objects = [
    {   factory = adapter
        args = {
            factory.name     = support.null-audio-sink
            node.name        = "game"
            media.class      = Audio/Sink
            audio.position   = [ FL FR ]
            audio.channels   = 2
            monitor.channel-volumes = true
            adapter.auto-port-config = {
                mode = dsp
                monitor = true
                position = preserve
            }
        }
    }
]

This make one of my virtual devices
Comment 1 Jean-Baptiste Mardelle 2025-10-22 11:40:23 UTC
Thanks for your report. Indeed, MLT does currently not really allow selecting a device. This is probably not that hard to do, we would need a helper function returning a list of found devices that can be displayed in the app, then replace  the calls to sdl2_open_audio(&request, &got) with SDL_OpenAudioDevice(device_name, 0, &request, &got, 0)

https://github.com/mltframework/mlt/blob/master/src/modules/sdl2/consumer_sdl2_audio.c

Will see if I can find time to test this.
Comment 2 Marvin1099 2025-10-24 20:08:03 UTC
(In reply to Jean-Baptiste Mardelle from comment #1)

Thanks
Comment 3 Junxuan Liao 2025-12-13 01:21:02 UTC
(In reply to Jean-Baptiste Mardelle from comment #1)
> Indeed, MLT does currently not really allow
> selecting a device.

So Capture -> Audio -> Device just affects the monitoring but not recording, right?
Comment 4 Marvin1099 2025-12-13 16:48:25 UTC
(In reply to Junxuan Liao from comment #3)
> (In reply to Jean-Baptiste Mardelle from comment #1)
> > Indeed, MLT does currently not really allow
> > selecting a device.
> 
> So Capture -> Audio -> Device just affects the monitoring but not recording,
> right?

Sadly none of my virtual recording devices are detected, unless they are these invisible ones.
Check out this screenshot: https://postimg.cc/NyLSSgzk
Comment 5 Marvin1099 2026-01-07 09:21:04 UTC
Its is important to note that i make a mistake.
When setting the Audio driver to ALSA I can set the device, but of course only for ALSA devices.
If i set it to Pipewire or Pulseaudio, the audio output selection is grayed out.
So while i can not set my virtual devices as output, the reason is that kdenlive wont let me select it when in Pipewire or Pulseaudio mode.

As you answered:
(In reply to Jean-Baptiste Mardelle from comment #1)
> Thanks for your report. Indeed, MLT does currently not really allow
> selecting a device. 

That is actually a thing.
So this report was just a bit incorrect on my part.
But is of course still relevant as selecting devices is a useful option and is not working as noted.