Le service de streaming d’Alibaba Cloud permet de mettre en place rapidement une infrastructure de vidéo en direct sans gérer de serveur media. Ce guide montre comment associer FFmpeg pour le push, Django pour la page client et Aliplayer pour la lecture, avec support HTTP et HTTPS.
- Préparation des domaines
Dans la console Alibaba Cloud, ajoutez deux domaines : un pour l’envoi du flux (push.example.com) et un pour la lecture (play.example.com). Ces domaines doivent être enregistrés et avoir une résolution DNS valide.
Ensuite, dans les réglages du domaine de lecture, associez-le au domaine de push. Il est indispensable d’ajouter une configuration CORS sur le domaine de lecture avec l’entête Access-Control-Allow-Origin: * afin d’autoriser la lecture depuis d’autres origines.
- Génération des adresses de streaming
Utilisez l’outil intégré de génération d’URL. Vous devez choisir une AppName et un StreamName uniques pour chaque flux. L’interface produit alors une URL de push (RTMP) et trois URLs de lecture (RTMP, FLV, HLS). Pour des tests, il est possible de désactiver la chaîne d’authentification (AuthKey) dans les paramètres de sécurité.
- Push avec FFmpeg
FFmpeg est idéal pour envoyer un flux vers l’URL RTMP. Voici un exemple capturant l’écran (macOS) :
ffmpeg -f avfoundation -i "0" -vcodec libx264 -preset fast -acodec aac -f flv rtmp://push.example.com/live/mydemo
Pour diffuser un ficheir vidéo en boucle :
ffmpeg -re -stream_loop -1 -i demo.mp4 -c:v libx264 -c:a aac -f flv rtmp://push.example.com/live/mydemo
Le flux apparaît immédiatement dans l’interface de monitoring d’Alibaba Cloud si l’envoi est correct.
- Lecture côté client avec Django
Le backend Django sert une page contenant le lecteur Aliplayer. Une vue simple :
def serve_player(request):
return render(request, 'live_player.html')
Le template live_player.html intègre les dépendances CDN d’Aliplayer et configure le lecteur pour le flux HLS :
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://g.alicdn.com/de/prismplayer/2.8.1/skins/default/aliplayer-min.css" />
<script src="https://g.alicdn.com/de/prismplayer/2.8.1/aliplayer-min.js"></script>
</head>
<body>
<div id="player-container"></div>
<script>
var player = new Aliplayer({
"id": "player-container",
"source": "https://play.example.com/mydemo.m3u8",
"width": "100%",
"height": "500px",
"autoplay": false,
"isLive": true,
"rePlay": false,
"playsinline": true,
"preload": false,
"controlBarVisibility": "hover",
"useH5Prism": true
});
</script>
</body>
</html>
L’URL de la source utilise le protocole HLS (.m3u8), ce qui assure une bonne compatibilité.
- Activation du HTTPS
Pour les environnements exigeant du HTTPS (ex. mini-programmes WeChat), il est nécessaire d’obtenir un certificat SSL pour le domaine de lecture. Dans la console Alibaba Cloud, section certificats, prenez un certificat gratuit (DV). Après validation, liez-le au domaine de lecture en copiant les clés dans la configuration. L’URL de lecture devient alors accessible en https://play.example.com/mydemo.m3u8.
La combinaison d’Alibaba Cloud Live, FFmpeg et Django offre une diffusion robuste sans maintenance serveur de streaming.