ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
Hallo
Wie kann man den ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ich nutze TTY mit einige Programme wie zb mpv.
Mit mpv geht der superequalizer:
~/.config/mpv/config
af-add=superequalizer=1b=1:2b=.60560836:3b=.36676147:4b=.22211378:5b=.13451392:6b=.10644453:7b=.08146271:8b=.06446365:9b=.04933444:10b=.06446365:11b=.08146271:12b=.10644453:13b=.13451392:14b=.22211378:15b=.36676147:16b=.60560836:17b=1:18b=1
af-add=superequalizer=1b=1:2b=.13451392:3b=.04933444:4b=.02987731:5b=.02286528:6b=.01870909:7b=.02286528:8b=.02987731:9b=.03775596:10b=.04933444:11b=.06234395:12b=.08146271:13b=.13451392:14b=.22211378:15b=.36676147:16b=.60560836:17b=1:18b=1
(Ich nutze eine Textdatei 41130 mit Balken,
die Balken werden zu den zahlen umgerechnet und formatiert,
und beim ausführen des Aktualisierungsscript (nach dem schliesen von nano), die Zeile in der ~/.config/mpv/config ersetzt.)
xorg nutze ich nur für chromium (und für mpv drm Framebuffer)
chromium starte ich direkt (ohne Fenstermanager) mit startx und einer ~/.xinitrc
Wie kann man den ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ich nutze TTY mit einige Programme wie zb mpv.
Mit mpv geht der superequalizer:
~/.config/mpv/config
af-add=superequalizer=1b=1:2b=.60560836:3b=.36676147:4b=.22211378:5b=.13451392:6b=.10644453:7b=.08146271:8b=.06446365:9b=.04933444:10b=.06446365:11b=.08146271:12b=.10644453:13b=.13451392:14b=.22211378:15b=.36676147:16b=.60560836:17b=1:18b=1
af-add=superequalizer=1b=1:2b=.13451392:3b=.04933444:4b=.02987731:5b=.02286528:6b=.01870909:7b=.02286528:8b=.02987731:9b=.03775596:10b=.04933444:11b=.06234395:12b=.08146271:13b=.13451392:14b=.22211378:15b=.36676147:16b=.60560836:17b=1:18b=1
(Ich nutze eine Textdatei 41130 mit Balken,
die Balken werden zu den zahlen umgerechnet und formatiert,
und beim ausführen des Aktualisierungsscript (nach dem schliesen von nano), die Zeile in der ~/.config/mpv/config ersetzt.)
xorg nutze ich nur für chromium (und für mpv drm Framebuffer)
chromium starte ich direkt (ohne Fenstermanager) mit startx und einer ~/.xinitrc
Re: ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
was du machst ist mir nicht ganz klar, aber du könntest ffmpeg mit einer Loopbacksoundkarte „einschleifen“. Also zuerst das entsprechende Kernelmodul für diese virtuelle Soundkarte laden
Dann dafür sorgen, dass die Audioausgabe der Programme auf hw:Loopback oder plughw:Loopback erfolgt, zB mit einem Eintrag in der ~/.asoundrc oder /etc/asound.conf, zB
Das Audiosignal dann mit ffmpeg abgreifen, wie gewünscht manipulieren und über die echte Soundkarte abspielen
wobei du hw:0,0 durch die gewünschte (echte) Soundkarte ersetzen musst.
Code: Alles auswählen
modprobe snd-aloop
Code: Alles auswählen
pcm.!default {
type plug
slave.pcm "hw:Loopback"
}
Code: Alles auswählen
SDL_AUDIODRIVER='alsa' AUDIODEV='hw:0,0' ffplay -f alsa -i hw:Loopback,1
Re: ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
Ahh, danke.
Keine ausgabe.
Code: Alles auswählen
sudo modprobe snd-aloop
Code: Alles auswählen
#ACHTUNG dieser Befehl überschreibt die .asoundrc# echo 'pcm.!default {type plug;slave.pcm "hw:Loopback"}'> ~/.asoundrc
Code: Alles auswählen
SDL_AUDIODRIVER='alsa' AUDIODEV='hw:0,0' ffplay -f alsa -i hw:Loopback,1
Code: Alles auswählen
error: XDG_RUNTIME_DIR not set in the environment.
Could not initialize SDL - No available video device
(Did you set the DISPLAY variable?)
Zuletzt geändert von SPIRITUS am 10.09.2020 15:47:30, insgesamt 2-mal geändert.
Re: ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
oh, darüber dass ffplay X11 benötigt bin ich auch schon einmal gestolpert. Ohne X sollte es im Prinzip so gehen:
also das aufgenommene Audiosignal mit ffmpeg aufzunehmen, zu bearbeiten und an ein Programm weiterzupipen, das es dann abspielt.
Gegebenenfalls muss man aplay auch noch das Audioformat mitteilen, aber gescheitert ist es bei meinen Versuchen an der Pipe – ich habe es nicht geschafft ffmpeg dazu zu bringen die Audiodaten über stdout oder eine named pipe auszugeben.
Ich kenne mich mit ffmpeg aber sowieso vorne und hinten nicht aus, vielleicht weißt du da etwas. Bei mir hat nur der Umweg über eine normale Datei funktioniert
was natürlich eher keine alltagstaugliche Lösung ist.
Code: Alles auswählen
ffmpeg -f alsa -i hw:Loopback,1 ... -f wav - | aplay -D plughw:0,0
Gegebenenfalls muss man aplay auch noch das Audioformat mitteilen, aber gescheitert ist es bei meinen Versuchen an der Pipe – ich habe es nicht geschafft ffmpeg dazu zu bringen die Audiodaten über stdout oder eine named pipe auszugeben.
Ich kenne mich mit ffmpeg aber sowieso vorne und hinten nicht aus, vielleicht weißt du da etwas. Bei mir hat nur der Umweg über eine normale Datei funktioniert
Code: Alles auswählen
ffmpeg -f alsa -i hw:Loopback,1 ... -f wav audioausgabe.wav
aplay -D plughw:0,0 audioausgabe.wav
Re: ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
Code: Alles auswählen
ffmpeg -f alsa -i hw:Loopback,1 -af superequalizer=1b=1:2b=.60560836:3b=.36676147:4b=.22211378:5b=.13451392:6b=.10644453:7b=.08146271:8b=.06446365:9b=.04933444:10b=.06446365:11b=.08146271:12b=.10644453:13b=.13451392:14b=.22211378:15b=.36676147:16b=.60560836:17b=1:18b=1 -f wav - | aplay -D plughw:0,0
Zu groß für mich.
Überhaupt, da die Verzögerung nicht nur den X Browser betrifft, sondern alles,
auch beim Filme/Serien schauen mit mpv.
Und so muss ständig etwas im Hintergrund aktiv laufen, auch wenn Audio inaktiv ist.
Aber danke für die Mühe.
Re: ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
Das war leider zu erwarten, aber es gibt andere Equalizer, die sich einfacher und mit deutlich weniger Verzögerung nutzen lassen, allen voran der in Alsa eingebaute (libasound2-plugin-equal) oder eventuell ladspa-Plugins, die sich in Alsa einbinden lassen.
Zum Alsa-Equalizer habe ich hier schon ein bisschen etwas geschrieben: https://wiki.debianforum.de/Audiokonfig ... r_von_ALSA (ist zwar überarbeitungsbefürftig. aber könnte helfen)
Zum Alsa-Equalizer habe ich hier schon ein bisschen etwas geschrieben: https://wiki.debianforum.de/Audiokonfig ... r_von_ALSA (ist zwar überarbeitungsbefürftig. aber könnte helfen)
Re: ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
Ich hatte auch lange den alsa ('equal') 10 Band Equalizer.
Dann den alsa libasound2-plugin-equal ('equal1') 15 Band Equalizer:
viewtopic.php?f=25&t=148913
Aber da hatte ich immer diese Verzerrungen im tieffrequenten bereich:
viewtopic.php?f=25&t=148913#p1105489
Ich glaub ab 'Devuan 3 Beowulf' ('Debian 10 Buster' Forg) oder umstieg von mplayer zu mpv,
hatte ich noch neue schlimmere Probleme.
Ich weiß gerade nicht mehr genau was da war.
Dann bin ich zum ffmpeg superequalizer umgestiegen,
Qualität und Frequenzweichung am Anfang und ende und auch dazwischen, ist viel besser.
Am wichtigsten ist mir meine Hauptsysteme, also z.B. die zum Filme/Serien gucken.
Das mach ich mit mpv im TTY(1).
Da gehts ja jetzt super mit dem superequalizer.
xorg Browser sind für mich ein temporäres extra (für so verscriptete/vermurkste/... Seiten wie 'You'Tube).
Und ja, man kann 'You'Tube/... Video/Audio auch mit zb mpv über youtube-dl streamen,
das tu ich auch teilweise, aber im Browser kann man schnell mal in such Ergebnisse und Vorschläge reinschauen.
Auch bei Browser spiele wär ein guter Ton nicht schlecht.
(Equalizer Erweiterungen für chromium, hab ich alle schon mehrmals durchprobiert, alles Murks.)
Aber es ist es mir nicht wert, das ich meine Hauptsysteme schlechter mach,
damit ich bei den Extras bisschen was besser mach.
Das müsste dann schon eine saubere gute Lösung sein, oder nur für den X Browser.
Dann den alsa libasound2-plugin-equal ('equal1') 15 Band Equalizer:
viewtopic.php?f=25&t=148913
Aber da hatte ich immer diese Verzerrungen im tieffrequenten bereich:
viewtopic.php?f=25&t=148913#p1105489
Ich glaub ab 'Devuan 3 Beowulf' ('Debian 10 Buster' Forg) oder umstieg von mplayer zu mpv,
hatte ich noch neue schlimmere Probleme.
Ich weiß gerade nicht mehr genau was da war.
Dann bin ich zum ffmpeg superequalizer umgestiegen,
Qualität und Frequenzweichung am Anfang und ende und auch dazwischen, ist viel besser.
Am wichtigsten ist mir meine Hauptsysteme, also z.B. die zum Filme/Serien gucken.
Das mach ich mit mpv im TTY(1).
Da gehts ja jetzt super mit dem superequalizer.
xorg Browser sind für mich ein temporäres extra (für so verscriptete/vermurkste/... Seiten wie 'You'Tube).
Und ja, man kann 'You'Tube/... Video/Audio auch mit zb mpv über youtube-dl streamen,
das tu ich auch teilweise, aber im Browser kann man schnell mal in such Ergebnisse und Vorschläge reinschauen.
Auch bei Browser spiele wär ein guter Ton nicht schlecht.
(Equalizer Erweiterungen für chromium, hab ich alle schon mehrmals durchprobiert, alles Murks.)
Aber es ist es mir nicht wert, das ich meine Hauptsysteme schlechter mach,
damit ich bei den Extras bisschen was besser mach.
Das müsste dann schon eine saubere gute Lösung sein, oder nur für den X Browser.
Re: ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
So gehts besser (, aber auch keine lösung für mich):
Code: Alles auswählen
sudo modprobe snd-aloop
#ACHTUNG dieser Befehl überschreibt die .asoundrc# echo 'pcm.!default {type plug;slave.pcm "hw:Loopback"}'>~/.asoundrc
AUDIODEV='hw:0' ffplay -nodisp -f alsa -i hw:Loopback,1 -af superequalizer=1b=1:2b=.60560836:3b=.36676147:4b=.22211378:5b=.13451392:6b=.10644453:7b=.08146271:8b=.06446365:9b=.04933444:10b=.06446365:11b=.08146271:12b=.10644453:13b=.13451392:14b=.22211378:15b=.36676147:16b=.60560836:17b=1:18b=1
Mit -nodisp gehts auch ohne xorg.smutbert hat geschrieben:07.09.2020 19:33:16oh, darüber dass ffplay X11 benötigt bin ich auch schon einmal gestolpert.
Re: ffmpeg superequalizer systemweit (ALSA) (oder bei chromium) anwenden?
Eine Möglichkeit wären die ladspa-Plugins, die ich ja schon erwähnt habe. Die lassen sich mit einem Alsa-Plugin, namens ladspa in Alsa einbinden, ein Konfigurationsbeispiel findet sich hier: https://alsa.opensrc.org/LADSPA_plugins
Als Equalizer-Plugin kann man beispielsweise mbeq (für Multibandequalizer, also die Datei /usr/lib/ladspa/mbeq_1197.so aus swh-plugins) verwenden, aber es finden sich zweifellos unzählige Alternativen, mit unterschiedlichen Fähigkeiten und Vorzügen. Beim Kennenlernen der verschiedenen Plugins, deren Namen und deren Parameter helfen die Kommandozeilentools aus ladspa-sdk (listplugins, analyseplugins)
Allerdings habe ich die Erfahrung gemacht, dass manche Anwendungen nicht mit allen Alsa-Plugins zusammenarbeiten wollen und dann muss man schlimmstenfalls wieder den Umweg über die Loopbacksoundkarte gehen. Das wirkt sich wieder negativ auf die Latenz aus, aber andererseits gibt es dann neben den Alsaplugins und ffmpeg/ffplay noch zahlreiche andere Programme, die man zur Klangmanipulation einsetzen kann, zB brutefir (mit dem habe ich einmal so etwas virtuellen Surround bzw. auch die Simulation von normalen Stereolautsprechern mit Kopfhörern verwirklicht – die Ergebnisse sind zum Teil beeindruckend: viewtopic.php?f=25&t=154019&start=15) oder ecasound.
Alle das lässt sich auch mit Pulseaudio nutzen, mit dem Vorteil, dass es mit Pulseaudio möglich sein sollte, die Latenz auszugleichen – also zumindest bei Quellen, bei denen das sinnvoll möglich ist, zB beim Abspielen von Videos, bei Echtzeitgeschichten wie Videotelefonie hilft das natürlich nichts.
Bei Pulseaudio gibt es obendrein zusätzlich noch pulseeffects, ich glaube seit bullseye.
Als Equalizer-Plugin kann man beispielsweise mbeq (für Multibandequalizer, also die Datei /usr/lib/ladspa/mbeq_1197.so aus swh-plugins) verwenden, aber es finden sich zweifellos unzählige Alternativen, mit unterschiedlichen Fähigkeiten und Vorzügen. Beim Kennenlernen der verschiedenen Plugins, deren Namen und deren Parameter helfen die Kommandozeilentools aus ladspa-sdk (listplugins, analyseplugins)
Allerdings habe ich die Erfahrung gemacht, dass manche Anwendungen nicht mit allen Alsa-Plugins zusammenarbeiten wollen und dann muss man schlimmstenfalls wieder den Umweg über die Loopbacksoundkarte gehen. Das wirkt sich wieder negativ auf die Latenz aus, aber andererseits gibt es dann neben den Alsaplugins und ffmpeg/ffplay noch zahlreiche andere Programme, die man zur Klangmanipulation einsetzen kann, zB brutefir (mit dem habe ich einmal so etwas virtuellen Surround bzw. auch die Simulation von normalen Stereolautsprechern mit Kopfhörern verwirklicht – die Ergebnisse sind zum Teil beeindruckend: viewtopic.php?f=25&t=154019&start=15) oder ecasound.
Alle das lässt sich auch mit Pulseaudio nutzen, mit dem Vorteil, dass es mit Pulseaudio möglich sein sollte, die Latenz auszugleichen – also zumindest bei Quellen, bei denen das sinnvoll möglich ist, zB beim Abspielen von Videos, bei Echtzeitgeschichten wie Videotelefonie hilft das natürlich nichts.
Bei Pulseaudio gibt es obendrein zusätzlich noch pulseeffects, ich glaube seit bullseye.