OBS Studio no graba vídeo + audio con PipeWire

Igual recordais que mencioné que no había soft de grabación de pantalla (video + audio como Simple Screen Recorder) para Plasma Wayland. Uso mucho ese tipo de soft para vídeos propios (no hago stream ni los comparto).

Sigo en X11. Llevo 1 mes probando OBS Studio y graba lo que quiero perfectamente escogiendo Captura de Pantalla (XSHM).


Los ajustes en los que se ve el monitor seleccionado (sólo tengo 1):

En cambio si escojo Captura de Pantalla (PipeWire) la escena está en negro. De hecho graba negro con audio de fondo.


Los ajustes (en los que no se ve nada de monitores):

¿Por qué me preocupo por PipeWire? Porque la ocasión en que probé Wayland, en OBS Studio sólo me salía Captura de Pantalla (PipeWire) y le pasaba lo mismo (XSHM no me salía para elegir).

Tengo escogido para grabar formato MP4 con vídeo H264 y audio AAC.

¿Le funciona a alguien grabar un vídeo con Captura de Pantalla (PipeWire) en X11?
¿Y en Wayland?
¿Será que hay que instalar alguna cosa adicional que no haya marcado él solito?

 ~/Descargas  zypper se -iv pipewire                                                     ✔  16:46:35 
Repositorio                     : Time since last refresh
Packman                         : 3 h 38 min 
Plex                            : 3 h 38 min 
Skype                           : 3 h 38 min 
Repositorio principal (NON-OSS) : 3 h 38 min 
Repositorio principal (OSS)     : 3 h 38 min 
OBS-Studio                      : 3 h 38 min 
Repositorio Actualizaciones     : 3 h 38 min 


    Note: Running with user privileges. From time to time run 'zypper refresh' as root to make sure
    the repository metadata are complete and up-to-date.

Cargando datos del repositorio...
Leyendo los paquetes instalados...

S  | Name                           | Type    | Version     | Arch   | Repository
---+--------------------------------+---------+-------------+--------+----------------------------
i+ | kpipewire-imports              | paquete | 5.27.11-1.2 | x86_64 | Repositorio principal (OSS)
    name: kpipewire-imports
i+ | kpipewire6-imports             | paquete | 6.0.4-1.1   | x86_64 | Repositorio principal (OSS)
    name: kpipewire6-imports
i+ | libKPipeWire5                  | paquete | 5.27.11-1.2 | x86_64 | Repositorio principal (OSS)
    name: libKPipeWire5
i+ | libKPipeWire5-lang             | paquete | 5.27.11-1.2 | noarch | Repositorio principal (OSS)
    name: libKPipeWire5-lang
i+ | libKPipeWire6                  | paquete | 6.0.4-1.1   | x86_64 | Repositorio principal (OSS)
    name: libKPipeWire6
i+ | libKPipeWire6-lang             | paquete | 6.0.4-1.1   | noarch | Repositorio principal (OSS)
    name: libKPipeWire6-lang
i+ | libKPipeWireDmaBuf5            | paquete | 5.27.11-1.2 | x86_64 | Repositorio principal (OSS)
    name: libKPipeWireDmaBuf5
i+ | libKPipeWireDmaBuf6            | paquete | 6.0.4-1.1   | x86_64 | Repositorio principal (OSS)
    name: libKPipeWireDmaBuf6
i+ | libKPipeWireRecord5            | paquete | 5.27.11-1.2 | x86_64 | Repositorio principal (OSS)
    name: libKPipeWireRecord5
i+ | libKPipeWireRecord6            | paquete | 6.0.4-1.1   | x86_64 | Repositorio principal (OSS)
    name: libKPipeWireRecord6
i+ | libpipewire-0_3-0              | paquete | 1.0.5-1.1   | x86_64 | Repositorio principal (OSS)
    name: libpipewire-0_3-0
i+ | libpipewire-0_3-0-32bit        | paquete | 1.0.5-1.1   | x86_64 | Repositorio principal (OSS)
    name: libpipewire-0_3-0-32bit
i+ | pipewire                       | paquete | 1.0.5-1.1   | x86_64 | Repositorio principal (OSS)
    name: pipewire
i+ | pipewire-alsa-32bit            | paquete | 1.0.5-1.1   | x86_64 | Repositorio principal (OSS)
    name: pipewire-alsa-32bit
