Τρίτη, Μαρτίου 16, 2010

Σπιτική συνταγή: σειρές στο iPhone α λα Rube-Goldberg

Ορεκτικό

Server - κατεβαστήρι με το rtorrent να δουλεύει ολημερίς και ολονυκτίς. Φροντίζεις τα finished downloads να πηγαίνουν σε διαφορετικό directory. Επίσης έχεις έναν webserver με enabled cgi (so far δοκιμασμένο με Apache, Lighttpd)

Ένα script διαβάζει κάθε λίγο τον φάκελο των finished downloads. Όταν εντοπίζει ένα video, το περνάει ένα χέρι Handbrake για encoding σε Η.264. Το παραγόμενο αρχείο πάει σε έναν φάκελο που είναι accessible μέσω web.

Κυρίως γεύμα

Το Blosxom είναι ένα απίστευτα μινιμαλιστικό blogging software (σε Perl) και αποτελείται από μόνο ένα αρχείο. Δεν χρειάζεται RDMBS καθώς διαβάζει απλά text files. Εγκαθιστούμε Blosxom και το atomfeed plugin.

Γράφουμε μερικές γραμμές ακόμα στο script του ορεκτικού για να προσθέτει entries στο Blosxom blog - τα κάθε entry είναι ένα text αρχείο με την πρώτη σειρά να είναι ο τίτλος του post και το υπόλοιποι είναι το body. Στο entry body βάζουμε web-accessible link για το αρχείο H.264 κατά τα γνωστά της HTML, δηλαδή a rel="enclosure" href="http://path.to/file" κλπ.

Το atomfeed plugin υπάρχει για να δίνει σωστό Atom feed. Παίρνουμε το feed αυτό και το πετάμε μέσα στο iTunes (Advanced-> Subscribe to podcast...).

Καλοφάγωτο.

Χώνεψη

Με την διαδικασία του ορεκτικού δημιουργείς στον server σου μία σελίδα (μάλλον dir listing) με mp4 αρχεία. Η αξία αυτού είναι ότι το iPhone μπορεί να streamάρει απευθείας τα videos αυτά μέσω Safari - δεν χρειάζεται να τα κατεβάσεις. Πολύ βολικό όταν είσαι αραχτός στο κρεβάτι ή στο μπαλκόνι. Επίσης, αν η σύνδεση σου έχει ένα αξιοπρεπές upload, μπορείς να streamάρεις σε οποιοδήποτε σημείο βρίσκεσαι, αρκεί να έχει το iPhone συνδεσιμότητα. Δοκιμασμένο και over 3G, 60-70 χιλιόμετρα νότια της Στοκχόλμης, πάνω σε πούλμαν.

Μπορείς κάλλιστα να σταματήσεις στο ορεκτικό - το κυρίως πιάτο είναι χρήσιμο για λίγους, αλλά έχει ενδιαφέρον για... εκπαιδευτικούς λόγους... λέμε τώρα (μυρίζει και εκεί καμμένο;)

Το αποτέλεσμα του κυρίως πιάτου είναι τα εν λόγω mp4 αρχεία να κατεβαίνουν στο iTunes του υπολογιστή σου ως podcasts. Βάζεις τον server να δουλεύει το βράδυ και το πρωί ανοίγεις το iTunes και -τσουπ- κατεβαίνουν οι σειρές σου. Sync με το iPhone και είσαι έτοιμος.

Φυσικά, μπορείς να αντικαταστήσεις σχεδόν όλα τα software κομμάτια της διαδικασίας με κάτι ανάλογο. Επέλεξα το Blosxom για blogging software διότι ακριβώς δεν χρειάζεται RDBMS - βαριέμαι να στήσω MySQL για να τρέχω μόνο και μόνο ένα δοκιμαστικό blog. Γενικά βαριέμαι τα DBMSs.

Γαρνιτούρα

apt-get install cpulimit
Θα βοηθήσει να κρατάς θερμοκρασία και θόρυβο χαμηλά. Ο server μου είναι ο εργάτης-mac mini, το οποίο υπενθυμίζω ότι έχει G4 (PowerPC) στα 1,33GHz και 512MB RAM. Σε διαδικασίες encoding, ο μικρούλης G4 την ακούει dolby, αρχίζει να βράζει και το ανεμιστήρι πιάνει decibel αεροδρομίου. Βάζω το cpulimit αρκετά χαμηλά (25%) και όλα παραμένουν ήσυχα και δροσερά. Το ζητούμενο είναι να δουλεύει το mac mini χωρίς να με ενοχλεί. Αν βιαζόμουν να πάρω τα encoded αρχεία, δεν θα έβαζα τον G4 να κάνει αυτή την δουλειά. Ευτυχώς το handbrake είναι αρκετά optimized και βγάζει λίγο καλύτερα νούμερα από ffmpeg.

Dropbox
Εγκαθιστάς Dropbox και στον server σου και ρυθμίζεις το rtorrent να κάνει watch τον Dropbox folder για .torrent αρχεία. Βάζεις το Dropbox και στο laptop/desktop σου και απλά πετάς τα καινούρια .torrent αρχεία εκεί μέσα. Το .torrent μεταφέρεται automagically στον server, το τσιμπάει το rtorrent και αρχίζει τα δικά του. Ιδιαίτερα βολικό όταν είσαι στην δουλειά ή στην σχολή - μέχρι να γυρίσεις σπίτι, το torrent έχει κατέβει. Το να χρησιμοποιείς το Dropbox για να μεταφέρεις τα αρχεία video μου φαίνεται σαν κακή επιλογή - δεν το προτείνω.

Handbrake presets
Το Handbrake έχει έτοιμα presets για κάποιες δημοφιλείς συσκευές. Η φυσική παρόρμηση είναι να πας κατευθείαν για το "iPhone & iPod Touch" preset ως γνήσια bitch που είσαι. Επειδή όπως είπα ο G4 αγκομαχάει, προτίμησα το "PSP" preset. Η ταχύτητα encoding είναι διπλάσια χωρίς να έχεις 2 φορές χειρότερη εικόνα. Όταν θα τσιμπήσουμε mac mini με Core i5, το ξαναβλέπουμε το θέμα. Το "PSP" preset δεν αλλάζει τίποτα στην διαδικασία - τα πάντα συνεχίζουν να δουλεύουν όπως είπαμε.

Δεν υπάρχουν σχόλια: