smplayer, Ton über ecasound und loopback

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
fischig
Beiträge: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

smplayer, Ton über ecasound und loopback

Beitrag von fischig » 03.08.2020 11:27:54

Im Zusammenhang mit Bluetooth-Lautsprechern benutze ich bei vlc für den Ton die loopback-Schnittstelle „Loopback, Loopback PCM Default Audio Device“, die ich via alsa und lokal eingerichteter ~/.asoundrc im Hauptmenü unter „Audio“ erreiche.

Lässt sich das auch bei smplayer einrichten? Bisher sehe ich da nichts unter „Audio“ oder „Einstellungen“.

Wenn ich bei Optionen/Einstellungen/Ton „Benutzerdefiniert“ anklicke, kriege ich rechts daneben ein Eingabefeld, in das ich etwas eingeben könnte. Aber was? Bin ich auf der richtigen Spur?
Zuletzt geändert von fischig am 05.09.2020 10:53:03, insgesamt 1-mal geändert.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: smplayer, Ton über loopback

Beitrag von smutbert » 16.08.2020 11:06:49

Aus der Bedienoberfläche werde ich auch nicht schlau, aber smplayer ist ja ein Frontend für mplayer oder wahlweise mpv und den beiden kann man das Audioausgabegerät als Option mitgeben, ich glaube das müsste etwa so aussehen

Code: Alles auswählen

-ao alsa:device=hw=Loopback.0
und wenn das als Option von mplayer funktioniert, dann würde ich das auch direkt so mit smplayer ausprobieren.

Möglicherweise erwartet das Eingabefeld unter „benutzerdefiniert“ ebenfalls eine Angabe in dieser Form – da würde ich es instinktiv mit

Code: Alles auswählen

alsa:device=hw=Loopback.0
versuchen. Ich habe aber keine Angaben gefunden was man dort in welcher Form tatsächlich angeben kann.

fischig
Beiträge: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: smplayer, Ton über loopback

Beitrag von fischig » 21.08.2020 08:30:57

Wenn ich dieses script:

Code: Alles auswählen

#!/bin/bash

BT_MAC[1]="12:51:02:20:0F:E8"
BT_MAC[2]="FC:58:FA:84:9B:E2"
INTERVAL=5
#BUFFER=4096
BUFFER=2048

# echo "erledigt."
# echo -n "definiere Funktion zum Starten von ecasound: "

# Funktion zum Starten von ecasound mit einem Argument
# 0 -> Ausgabe über die eingebauten Lautsprecher
# 1 -> Ausgabe über plugbtL1
# 2 -> Ausgabe über plugbtL2
# 3 -> Ausgabe über plugbtL1 und plugbtL2
start_ecasound() {
	if test "${1}" = 0 ; then
		ecasound -b:${BUFFER} -i alsaplugin,1,1 -o alsaplugin,0 &> /dev/null &
	elif test "${1}" = 1 ; then
		ecasound -b:${BUFFER} -i alsaplugin,1,1 -o alsa,plugbtL1 &> /dev/null &
	elif test "${1}" = 2 ; then
		ecasound -b:${BUFFER} -i alsaplugin,1,1 -o alsa,plugbtL2 &> /dev/null &
	elif test "${1}" = 3 ; then
		ecasound -b:${BUFFER} -a:1,2 -i alsaplugin,1,1 -a:1 -o alsa,plugbtL1 -a:2 -o alsa,plugbtL2 &> /dev/null &
	fi
	echo ${!}
}

# Funktion, die prüft welche Bluetoothgeräte verbunden sind
# 0: keines
# 1: plugbtL1
# 2: plugbtL2
# 3: plugbtL1 und plugbtL2
check_device() {
	bt_count=0
	for i in ${!BT_MAC[@]} ; do
		bluetoothctl <<< "info ${BT_MAC[${i}]}" | grep "Connected: yes$" &> /dev/null && bt_count=$((${bt_count}+${i}))
	done
	echo ${bt_count}
}

