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.