smplayer, Ton über ecasound und loopback
smplayer, Ton über ecasound und loopback
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?
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.
Re: smplayer, Ton über loopback
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
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
versuchen. Ich habe aber keine Angaben gefunden was man dort in welcher Form tatsächlich angeben kann.
Code: Alles auswählen
-ao alsa:device=hw=Loopback.0
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
Re: smplayer, Ton über loopback
Wenn ich dieses script:
im Terminal starte, mit dieser ~/.asoundrc:
dann kann ich in einem zweiten Terminal mit diesem mplayer-Kommando: den Ton über loopback ausgeben.
mpv liefert diese Fehlermeldung:
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.
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
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"
}
}
Code: Alles auswählen
[video].mkv -ao alsa:device=hw=Loopback,0
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.
Re: smplayer, Ton über loopback
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
oder
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.
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
Code: Alles auswählen
--audio-device=alsa/hw:Loopback,0
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.
Re: smplayer, Ton über loopback
Ich bin seit heute mal wieder unterwegs. Grauer Nomade halt. Mal schauen, wie ich Zeit (und Netz ) finde. Spätestens am 4.9. wieder zu Hause.
Re: smplayer, Ton über loopback
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:
Das Gleiche, wenn ich deinen 1. Tipp auf dem angegebenen Weg versuche.
Im Terminal funktioniert via ecasound-script.
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)
Im Terminal funktioniert
Code: Alles auswählen
mpv --audio-device=alsa/hw:Loopback,0
Re: smplayer, Ton über loopback
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
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
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?fischic hat geschrieben:03.09.2020 19:07:45Code: 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)
Re: smplayer, Ton über loopback
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 .smutbert hat geschrieben:Du merkst vielleicht worauf das hinausläuft: Die richtige Schreibweise suchen