HDS – Late Binding Audio avec OSMF

Vous allez me dire, mais qu’est ce que ce titre signifie en réalité ? C’est assez simple, je vais décomposer :

    • HDS pour HTTP Dynamic Streaming est un protocole de diffusion des vidéos (créé par Adobe). Le principe est similaire au HTTP Live Streaming utilisé sur les iPhone et iPad (j’avais présenté ce protocole).
    • Late Binding Audio : comprenez par là la possibilité d’avoir plusieurs pistes audios associé à un flux vidéo
    • OSMF pour Open Source Media Framework, un framework Flex utilisé pour la gestion des vidéos.

Mon article est tiré d’un article en anglais, j’y ajoute cependant quelques points de détails.

Récupéré une vidéo

Dans un premier temps, vous allez devoir récupérer une vidéo et la préparer dans différents formats. Pour préparer ces vidéos, j’ai utilisé ffmpeg (boîte à outils pour le traitement des vidéos) et transcodé les vidéos en MP4.

  • la vidéo originale avec l’audio encodé en format FLV ou un format compatible MP4
  • la piste audio seule provenant de la vidéo originale également au format FLV ou MP4
ffmpeg -i scenes.mp4 -vn -acodec copy -f mp4 scenes-audio1.mp4
  • une piste alternative audio, de préférence de même durée que la vidéo originale, encodé de la même manière 
ffmpeg -i scenes2.mp4 -vn -acodec copy -f mp4 scenes-audio2.mp4

Packager la vidéo avec les outils f4fpackager

Afin de préparer le contenu, Adobe a rendu disponible un outil : le FilePackager ou f4fpackager; disponible sous Linux ou Windows. On effectue un package pour chacune des vidéos

f4fpackager --input-file=scenes1.mp4 --output-path=test-lba
f4fpackager --input-file=scenes-audio1.mp4 --output-path=test-lba
f4fpackager --input-file=scenes-audio2.mp4 --output-path=test-lba

Vous vous retrouvez maintenant avec les fichiers suivants :

scenes1.f4m
scenes1Seg1.f4x
scenes1Seg1.f4f
scenes-audio1.f4m
scenes-audio1Seg1.f4x
scenes-audio1Seg1.f4f
scenes-audio2.f4m
scenes-audio2Seg1.f4x
scenes-audio2Seg1.f4f

Créer le fichier f4m principal

Nous allons manipuler le fichier f4m afin de prendre en compte les pistes audios. Pour cela, il faut récupérer dans les balises bootstrapInfo et media dans les fichiers scenes-audio1.f4m et scenes-audio2.f4m et les copier dans le fichier scenes1.f4m à la suite de la balise media


                AAABS2Fic3QAAAAAAAAADgAAAAPoAAAAAAAEBWoAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAEIBAAABBmFmcnQAAAAAAAAD6AAAAAAPAAAAAQAAAAAAAAAAAAAQaAAAAAIAAAAAAAAQkAAAETAAAAADAAAAAAAAIegAAA2sAAAABAAAAAAAAC+AAAATiAAAAAUAAAAAAABC4AAADhAAAAAGAAAAAAAAUPAAABEwAAAABwAAAAAAAGH4AAAPoAAAACEAAAAAAAH0KAAAD6AAAAAiAAAAAAACA6AAABS0AAAAIwAAAAAAAhhAAAAPoAAAAD0AAAAAAAOqcAAAD6AAAAA/AAAAAAADyWAAABEwAAAAQAAAAAAAA9poAAAPoAAAAEIAAAAAAAP5WAAADBwAAAAAAAAAAAAAAAAAAAAAAA==
        
        
                
                        AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAcHjU/fO2RgAFd2lkdGgAQIaAAAAAAAAABmhlaWdodABAeUAAAAAAAAAMdmlkZW9jb2RlY2lkAgAEYXZjMQAMYXVkaW9jb2RlY2lkAgAEbXA0YQAKYXZjcHJvZmlsZQBAU0AAAAAAAAAIYXZjbGV2ZWwAQD8AAAAAAAAADnZpZGVvZnJhbWVyYXRlAEA5AAAAAAAAAA9hdWRpb3NhbXBsZXJhdGUAQOdwAAAAAAAADWF1ZGlvY2hhbm5lbHMAQAAAAAAAAAAACXRyYWNraW5mbwoAAAACAwAGbGVuZ3RoAEFZIZgAAAAAAAl0aW1lc2NhbGUAQNhqAAAAAAAACGxhbmd1YWdlAgADZW5nAAAJAwAGbGVuZ3RoAEFoIQAAAAAAAAl0aW1lc2NhbGUAQOdwAAAAAAAACGxhbmd1YWdlAgADZW5nAAAJAAAJ
                
        

Ajouter des attributs au tags media dans le f4m principal

Pour faire fonctionner le multi-audio, il faudra rajouter les balises suivantes :

  • alternate = “true”
  • type = “audio”
  • lang=”français”
  • bitrate=” “

Une fois tout cela prêt, vous aurez à compiler la dernière version de OSMF et à lire la vidéo en appelant le f4m principal que vous venez de préparer.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.