SSH audio forwarding για μεταφορά ήχου μέσω ssh

Στο σημερινό άρθρο θα δούμε πως μπορούμε να μεταφέρουμε audio μέσω μιας σύνδεσης ssh με απομακρυσμένο server.

ssh-audio

Παρόλο που η χρήση της σύνδεσης μέσω ssh χρησιμοποιείται συνήθως για απομακρυσμένη διαχείριση κάποιου υπολογιστή η διακομιστή, υπάρχουν όμως περιπτώσεις που το χρησιμοποιούν κάποιοι για X fordwarding (απομακρυσμένη σύνδεση με επιφάνεια εργασίας) ενώ ακόμα πιο λιγότεροι είναι αυτοί που το κάνουν σωστά το X forwarding:

ssh -Y user@hostname

Σε αυτό το άρθρο δεν θα ασχοληθούμε με αυτό, αλλά με κάτι που ακόμα πιο λίγοι άνθρωποι κάνουν… να μεταφέρουν audio μέσα από μία κρυπτογραφημένη σύνδεση😛

Για τις δοκιμές σας, μπορείτε να χρησιμοποιήσετε ενα VirtualBox με εγκατεστημένο Ubuntu Server 14.04

SSH audio forwarding: Βήμα 1 – Encoding

Σε πρώτη φάση θα κάνουμε encoding ένα *.wav αρχείο ήχου χρησιμοποιώντας το ogg. Γιατί να το κάνουμε αυτό; Γιατί το ogg αρχείο είναι μικρότερο σε μεγεθος και θα μεταφερθεί πιο γρήγορα, μέσω internet, από ότι ένα wav αρχείο.

Αφού συνδεθείτε μέσω ssh στον server σας (ή στο VM σας) κατεβάστε ένα *.wav αρχείο ήχου από το Internet (έχει κάτι ωραία ο Duke Nukem :P) πχ:

wget http://www.wavsource.com/snds_2015-02-22_2812738926347607/video_games/duke/clean-up.wav

Για να το μετατρέψουμε σε ogg φορμά, θα πρέπει πρώτα να εγκαταστήσουμε το απαραίτητο εργαλείο oggenc το οποίο παρέχεται από το vorbis-tools. Σε Ubuntu/Debian/Mint το κάνετε εγκατάσταση ως εξής:

sudo apt install vorbis-tools

Αφού γίνει η εγκατάσταση, κάντε το αρχείο που κατεβάσατε, encode χρησιμοποιώντας τον ogg encoder:

oggenc file.wav

Το output θα είναι κάπως ετσι:

The file sound will be converted into *.ogg format and it will also be smaller in size.

Opening with wav module: WAV file reader
Encoding "clean-up.wav" to "clean-up.ogg" at quality 3.00
[ 66.1%] [ 0m00s remaining] |

Done encoding file "clean-up.ogg"

File length: 0m 02.0s
Elapsed time: 0m 00.0s
Rate: 51.6728
Average bitrate: 24.8 kb/s

SSH audio forwarding: Βήμα 2 – Decoding

Σε δεύτερη φάση, θα πρέπει ο server από τον οποίο θέλετε να στριμάρετε το αρχείο, να μπορεί να αναπαράγει το αρχείο. Δηλαδή αν το μηχάνημα δεν έχει καν audio device, μην το δοκιμάσει κανείς και μετά γκρινιάζει γιατί δεν δουλεύει. Επίσης, αν το δοκιμάσετε σε VM, τότε δώστε virtual audio device «AC97» (με αυτήν το τέσταρα και δουλεύει).

Στην συνέχεια πρέπει να ρυθμίσουμε με έναν κειμενογράφο ώστε τα vorbis-tools να χρησιμοποιούν ALSA από προεπιλογή (αντί του pulse audio).

vim /etc/libao.conf
default_driver = alsa

Αφού αποθηκεύσετε, δοκιμάστε να παίξετε το αρχείο:

ogg123 clean-up.ogg

Προφανώς δεν θα ακούσετε κάτι, αλλά θα δείτε το εξής output:

Playing: -
Ogg Vorbis stream: 1 channel, 8000 Hz 

SSH audio forwarding: Βήμα 3 – Streaming

Αν φτάσατε μέχρι εδώ σημαίνει ότι ο παραπάνω server μπορεί να παίξει το αρχείο ήχου (clean-up.ogg στην περίπτωση μου) χρησιμοποιώντας ALSA χωρίς κανένα πρόβλημα. Τώρα όσο για να το ακούσουμε και εμείς από το δικό μας local μηχάνημα, δίνουμε τα εξής:

ssh user@hostname 'cat /path/to/file.ogg' | ogg123 -

Σημείωση: πετάξτε το σε κάνα MOTD, ή ηχογραφείστε τον εαυτό σας και να ακούγεται μόλις κάνει ο άλλος SSH Login😛

2 thoughts on “SSH audio forwarding για μεταφορά ήχου μέσω ssh

  1. «ενώ ακόμα πιο λιγότεροι είναι αυτοί που το κάνουν σωστά το X forwarding:
    ssh -Y user@hostname»

    Κι εγώ νόμιζα ότι το -Y σήμαινε κάτι σε «κρυπτογραφημένο», αλλά από ότι κατάλαβα σημαίνει ακριβώς το ανάποδο. Με το -Y *παρακάμπτονται* κάποιοι έλεγχοι ασφαλείας, για λόγους συμβατότητας και όταν ο server είναι «έμπιστος».

    Ορθώς το X-Forwarding είναι «opt-in», καθώς (υποτίθεται τουλάχιστον) ότι υπάρχει δυνατότητα κάποιος που έχει έλεγχο του server να υποκλέψει πχ τι γράφει κάποιος στον client.

    • Να ήταν μόνο αυτό:P Ευτυχώς τουλάχιστον όλα γίνονται μέσω ssh… και δεν έχουμε πλέον telnet😛 xixixix

Απορίες, παρατηρήσεις, ιδέες... Ελεύθερα ! Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s