Motivation
Da war eben im Radio eine Meldung, die ich nochmal hoeren moechte. Oder ein Versprecher, an dem ich mich noch in einem Jahr erfreuen werde. Oder einfach ein fuer mich relevanter Beitrag, den ich behalten moechte. Aber nun ist es natuerlich zu spaet zum Mitschneiden... ich koennte natuerlich hoffen, dass der Beitrag wiederholt wird. Aber dann bin ich den Rest der Zeit bis das der Fall ist -- oder auch nicht -- mit dem Warten beschaeftigt.
Natuerlich kann ich auch die unter streamrecording.html beschriebene Loesung bestaendig mitlaufen lassen. Das habe ich sogar eine ganze Weile getan. Das hat aber zwei Nachteile:
- Es benoetigt relativ viel Plattenplatz. Der Stream von NDR Info benoetigt fuer eine Minute ungefaehr ein Megabyte Speicher. Macht grob ueberschlagen 1440 Megabytes an Speicher fuer einen Tag. In der Praxis mehr. Warum?
- Die Viertelstundenschnippsel ueberlappen jeweils noch um ca. 10 Sekunden.
- Die Aufrufe von
sleepals Zeitbasis sind nicht hinreichend praezise. Wenn ich das Skript urspruenglich so gestartet habe, dass die Schnippsel in den Minuten:00, :15, :30, :45beginnen, dann schiebt sich die Zeit solange in kleinen Betraegen weiter, bis es irgendwann:01, :16, :31, :46geworden ist. In diesem Moment werden weitere 1440 MB Plattenplatz faellig... das hoechste der Gefuehle war mal:22. Da war klar, dass sich das Problem einfacher loesen lassen muss.
Plattenplatz ist heute eigentlich kein Argument mehr. Aber bedauerlicherweise kann ich einen fachgesellschaftlichen Konsens nicht in nutzbaren Plattenplatz umwandeln...
- Ich muss, wenn ich einen Mitschnitt finden will, immmer genau wissen, was die Serveruhr geschlagen hat, um die richtige Datei auf meinen eigenen Rechner herunterzuladen. Die Serveruhr darf ja auch mal falsch gehen... um ein paar Minuten. Zugegeben, sollte sie nicht, aber sie muss dennoch nicht mit der naechsten Uhr auf meinem Schreibtisch synchron laufen...
- Ich habe primaer einzelne -- besonders kuriose oder sonstig bemerkenswerte -- Beitraege aufgehoben. Diese waren meist unter drei Minuten lang.
- Ich habe mich jedes Mal darueber geaergert, dazu eine fuenfzehn Megabytes grosse Datei von einem entfernten Server zum mir holen zu muessen, sie dann im Audioeditor meiner Praeferenz laden zu lassen um anschliessend die fuer mich interessanten drei Minuten zu suchen.
Idealerweise waren diese drei Minuten auf zwei Dateien aufgeteilt.
n gelaufenen Minuten aus dem Stream.
Details
Eigentlich ist der obenstehende Wunsch in der Summe erfreulich einfach zu realisieren, wenn ich den Stand der Technik betrachte:
Tut das, was er soll. Buffert mir 5 MB Daten, die er auf CTRL-C hin in eine mit Timestamp und per Stream uebertragener Senderkennung benannte Datei im Workdirectory ausschuetten kann.
In der Praxis sieht das dann laufenderweise z.B. so aus:
[ad001@glas ~/pfad/zum/programm/namen]$ ./a http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_hi_mp3 Given URL is http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_hi_mp3 Aquiring buffer space for 1048576 Bytes (1024 KBytes) Connecting...connected. File name changed to NDR_Info-YYYYMMDD-HHMMSS.mp3 Stream Name: "NDR Info" Stream Description: "NDR Info" Press CTRL-C to dump buffer. [ | ] 56 %Hier mit einem sehr kleinen Puffer von nur einem Megabyte, da ich noch am Testen war. Die "Progressleiste" unten ist uebrigens die prozentuale Position des Schreibpointers im Ringspeicher -- eine Spielerei, die ich mir aus zwei Gruenden nicht verkneifen konnte: 1. Damit man zumindest irgendwelche Aktivitaet sieht.
2. Weil ich kann :)