i+ | pipewire-lang                  | paquete | 1.0.5-1.1   | noarch | Repositorio principal (OSS)
    name: pipewire-lang
i+ | pipewire-modules-0_3           | paquete | 1.0.5-1.1   | x86_64 | Repositorio principal (OSS)
    name: pipewire-modules-0_3
i+ | pipewire-modules-0_3-32bit     | paquete | 1.0.5-1.1   | x86_64 | Repositorio principal (OSS)
    name: pipewire-modules-0_3-32bit
i+ | pipewire-spa-plugins-0_2       | paquete | 1.0.5-1.1   | x86_64 | Repositorio principal (OSS)
    name: pipewire-spa-plugins-0_2
i+ | pipewire-spa-plugins-0_2-32bit | paquete | 1.0.5-1.1   | x86_64 | Repositorio principal (OSS)
    name: pipewire-spa-plugins-0_2-32bit
i+ | pipewire-spa-tools             | paquete | 1.0.5-1.1   | x86_64 | Repositorio principal (OSS)
    name: pipewire-spa-tools
i+ | pipewire-tools                 | paquete | 1.0.5-1.1   | x86_64 | Repositorio principal (OSS)
    name: pipewire-tools

No encuentro la info a este respecto.

Saludos

Ejecuta OBS en una consola usado la opción & y fíjate en los mensajes que aparece cuando seleccionas pipewire, igual sale un mensaje de error que te puede ayudar.

Ejemplo, si quiero ejecutar Dolphin en una consola

@linux-3g5t:~> dolphin &

1 Like

Hola:

No estaría de mas, saber como está el servidor de audio (aunque si falla audio y video, vete a saber) .

ejecuta inxi -xxA y da info de los servidores (lo normal es que estén activos los dos) :
HPOMEN:~ # inxi -xxA
Audio:
Device-1: Intel Cannon Lake PCH cAVS vendor: Hewlett-Packard
driver: snd_hda_intel v: kernel bus-ID: 00:1f.3 chip-ID: 8086:a348
Device-2: NVIDIA GP107GL High Definition Audio driver: snd_hda_intel
v: kernel pcie: speed: 2.5 GT/s lanes: 8 bus-ID: 01:00.1 chip-ID: 10de:0fb9
API: ALSA v: k5.14.21-150500.55.52-default status: kernel-api with: aoss
type: oss-emulator
Server-1: PipeWire v: 0.3.64 status: n/a (root, process) with: wireplumber
status: active
Server-2: PulseAudio v: 15.0 status: active (root, process)
with: pulseaudio-alsa type: plugin

Saludos

1 Like

Hice un obs > obs.log para tenerlo todo en un fichero y te pongo un cat filtrando por pipewire:

 ~/Descargas  cat obs.log | grep pipewire                                                ✔  12:16:49 
info: [pipewire] Available captures:
info: [pipewire]     - Desktop capture
info: [pipewire]     - Window capture
info:     linux-pipewire.so
info: User added source 'Captura de pantalla (PipeWire)' (pipewire-desktop-capture-source) to scene 'Escena'
warning: [pipewire] Failed to create session, denied or cancelled by user

El Device que se usa solamente es el 3 (el resto están apagados). Por cierto, PipeWire graba vídeo. Sólo que es todo en negro pero con audio perfecto (en mi primer comentario hay algunas capturas y comentarios).

 ~/Descargas  inxi -xxA                                                                  ✔  12:20:46 
Audio:
  Device-1: Intel 100 Series/C230 Series Family HD Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel bus-ID: 00:1f.3 chip-ID: 8086:a170
  Device-2: NVIDIA GP104 High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: speed: 8 GT/s lanes: 16
    bus-ID: 01:00.1 chip-ID: 10de:10f0
  Device-3: Logitech G933 Wireless Headset Dongle
    driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1 speed: 12 Mb/s
    lanes: 1 bus-ID: 1-5:2 chip-ID: 046d:0a5b
  API: ALSA v: k6.8.7-1-default status: kernel-api with: aoss
    type: oss-emulator
  Server-1: PipeWire v: 1.0.5 status: off with: wireplumber status: off
  Server-2: PulseAudio v: 17.0 status: active with: pulseaudio-alsa
    type: plugin

