Comment pouvons-nous transcoder un flux rtmp en direct à vivre hls flux en utilisant ffmpeg?
Je suis en train de convertir un flux rtmp en direct à hls flux en temps réel.
J'ai eu une idée après avoir lu
je suis capable de convertir les flux rtmp en direct à hls, mais pas au moment de l'exécution. lorsque je lance la commande et de test pour une lgv fichiers (.m3u8 et .ts) je ne suis pas en mesure de voir, mais quand je l'interruption de la commande et de vérifier là, je reçois le hls les fichiers nécessaires.
J'ai cherché sur google une solution, mais pas en mesure d'obtenir une réponse.
Tout organisme peut-il m'aider?
Merci d'Avance...
Vous devez vous connecter pour publier un commentaire.
C'est un petit guide pour les HLS streaming avec n'importe quel fichier d'entrée ou de flux:
Je suis user1390208 de l'approche, donc j'utilise FFMPEG seulement de produire le flux rtmp qui mon serveur reçoit alors de fournir HLS. Au lieu de l'Irréel/Wowza/Adobe, j'utilise le serveur gratuit nginx avec le rtmp module, ce qui est assez facile à l'installation. C'est la façon dont je le fais en bref:
Any input file or stream -> ffmpeg -> rtmp -> nginx server -> HLS -> Client
ou plus détaillée:fichier vidéo d'entrée ou de flux (http, rtmp, quoi) --> ffmpeg transcode live à x.264 + aac, sorties à rtmp --> nginx prend le rtmp et sert un HLS à l'utilisateur (le client).
Donc, côté client, vous pouvez utiliser VLC ou autre et vous connecter à l' .m3u8 fichier qui est fourni par nginx.
C'est la façon dont j'utilise ffmpeg pour transcoder mon fichier d'entrée pour rtmp:
(l' .mkv est 1080p avec un son 5.1, selon votre entrée, vous devriez utiliser de faibles débits!)
Où vous obtenez le flux rtmp à partir?
N'importe quel serveur X avec un flux de Y? Ensuite, vous devez modifier le ffmpeg commande:
ou si votre flux rtmp est déjà h.264/aac encodés, vous pouvez essayer d'utiliser le
copy
option dans ffmpeg pour diffuser du contenu directement de nginx.Comme vous le voyez dans mon fichier de configuration de nginx:
rtmp://localhost:12345/hls/mystream;
location /hls
. Cela signifie que dans VLC je peux me connecter àhttp://myServer:80/hls/mystream.m3u8
pour accéder au flux HLS.Tout est clair? Heureux en streaming!
location /hls
à laapplication hls
et obtenir le flux de /hls/mystream.m3u8 (au moins, il ne fonctionne pas pour moi que facile).Essayer cette RTMP à HLS paramètres de ligne de commande:
Il y a peut être un peu de retard dans les HLS d'alimentation. Cependant, il va fonctionner.
Comme une mise à jour à cette question, j'ai réussi à terminer le live de transcodage de RTMP à HLS sans l'utilisation de ffmpeg, comment?
Eh bien tout simplement en utilisant exactement le même fichier de configuration de nginx partagé par user3069376 et d'être très prudent sur les chemins qui vous sont génération du .m3uh manifeste, le hls option dans le RTMP module doit prendre soin d'elle.
Comme pour le lecteur vidéo de l'Video.Js a travaillé comme un charme o