Webradio tageweise aufzeichnen

Webradio-Streams lassen sich mit FFmpeg nicht nur aufzeichnen, sondern bereits während der Aufnahme automatisch in einzelne Dateien aufteilen. So kann beispielsweise für jeden Kalendertag eine eigene MP3-Datei erzeugt werden. Für die Aufzeichnung kann ein kleines Shellskript verwendet werden:

#!/bin/bash
ffmpeg \
    -hide_banner \
    -loglevel warning \
    -i "https://stream.example.org" \
    -c copy \
    -f segment \
    -segment_atclocktime 1 \
    -segment_time 86400 \
    -strftime 1 \
    "/home/user/webradio/%Y-%m-%d.mp3"

Der Stream wird hierbei kontinuierlich aufgezeichnet und automatisch in Dateien mit einer Länge von jeweils einem Kalendertag aufgeteilt.

Audiodatei unter macOS trimmen

Wer Stille am Anfang oder Ende einer Audiodatei trimmen möchte, kann hierfür natürlich den Audioeditor seiner Wahl nutzen. Doch manchmal gerät dieser an seine Grenzen, z. B. bei zu großen Dateien. In einem solchen Fall können Werkzeuge wie FFmpeg genutzt werden. Unter macOS muss dieses Werkzeug über Homebrew installiert werden:

brew install ffmpeg

Anschließend kann mit der Bearbeitung der Audiodatei begonnen werden:

ffmpeg -i input.mp3 -af silenceremove=1:0:-50dB -b:a 192k output.mp3

Neben der Eingabe- und Ausgabedatei wird mittels der dB-Angabe eingestellt, ab wann das Audiosignal als Stille erkannt wird. Über einen zusätzlichen Parameter wird daneben die Bitrate der Ausgabedatei auf 192 Kbps eingestellt.

Aufnahme mittels SoX unter macOS

Wer auf der Suche nach einer Möglichkeit ist, im Terminal unter macOS, eine Aufnahme in eine Datei zu schreiben, kann hierfür SoX nutzen. Dazu sollte dieses im ersten Schritt über Homebrew installiert werden:

brew install sox lame

Neben dem Paket für SoX wird lame installiert um eine Encodierung zu MP3 zu ermöglichen. Nach der Installation kann die Aufnahme im Terminal mittels:

sox -t coreaudio "default" -C 256 output.mp3

gestartet werden. In diesem Fall stellt default das Gerät dar, von dem aufgenommen wird. Anschließend wird über den aktuellen Status der Aufnahme informiert:

Input File     : 'default' (coreaudio)
Channels       : 2
Sample Rate    : 48000
Precision      : 32-bit
Sample Encoding: 32-bit Signed Integer PCM

In:0.00% 00:00:05.23 [00:00:00.00] Out:250k  [    ==|==    ]        Clip:0

Soll die Aufnahme gestoppt werden, kann dies mittels Control + C, erledigt werden.

M4A-Dateien im Terminal zu MP3-Dateien umwandeln

Mittels FFmpeg und dem find-Kommando lassen sich M4A-Dateien schnell in MP3-Dateien umwandeln. Dazu muss im gewünschten Verzeichnis der Befehl:

find . -iname '*.m4a' -exec bash -c 'directory=$(dirname "{}"); base=$(basename "{}"); ffmpeg -i "{}" -ab 192k "$directory/${base%.*}.mp3"' \;

im Terminal ausgeführt werden. Anschließend können die M4A-Dateien auf Wunsch gelöscht werden:

find . -type f -name '*.m4a' -delete

Damit ist die Konvertierung abgeschlossen und die MP3-Dateien sind dort zu finden, wo vorher die M4A-Dateien lagen.

Mehrere MP3s unter macOS zusammenführen

Unter macOS war ich auf der Suche nach einer Lösung um mehrere MP3-Dateien zu einer Datei zusammenzufügen. In der Theorie ist dies mittels ffmpeg möglich, allerdings sollte es in diesem Fall eine möglichst unkomplizierte Lösung werden. Fündig wurde ich dann beim Tool mp3cat, welches auf GitHub zu finden ist. Soll zum Beispiel ein Ordner zu einer einzelnen Datei zusammengeführt werden, so geschieht dies im Terminal mit dem Befehl:

mp3cat -d SymphonyOfEvangelion
Neben der Nutzung von ganzen Verzeichnissen können auch einzelne Dateien zusammengeführt werden:
mp3cat music1.mp3 music2.mp3 music3.mp3

Weitere Informationen finden sich auf der Webseite des Autors. Lizenziert ist das Tool unter der Unlicense und damit praktisch Public Domain.