# Hauptteil
# die Variable running speichert, welcher ecasound-Befehl gerade läuft, -1 bedeutet keiner,
# der Rest stimmt mit den Argumenten von von start_ecasound() überein
running=-1
while true ; do
	echo -n "überprüfe Bluetooth-Verbindungen: "
	connected=$(check_device)
	echo "${connected}."
	if test ${running} -eq ${connected}; then
		echo -n "prüfe ob ecasound noch läuft: "
		pgrep "ecasound" | grep ${pid} &> /dev/null || running=-1
		echo "${running}."
	elif test ${running} -ne -1 ; then
		echo -n "beende laufendes ecasound: "
		pgrep "ecasound" | grep ${pid} &> /dev/null && kill ${pid} # && echo "erledigt." || echo "?"
		running=-1
	fi

	if test ${running} -ne ${connected} ; then
		echo -n "starte ecasound: "
		pid=$(start_ecasound ${connected}) && running=${connected} # && echo "ok." || echo "nicht ok."
	fi
	sleep ${INTERVAL}
done
im Terminal starte, mit dieser ~/.asoundrc:

Code: Alles auswählen

pcm.btL1 {			# Lautsprecher-pcm (für „L1“ in bluetoothctl)				
  type bluealsa			# Alsa-Plugin
  interface "hci0"		# vom Kernel eingerichtete BT-Schnittstelle
  device "12:51:02:20:0F:E8"	# MAC-Adresse des Kopfhörers (= „L1“ in bluetoothctl,
				# Kopfhörer)
  profile "a2dp"		# Bluetooth-Profil
}

pcm.btL2 {			# Lautsprecher-pcm (für bth55 (Maginon))				
  type bluealsa			# Alsa-Plugin
  interface "hci0"		# vom Kernel eingerichtete BT-Schnittstelle
  device "FC:58:FA:84:9B:E2"	# MAC-Adresse des Kopfhörers (= )
  profile "a2dp"		# Bluetooth-Profil
}


# plug-Plugins, die an die Bluetoothgeräte weiterleiten

pcm.plugbtL1 {
	type plug
	slave {
#		rate 44100
		pcm "plug:btL1"
	}
}

pcm.plugbtL2 {
	type plug
	slave {
#		rate 44100
		pcm "plug:btL2"
	}
}
dann kann ich in einem zweiten Terminal mit diesem mplayer-Kommando:

Code: Alles auswählen

[video].mkv -ao alsa:device=hw=Loopback,0
den Ton über loopback ausgeben.

mpv liefert diese Fehlermeldung:

Code: Alles auswählen

mpv [video].mkv --ao alsa:device=hw=Loopback,0
Option ao: this option does not accept sub-options.
Sub-options for --vo and --ao were removed from mpv in release 0.23.0.
See https://0x0.st/uM for details.
Error parsing option ao (option parameter could not be parsed)
Setting commandline option --ao=alsa:device=hw=Loopback,0 failed.
Mit smplayer kriege ich's nicht hin, insbesondere nicht so, dass ich - entsprechend gesriptet - das Video durch Anklicken desselben im Dateimanager starten könnte. Aber um smplayer ging's mir. mpv und vor allem mplayer sind mir ohne Schieberegler und Menü als GUI-Programme für den Alltagsgebrauch zu unhandlich.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: smplayer, Ton über loopback

Beitrag von smutbert » 23.08.2020 16:13:19

Habe smplayer jetzt zwar installiert, aber ich habe auch noch keine Idee, wie man das Audiogerät angeben kann. Bei mpv hätte „meine“ Option laut Fehlermeldung immerhin bis vor Version 0.23 funktioniert.
Laut manpage ist das Ersetzen der : der alsa-Syntax durch = jetzt nicht mehr angesagt. Du kannst es also mit mpv und smplayer mit der Option

Code: Alles auswählen

--ao=alsa:device=hw:Loopback,0
oder

Code: Alles auswählen

--audio-device=alsa/hw:Loopback,0
versuchen. Die manpages, die ich gefunden habe erwecken den Eindruck, dass die mpv-Entwickler selbst nicht sicher sind wie die Optionen nun lauten sollen oder sie haben es schlicht immer wieder geändert.
Eine von beiden sollte mit mpv eigentlich funktionieren und wenn smplayer dieselben Optionen versteht bzw. eh nur an mpv weiterleitet, dann sollte es auch dort klappen.
Zuletzt geändert von smutbert am 23.08.2020 20:55:16, insgesamt 1-mal geändert.

