Übertragen von Dateien mit Netcat/nc

Einzelne Dateien können auch mit netcat übertragen werden. Dazu müssen die
Dazu müssen auf dem Sender und dem Empfänger die folgenden Anweisungen befolgt werden:

Auf dem Empfänger:

nc -l -p 8888 -w 5 > dest < /dev/null

Beim Absender:

nc servername 8888 < source

Erläuterung: Der Empfänger startet einen Serverdienst, der auf den ersten Teilen basiert,
der auf Anfragen am TCP-Port 8888 reagiert. Mit der Anweisung > dest wird der Inhalt der empfangenen Daten in eine Datei mit dem Namen dest geschrieben.

Der Dateitransfer wird auf dem Sender durch die Eingabe der zweiten
Anweisung gestartet. Hierbei wird eine Verbindung mit dem Server servername über Port 8888 initiiert und die Datei source übertragen.

Die Datei wird unverschlüsselt und unkomprimiert übertragen. Mit Werkzeugen wie gzip und openssl könnte dies transparent umgesetzt werden.

Erzeugen von Spektrogrammen mit arecord, sox und ffmpeg/avconv

Erstellen eines Spektrogramms (Bild)

Der folgende Befehl zeichnet eine WAV-Datei mit ALSA (Device 2.0) auf.
In diesem Beispiel wird Sox in den Prozess eingefügt – was in diesem Fall eigentlich unnötig ist – aber dennoch verwendet werden könnte, um verschiedene Filter auf die resultierende test.wav-Datei anzuwenden:

arecord -D hw:2,0 -r 32000 -f S16_LE -c 1 -t wav | sox -t wav -c 1 -L -b 16 -r 32000 - test.wav

Mit der neu erstellten Datei test.wav kann nun ein Spektrogramm erstellt werden:

sox test.wav -n spectrogram -o image.png

Der folgende Befehl erstellt eine WAV-Datei mit Alsa (Device 2.0). In diesem
Fall wird zusätzlich Sox über die Pipeline geleitet, was hier völlig unnötig ist,
Allerdings könnte Sox der resultierenden test.wav noch verschiedene Filter hinzufügen
ändern:

arecord -D hw:2,0 -r 32000 -f S16_LE -c 1 -t wav | sox -t wav -c 1 -L -b 16 -r 32000 - test.wav

Mit der soeben erstellten Datei test.wav wird nun ein Spektrogramm erzeugt:

sox test.wav -n spectrogram -o image.png

Ein ähnliches Spektrogrammbild kann mit avconv direkt aus einer Videodatei erstellt werden:

avconv -i test.avi -lavfi showspectrumpic=s=hd480:legend=0,format=yuv420p out.png

Erstellen eines Spektrogramms (Video)

Die folgende Anweisung erstellt ein Spektrogramm aus einem Video test.avi. Dieses wird als Video unter dem Namen out.avi gespeichert.

Anstelle von avconv hätte auch ffmpeg verwendet werden können. Die Debian-Version unterstützt hier derzeit nicht alle Parameter.

Alternativen mit MPlayer und Sox

Sie können auch ein Spektrogramm aus einem Video mit mplayer oder einer Kombination aus mplayer und sox erzeugen.

Extrahieren Sie zunächst eine WAV-Datei mit mplayer:

mplayer test.mp4 -ao pcm:file=/dev/stdout -vo null > test.wav

Erstellen Sie dann das Spektrogramm:

sox test.wav -n spectrogram -o test.png

Vergleich von Spektrogrammen:

Auf diese Weise erstellte Spektrogramme können direkt verglichen werden.
Doch selbst bei scheinbar identischen WAV-Dateien kann dieser Vergleich schwierig sein.

Um Unterschiede besser sichtbar zu machen, empfiehlt es sich, ein Spektrogramm diff zu erstellen.

Erstellen Sie zunächst eine Diff-WAV-Datei:

sox -m -v 1 source1.wav -v -1 source2.wav diff.wav

Dann erzeugen Sie das Spektrogramm diff:

sox diff.wav -n spectrogram -o diff.png