Archiv/Skripte/UKW-Radio mit TV-Karten ohne externen Soundausgang

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Installation von Programmen

  2. ⚓︎ Einen Editor öffnen

  3. ⚓︎ Ein Programm starten

  4. ⚓︎ Programme zum Menü hinzufügen

  5. ⚓︎ Rechte für Dateien und Ordner ändern

  6. ⚓︎ Konfigurationseditor starten

Inhaltsverzeichnis
  1. Installation
  2. Vorbereitung
  3. Verwendung
  4. Alternative

Grundsätzlich ist es kein Problem, mit einer entsprechenden Radio-Karte mit Ubuntu UKW-Radio zu empfangen, es gibt einige Programme dazu. Schwieriger wird es allerdings, wenn die Karten, wie viele Hybrid-USB-TV-Karten mit FM-Tuner, keinen eigenen Soundausgang haben. Sie werden zwar als Audiokarten erkannt, allerdings ist es nicht ohne weiteres möglich, ihnen direkt Klänge zu entlocken. In den gängigen Mixer-Programmen (amixer, alsamixer etc.) ist kein Mixereintrag für den Ausgang der Karten vorhanden, oder lässt sich nicht bedienen, auch in PulseAudio erscheinen sie zwar als Eingabe-, nicht aber als Ausgabegeräte. Nutzbar sind sie aber über einen Umweg: Aufnahme des Senders, und direktes Abspielen der Aufnahme. Dafür kann das im folgenden beschriebene Skript verwendet werden.

Installation

Folgende Pakete müssen installiert [1] sein

Vorbereitung

Zunächst muss Gnomeradio so eingestellt werden, dass überhaupt es Sender empfangen und Frequenzen verändern kann. Dazu mit dem Konfigurationseditor [6] einige der Schlüssel in /apps/gnomeradio anpassen:

Die weiteren Einstellungen sind relativ unbedeutend, da Gnomeradio für die Karten weder einen Mixer noch ein mixer-device verwenden kann; auch mute on exit ist überflüssig, weil Gnomeradio keinen Sound ausgeben muss/kann. Eine Terminalausgabe

VIDIOC_S_CTRL: Invalid argument

bei Betrieb des Gnomeradios ist für die beschriebene Verwendung unerheblich.

Damit der verwendete GNOME SoundRecorder auch das richtige aufzeichnet, muss als Aufnahmequelle die FM/TV-Karte angegeben werden (beispielsweise im PulseAudio-Volume-Control-Fenster die Karte im Eingaberäte-Reiter als "Vorgabe" einstellen).

Das Skript selbst herunterladen, unter einem aussagekräftigen Namen (z.B. UKW-Skript.sh) abspeichern und ausführbar machen [5].

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/bin/bash
# Skript zur UKW-"Umleitung"
# Autor Heinrich Schwietering (c) 2009
gnome-sound-recorder & 
sleep 2
xte 'keydown Control_L' 'keydown R' 'keyup Control_L' 'keyup R' 
gnome-mplayer /tmp/gsr*.* &
gnomeradio &&
killall gnome-mplayer
sleep 1
killall gnome-sound-recorder && rm /tmp/gsr*.*
exit 0

./Gnomeradio-etc.png

Verwendung

Das Skript im Terminal ausführen: damit wird Gnomeradio aufgerufen, unmittelbar danach startet der GNOME_SoundRecorder (und die Aufnahme); gleich darauf wird der GNOME-MPlayer mit der Aufnahme-Datei gestartet (natürlich kann auch jeder andere Player verwendet werden). Die Wiedergabe des Radioprogramms ist um einige Sekunden verzögert; man merkt es, wenn man in Gnomeradio den Sender wechselt. Mit Beenden des Gnomeradios wird die Aufnahme und Wiedergabe sofort gestoppt, die angelegte Temporär-Datei umgehend gelöscht.

Komfortabler für den Aufruf ist es, sich im Menü einen Starteintrag [4] zu erstellen und das Skript so zu starten [3].

Falls die Aufnahme nicht gestartet wird, müssen ggf. die "sleep"-Werte im Skript heraufgesetzt werden; diese sind abhängig von der Leistungsfähigkeit der verwendeten Hardware, und der Auslastung zur Zeit des Aufnahmestarts (ggf. sind auch kürzere Zeiten möglich). Dazu das Skript in einem Editor bearbeiten [2].

Diese Vorgehensweise ist Grundlage für das Skript UKW-Radio zeitgesteuert aufnehmen.

Das Verfahren funktioniert entsprechend auch mit Kradio, das Programm selbst ist allerdings schwieriger zu konfigurieren.

Alternative

Theoretisch sollte auch eine noch zeitnähere Umleitung des Sounds mit arecord/aplay möglich sein. Der Befehl sähe so aus:

arecord -D hw:1,0 -r 48000 -c 2 -f S16_LE --buffer-size 1000 | aplay --buffer-size 1500 

als "hw" muss die tatsächliche Kartennummer eingetragen werden. Allerdings führt der Aufruf in der Praxis ggf. zu nur sehr kurzen Wiedergaben, bis es nach etlichen Pufferunterläufen zu einem Pufferüberlauf kommt:

Pufferunterlauf!!! (mindestens 33,949 ms lang)
Pufferunterlauf!!! (mindestens 2353,804 ms lang)
Pufferunterlauf!!! (mindestens 126,124 ms lang)
Pufferunterlauf!!! (mindestens 51,523 ms lang
Pufferüberlauf!!! (mindestens 1,047 ms lang)
arecord: pcm_read:1617: Lesefehler: Input/output error

und die Wiedergabe beendet wird. Ggf. handelt es sich dabei aber um ein Hardware/Leistungs-Problem; auch die Werte für "--buffer-size" müssen eventuell im "try-and-error"-Verfahren für das eigene System angepasst werden.