2017-02-21 3 views
1

Existe-t-il une seule commande pour transcoder mp4 video + aac en HLS à plusieurs résolutions?Synchronisation et simultanéité pour la création de résolutions hls pour la diffusion en direct


J'ai un serveur de conversion, et je pense que pour diffuser en continu plusieurs résolutions, je dois créer toutes les résolutions en même temps et ce processus doit être simultané.
Je soulevé cette question, parce que je fais ce processus wtih ci-dessous l'exécution de ces codes à 4 cmd pour créer 4 séparement résolutions d'une vidéo examply en même temps:
1- 720p

ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s hd720 -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 720p/out.m3u8 

2- 480p

ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s hd480 -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 480p/out.m3u8 

3- 360p

ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s nhd -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 360p/out.m3u8 

4- 200p

ffmpeg -i 123.mp4 -c:a aac -strict experimental -c:v libx264 -s cga -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 200p/out.m3u8 

mais en procédant de cette manière, vous avez quelques problèmes.
1- les parties .TS de chaque résolutions ne créent pas avec une autre partie de résolutions en même temps (ce problème fait que dans les résolutions de commutation, le joueur ne peut pas chercher à continuer de la résolution choisie, parce que cette partie ne crée pas encore).
2- Vous avez exécuté des threads pour chaque diffusion en direct.

Répondre

2

Voici la réponse de mes Notez que vous devez être défini -hls_time Si vous voulez que la partie numérique de chaque résolution soit même.

ffmpeg -re -i 123.mp4 
-c:a aac -c:v libx264 -s hd480 -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 480p/out.m3u8 
-c:a aac -c:v libx264 -s nhd -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 360p/out.m3u8 
-c:a aac -c:v libx264 -s cga -aspect 16:9 -f hls -hls_list_size 0 -hls_time 2 200p/out.m3u8