Comment utiliser PHP et l'API Youpai Cloud pour implémenter la fonction vidéo en direct
De nos jours, avec le développement et la vulgarisation continus de la technologie réseau, la vidéo en direct est devenue l'un des moyens importants permettant aux gens d'obtenir des informations et des divertissements. En tant que langage de script largement utilisé dans le développement Web, PHP, combiné à l'API Youpaiyun, peut nous aider à implémenter facilement la fonction de streaming vidéo en direct.
Youpaiyun est un fournisseur de services de stockage cloud et de réseau de distribution de contenu (CDN) bien connu qui fournit des fonctions et des API associées pour la diffusion vidéo en direct. Ses services sont stables et fiables et son support technique est complet, ce qui le rend très approprié pour créer un. plateforme de diffusion vidéo en direct.
Cet article expliquera comment utiliser PHP et l'API Youpai Cloud pour implémenter des fonctions de diffusion vidéo en direct, notamment la création de chaînes, la génération d'adresses push, la diffusion et la lecture de vidéos, etc. Voici les étapes spécifiques et des exemples de code :
Créer une chaîne
Sur la plateforme de diffusion en direct, nous devons d'abord créer une chaîne pour héberger le flux vidéo en direct. La création de chaîne peut être complétée en appelant l'API de Youpaiyun.
<?php $apiUrl = 'https://api.upyun.com/'; $apiKey = 'YOUR_API_KEY'; $apiSecret = 'YOUR_API_SECRET'; // 请求参数 $params = [ 'service' => 'live', 'type' => 'push', 'app' => 'live', 'name' => 'channel_name' ]; // 生成签名 $sign = md5(json_encode($params) . $apiSecret); // 发送请求 $response = file_get_contents($apiUrl . 'create/channels?' . http_build_query($params) . '&sign=' . $sign); // 显示返回结果 echo $response; ?>
Dans le code ci-dessus, vous devez remplacer YOUR_API_KEY
et YOUR_API_SECRET
par votre propre clé API. Modifiez ensuite channel_name
si nécessaire avec le nom de la chaîne que vous souhaitez créer. YOUR_API_KEY
和YOUR_API_SECRET
替换为你自己的API密钥。然后根据需要修改channel_name
为你想要创建的频道名称。
生成推流地址
在频道创建成功后,我们需要生成一个推流地址,用于将视频流推送到又拍云的服务器。同样,我们可以通过调用又拍云的API来实现。
<?php $apiUrl = 'https://api.upyun.com/'; $apiKey = 'YOUR_API_KEY'; $apiSecret = 'YOUR_API_SECRET'; // 请求参数 $params = [ 'service' => 'live', 'type' => 'push', 'app' => 'live', 'name' => 'channel_name', 'expire' => time() + 3600, // 过期时间设定为1小时后 'nonce' => uniqid() // 随机字符串,用于防止重放攻击 ]; // 生成签名 $sign = md5(json_encode($params) . $apiSecret); // 发送请求 $response = file_get_contents($apiUrl . 'get/streamUrls?' . http_build_query($params) . '&sign=' . $sign); // 解析返回结果 $result = json_decode($response, true); // 显示推流地址 echo $result['data']['rtmp']; ?>
同样需要将YOUR_API_KEY
和YOUR_API_SECRET
替换为你自己的API密钥。修改channel_name
为你之前创建的频道名称。
推流和播放视频
获取到推流地址后,我们就可以使用任意视频推流工具进行推流,比如OBS等。播放视频则可以使用HTML5的<video>
标签进行播放。
<?php $rtmpUrl = 'YOUR_RTMP_URL'; // 替换为你自己的推流地址 ?> <!-- 推流 --> <object width="640" height="480"> <param name="movie" value="player.swf"/> <param name="allowFullScreen" value="true"/> <param name="flashvars" value="rtmp_url=<?php echo $rtmpUrl; ?>"/> <object type="application/x-shockwave-flash" data="player.swf" width="640" height="480"> <param name="allowFullScreen" value="true"/> <param name="flashvars" value="rtmp_url=<?php echo $rtmpUrl; ?>"/> <div> <h1>视频播放需要启用Flash Player,请点击 <a href="http://www.adobe.com/go/getflashplayer">这里</a>下载最新版本。</h1> </div> </object> </object> <!-- 播放 --> <video width="640" height="480" controls> <source src="<?php echo $rtmpUrl; ?>" type="video/rtmp"> 您的浏览器不支持HTML5 video标签。 </video>
将YOUR_RTMP_URL
Une fois la chaîne créée avec succès, nous devons générer une adresse push pour transmettre le flux vidéo vers le serveur de Youpaiyun. De même, nous pouvons y parvenir en appelant l'API de Youpaiyun.
rrreee🎜Vous devez également remplacerYOUR_API_KEY
et YOUR_API_SECRET
par votre propre clé API. Remplacez channel_name
par le nom de la chaîne que vous avez créé précédemment. 🎜🎜🎜🎜Push et lecture de vidéos🎜Après avoir obtenu l'adresse push, nous pouvons utiliser n'importe quel outil de push vidéo pour pousser, tel qu'OBS, etc. Pour lire des vidéos, vous pouvez utiliser la balise HTML5 <video>
. 🎜rrreee🎜Remplacez VOTRE_RTMP_URL
par l'adresse push que vous avez obtenue auparavant. 🎜🎜🎜🎜Grâce aux étapes ci-dessus, nous avons implémenté avec succès la fonction de diffusion vidéo en direct à l'aide de PHP et de l'API Youpai Cloud. Bien entendu, il ne s’agit que d’un exemple simple et vous pouvez étendre et améliorer le code en fonction de vos besoins. J'espère que cet article sera utile à votre travail de développement ! 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!