Encodage vidéo pour diffuser en streaming HTTP sur l’iPhone

building-iphoneLe tutoriel de Ioncannon.net est un peu difficile à suivre : les bibliothèques sont nombreuses et chaque version a ses petites incompatibilités qu’il faut dompter. Je me suis inspiré d’un très bon billet de RoRCraft combiné avec un patch à priori pas encore intégré par la team des developpeurs FFMpeg. Cela résoud notamment les problèmes de « dts < pcr, TS is invalid ».

Pour simplifier la tâche des utilisateurs Mac OS 10.5, j’ai compilé ffmpeg ainsi que le segmenter open source : télécharger.

Bientôt un petit script permettant d’encoder à la volée de multiples débits.

Update : Vous avez sans doute un « dyld: Library not loaded: /usr/lib/libfaac.0.dylib ». Je rajoute les libs qui vont bien demain ;-)
Update 2 (26/08 à 17:00) : j’ai mis les librairies dans le fichier zip (à copier dans votre répertoire /usr/lib)

Tags : , , ,

8 réponses à to “Encodage vidéo pour diffuser en streaming HTTP sur l’iPhone”

  1. Nels dit :

    Y-a-t-il la même chose mais compilé sous windows ?

  2. BreakingTheRabbit dit :

    Merci !!!

  3. Rémi dit :

    Merci pour ce tuto !!!!
    mais j’ai un probleme je suis sur snow leopard, et j’ai cette erreur Library not loaded: /usr/lib/libfaad.2.dylib, j’ai donc téléchargé et installé cette librairie et maintenant j’ai cette erreur
    /usr/lib/libfaad.2.dylib: mach-o, but wrong architecture
    /usr/lib/libfaad.2.dylib: mach-o, but wrong architecture
    merci de m’aider.

  4. bitonio dit :

    Salut Rémi,

    Peut être en passant par MacPort tu pourrais avoir cette bibliothèque.

    http://www.macports.org/

    Je vois que la lib en question est dispo :-)
    http://www.macports.org/ports.php?by=name&substr=faad

    Bon courage !

  5. Pierrot dit :

    Bonjour,

    « Bientôt un petit script permettant d’encoder à la volée de multiples débits. »
    => Est-ce que ce script est déjà disponible? (j’ai fait une recherche sur le blog mais je n’ai rien trouvé…)

    Pour la VOD, je n’ai pas de problème pour faire du multi débits, en revanche pour une vidéo live, il faudrait lancer l’encodage exactement au même instant, et éviter toute latence au niveau de l’encodeur vidéo (VLC pour mes tests), ce qui n’est pas triviale je pense.

    Y aurait-il un mécanisme particulier pour synchroniser les mediastreamsegmenter d’un flux live?

    Merci d’avance

  6. bitonio dit :

    Salut Pierrot,

    Pour le LIVE, le principe est un peu le même sauf qu’en entrée le segmenter officiel d’Apple écoute sur un port de la machine les flux. Il découpe ensuite à la volé et sauvegarde les fichiers en local ou en remote sur un serveur web distant. Dans une solution plus open-source, on peut transmettre les données vidéo d’une application par le mécanisme de pipe.

    A ce stade, il y a plusieurs options dont deux que j’ai vu fonctionner :

    - rsync entre les fichiers fragments et playlists et le serveur distant
    - HTTP POST/PUT (webdav) branché après chaque nouveau fragment fabriqué

    Ftp/sftp/scp peuvent être envisagés aussi mais sont un peu plus lent au niveau de l’authentification

    Il y a un peu de latence même avec des encodeurs hardware mais au final pas tant que ça (moins de 30 secondes constaté). Carlson McDonald a même fait un petit lab avec un tel setup : http://www.ioncannon.net/meta/564/iphone-windowed-http-live-streaming-server/

  7. David dit :

    Bonjour,

    Je cherche a faire du HTTP Streaming sur mon mac snow leopard mais je ne comprends pas comment utiliser la command-line mediafilesegmenter. Est-ce que vous pouvez me venir en aide ?

    Merci

  8. bitonio dit :

    Bonjour David,

    Qu’est-ce qui vous bloque dans l’utilisation de l’outil d’Apple ?

Laisser un commentaire