Tras ver que Pipewire está apagado he estado investigando algo más.

Según su entrada en la wiki de openSuSE parece ser que (si me equivoco que alguien me corrija) openSuSE está reemplazando (o reemplazó, no sé) Pulseaudio por PipeWare.
Por lo visto graba tanto audio como vídeo (pensaba que sólo era un servidor de sonido).

KDE ya lo instala por defecto por lo visto (por eso tengo tanto paquete de pipewire) pero como hice una migración de Leap a TW (en lugar de una instalación nueva de TW) en Septiembre de 2023, igual por eso está desactivado.

Lo que me escama es que parece que ponga que está hecho para funcionar sólo con Wayland. Si es así, si hiciera el proceso que se describe en la wiki, ¿me quedaría sin audio y vídeo? (porque desinstala PulseAudio en el proceso).

Necesito más luz a este respecto.

Saludos

Hola:
Es posible, pero si cambio, fue hace tiempo.
Son servidores de audio, antes teníamos , alsa y pulse, ahora se unifico con pulseaudio-alsa , ya el programa use uno u otro, funcionara igual (conmuta es lo que creo) y con pipe, igual, pueden estar todos activados, y los programa usan uno u otro, es mas o menos lo que pienso, al ver, en el mio ambos activos.
Wayland, mas bien lo veo como un servidor gráfico .
Para mi lo ideal es que hubiese un solo servidor de audio, que use se todos los protocolos.

Y puede ser lo que dices con el cambio, algo se perdió o bien hay problemas de dependencias . (¿ se podría probar con la sesión root, haber si pasa lo mismo? , o crear temporalmente otro usuario y hacer prueba? y lo último que se me ocurre es listar los archivos, haber que es lo que falta; ademas de lo que te han comentado, el ejecutar el programa , desde consola ) .
Saludos

Hola @Krovikan
Has probado con algún otro codec? H.264 AVC por ejemplo.

salut!

Sólo tengo esto para elegir:


Pruebe el que pruebe la previsualización es negra.

En mi primer comentario se puede ver capturas con la previsualización de Captura de Pantalla (XSHM) y Captura de Pantalla (PipeWire). Así como una captura en la que Captura de Pantalla (PipeWire) no sale monitor a escoger (sólo tengo 1). Y creo recordar que en Wayland (aquella vez que probé hace meses), algo para seleccionar aparecía o eso creo.

Igual tendría que dejar de romperme la cabeza y dejarlo para el día que pueda usar Wayland porque igual el PipeWire de las narices es para Wayland. Lo que no sé es porque me aparece en el maldito selector de OBS Studio.

EDITO: Y en Wayland creo que grababa en negro. Pero eso ya no lo recuerdo bien.

EDITO 2: Por ahora no puedo iniciar el usuario prueba con Wayland porque me toca la configuración de la tarjeta gráfica él solito y en X11 hay que tocarla de nuevo.

Saludos

Al final he iniciado el usuario prueba con Wayland y he estado unas 2 horas con él (con los parpadeos periódicos normal de mi driver Nvidia con .run).

Como mencioné, sólo aparece Captura de Pantalla (PipeWire). A la hora de seleccionar monitor me sale (en Wayland sí):


Aunque elija Samsung, mi monitor, sigue siendo una pantalla negra (recordemos que PipeWire con wirepumbler está apagado según inxi).

Así que he vuelto a buscar información sobre PipeWire. Y esta vez he visto la luz en la versión en Inglés de su Wiki (la vez anterior sólo vi la versión en castellano que es muy parca y corta).

Parece ser que el autor (de Red Hat) trabajaba inspirado en PulseAudio en un soft (empezó en 2015) que fuera tan bueno como el mencionado pero para Vídeo. Tomó ideas también de un proyecto que había por ahí llamado precisamente PulseVideo.

Pero a los 2 años (principios de 2017) comenzó a integrar también sonido hasta que el 20 de Junio de 2017 lanzó PipeWire.

Resumiendo: PipeWire es un servidor de sonido con capacidad de grabar vídeo y tomar capturas de pantalla. Audio y vídeo en 1. Fedora (Abril de 2021), Pop OS! (Abril de 2022) y Ubuntu (Octubre de 2022) fueron las 3 primeras distribuciones en ofrecerlo como servidor de Audio por defecto.

Así que creo que toca experimentar en hacer la transición de PulseAudio a PipeWire como en su momento se hizo de Alsa a PulseAudio.

Según la sección de instalación de la wiki de openSuSE sobre PipeWire parece ser que tendré que instalar pipewire-pulseaudio lo que instalará además wireplumber-audio que me dará un problema de dependencias a la que tendré que responder algo parecido a:

Problem: the installed pulseaudio-15.0-150400.2.10.x86_64 conflicts with 'pulseaudio-daemon' provided by the to be installed pipewire-pulseaudio-0.3.49-150400.1.5.x86_64
 Solution 1: Following actions will be done:
  deinstallation of pulseaudio-15.0-150400.2.10.x86_64
  deinstallation of pulseaudio-gdm-hooks-15.0-150400.2.10.x86_64
  deinstallation of pulseaudio-lang-15.0-150400.2.10.noarch
  deinstallation of pulseaudio-module-bluetooth-15.0-150400.2.10.x86_64
  deinstallation of pulseaudio-module-gsettings-15.0-150400.2.10.x86_64
  deinstallation of pulseaudio-module-jack-15.0-150400.2.10.x86_64
  deinstallation of pulseaudio-module-lirc-15.0-150400.2.10.x86_64
  deinstallation of pulseaudio-module-x11-15.0-150400.2.10.x86_64
  deinstallation of pulseaudio-module-zeroconf-15.0-150400.2.10.x86_64
  deinstallation of alsa-plugins-pulse-1.2.6-150400.1.10.x86_64

lo que desinstalará PulseAudio y tras reiniciar el equipo ya tendría que estar funcionando PipeWire.

Saludos

Trasteando con Obs-Studio

inxi -xxA
Audio:
  Device-1: Intel 100 Series/C230 Series Family HD Audio
    vendor: Micro-Star MSI driver: snd_hda_intel v: kernel bus-ID: 00:1f.3
    chip-ID: 8086:a170
  Device-2: NVIDIA GP106 High Definition Audio vendor: Micro-Star MSI
    driver: snd_hda_intel v: kernel pcie: speed: 8 GT/s lanes: 16
    bus-ID: 01:00.1 chip-ID: 10de:10f1
  Sound API: ALSA v: k5.14.21-150500.55.59-default running: yes
  Sound Server-1: JACK v: 1.9.12 running: no
  Sound Server-2: PulseAudio v: 15.0 running: no
  Sound Server-3: PipeWire v: 0.3.64 running: yes

A ver si mañana hago la transición a PipeWire con éxito. Las aplicaciones están comenzando a moverse de PulseAudio a PipeWire. Como esta:

Saludos

Ya está hecho el reemplazo de PulseAudio por PipeWire y todo funciona bien.

 ~/Descargas  inxi -xxA                                                                  ✔  12:42:45 
Audio:
  Device-1: Intel 100 Series/C230 Series Family HD Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel bus-ID: 00:1f.3 chip-ID: 8086:a170
  Device-2: NVIDIA GP104 High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: speed: 8 GT/s lanes: 16
    bus-ID: 01:00.1 chip-ID: 10de:10f0
  Device-3: Logitech G933 Wireless Headset Dongle
    driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1 speed: 12 Mb/s
    lanes: 1 bus-ID: 1-5:2 chip-ID: 046d:0a5b
  API: ALSA v: k6.8.7-1-default status: kernel-api with: aoss
    type: oss-emulator
  Server-1: PipeWire v: 1.0.5 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active

El servidor de PulseAudio ha desaparecido (como en cualquier instalación nueva desde finales de 2022) y sólo queda PipeWire con soporte de PulseAudio para “engañar” a las aplicaciones que usen PulseAudio.

Con el usuario prueba (Wayland) he podido grabar audio + sonido con OBS usando Captura de Pantalla (PipeWire). Esta vez se ve el monitor en la vista previa y no la pantalla negra de antes.

Saludos

1 Like

Podías explicar como lo has hecho, que paquetes has eliminado y cuales as instalado.

La respuesta que he marcado como Solución es bastante explícita.

Saludos

1 Like

Si no recuerdo mal creo que con instalar pipewire-pulseaudio , este desinstalara los paquetes conflictivos…

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.