| Summary: | Kdenlive SDL Pipewire Audio Driver ignores virtual devices | ||
|---|---|---|---|
| Product: | [Applications] kdenlive | Reporter: | Marvin1099 <marvin.d1099> |
| Component: | User Interface & Miscellaneous | Assignee: | 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: | |||
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. (In reply to Jean-Baptiste Mardelle from comment #1) Thanks (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? (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 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. |
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