fischig
Beiträge: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: smplayer, Ton über loopback

Beitrag von fischig » 23.08.2020 20:21:43

Ich bin seit heute mal wieder unterwegs. Grauer Nomade halt. Mal schauen, wie ich Zeit (und Netz :wink: ) finde. Spätestens am 4.9. wieder zu Hause.

fischig
Beiträge: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: smplayer, Ton über loopback

Beitrag von fischig » 03.09.2020 19:07:45

Bin wieder zu Hause. Ich hab's jetzt mal auf diese Weise versucht:
smplayer/Optionen/Einstellungen/Allgemein/Allgemein Multimediamodul: mpv; smplayer/Optionen/Einstellungen/Allgemein/Ton: Ausgabetreiber: Benutzerdefiniert ... und rechts davon --audio-device=alsa/hw:Loopback,0

Fehlermeldung:

Code: Alles auswählen

Option ao: this option does not accept sub-options.
Sub-options for --vo and --ao were removed from mpv in release 0.23.0.
See https://0x0.st/uM for details.
Error parsing option ao (option parameter could not be parsed)
Setting commandline option --ao=--audio-device=alsa/hw, failed.
Exiting... (Fatal error)
Das Gleiche, wenn ich deinen 1. Tipp auf dem angegebenen Weg versuche.

Im Terminal funktioniert

Code: Alles auswählen

mpv --audio-device=alsa/hw:Loopback,0
via ecasound-script.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: smplayer, Ton über loopback

Beitrag von smutbert » 04.09.2020 23:41:59

Ok, zumindest mit mpv geht es.

Tut mir leid, aber bei smplayer weiß ich auch nicht weiter. Du könntest natürlich in der asoundrc/asound.conf das Audiogerät hw:Loopback,0 zum Default machen, aber du willst ja nicht immer dein/unser ecasound/bluealsa-Konstrukt nutzen.

EDIT
Moment einmal diese Fehlermeldung
fischic hat geschrieben: ↑ zum Beitrag ↑
03.09.2020 19:07:45

Code: Alles auswählen

Option ao: this option does not accept sub-options.
Sub-options for --vo and --ao were removed from mpv in release 0.23.0.
See https://0x0.st/uM for details.
Error parsing option ao (option parameter could not be parsed)
Setting commandline option --ao=--audio-device=alsa/hw, failed.
Exiting... (Fatal error)
deutet allerdings darauf hin, dass du versuchen könntest alsa/hw:Loopback,0 in das Konfigurationsfeld von smplayer einzutragen oder nachdem, die Ausgabe in der Fehlermeldung ausgerechnet beim : abbricht vielleicht auch mit alsa/hw=Loopback,0. Du merkst vielleicht worauf das hinausläuft: Die richtige Schreibweise suchen, weil ich keine Dokumentation dazu finde. Hatten wir alsa:device=hw=Loopback.0 schon?

fischig
Beiträge: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: smplayer, Ton über loopback

Beitrag von fischig » 05.09.2020 10:21:17

smutbert hat geschrieben:Du merkst vielleicht worauf das hinausläuft: Die richtige Schreibweise suchen
Ja, das habe ich bemerkt. Ich habe alle deine Varianten und noch einige andere versucht. Bei manchen gibt's zwar Ton (bei laufendem ecasound-script und verbundenem BT-Lausprecher), dann aber nur über den eingebauten Lautsprecher nie über BT. Den Fehlermeldungen entnehme ich nichts. Entweder sind die für mich zu ähnlich, oder es ist immer die gleiche Standardmeldung, der man dann eh nichts entnehmen kann. Langsam ist mir das zu blöd. Zumal ich ja mit deiner Hilfe einige funktionierende Alternativen gefunden habe. Ich denke, ich vergesse smplayer - schade eigentlich, die Oberfläche kam meinen Video-Gewohnheiten schon ein paar Ticks mehr entgegen als vlc .

Antworten