Avec le développement continu de l'industrie de la diffusion en direct, la technologie de streaming push et pull en direct est devenue l'un des supports importants pour le développement de l'industrie de la diffusion en direct. En tant que langage largement utilisé dans le développement Web, PHP peut également être utilisé pour implémenter des fonctions de streaming push-pull en direct. Cet article présentera le processus d'implémentation du streaming push-pull en direct dans PHP.
1. Qu'est-ce que la technologie de streaming push-pull en direct
La technologie de streaming push-pull en direct fait référence à la transmission de données audio et vidéo via le réseau en utilisant le mode push ou le mode pull afin que les flux audio et vidéo en temps réel puissent être lus. du côté de la réception. Le mode push signifie que la source de diffusion en direct pousse activement les flux audio et vidéo vers le serveur, tandis que le mode pull signifie que le client extrait les flux audio et vidéo vers le serveur via le réseau. Les deux modes peuvent réaliser une diffusion en direct en temps réel.
2. Serveur multimédia de diffusion en direct
Pour mettre en œuvre la technologie de diffusion en direct push et pull, un serveur multimédia de diffusion en direct est requis. Les serveurs multimédias de diffusion en direct courants incluent Nginx-rtmp, SRS et Wowza commercial. Parmi eux, Nginx-rtmp est un serveur open source gratuit et relativement simple à utiliser, tandis que SRS est un serveur plus puissant qui prend en charge plusieurs protocoles, mais est plus compliqué à utiliser et nécessite certaines compétences techniques.
3. PHP implémente le streaming en direct
Pour implémenter le streaming en direct, vous devez d'abord obtenir les flux audio et vidéo et les transmettre au serveur. Bien que PHP soit un langage de développement Web, il peut obtenir et traiter des flux audio et vidéo en appelant des outils open source tels que FFmpeg, et transmettre les flux audio et vidéo au serveur multimédia de diffusion en direct via le protocole RTMP.
Première installation de FFmpeg, vous pouvez utiliser la commande suivante :
sudo apt-get install ffmpeg
Ensuite, utilisez FFmpeg pour obtenir le flux audio et vidéo et envoyez-le au serveur de diffusion en direct, vous pouvez utiliser le code PHP suivant :
$cmd = "ffmpeg -re -i /path/to/video.mp4 -vcodec copy -acodec aac -strict -2 -f flv rtmp://your-live-server.com/app/streamkey"; exec($cmd);
Parmi eux, /path/to/ video.mp4 est le chemin du fichier vidéo local, rtmp://your-live-server.com/app/streamkey
est l'adresse push RTMP du serveur multimédia de diffusion en direct. /path/to/video.mp4
是本地视频文件路径,rtmp://your-live-server.com/app/streamkey
是直播流媒体服务器的RTMP推流地址。
四、PHP实现直播拉流
要实现直播拉流,首先需要获取直播流媒体服务器上的音视频流。PHP可以使用FFmpeg、libcurl等开源工具获取音视频流,并使用HTML5 Video或Flash等技术将其展示在Web页面上。
使用FFmpeg获取音视频流,可以使用如下PHP代码:
$cmd = "ffmpeg -i rtmp://your-live-server.com/app/streamkey -f mpegts -codec:v mpeg1video -codec:a mp2 -s 640x360 -b:v 800k -b:a 128k -bf 0 -muxdelay 0.001 http://localhost:8080"; exec($cmd);
其中,rtmp://your-live-server.com/app/streamkey
是直播流媒体服务器的RTMP拉流地址,http://localhost:8080
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "rtmp://your-live-server.com/app/streamkey"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch);
rtmp://your-live-server.com/app/streamkey
est le Extraction RTMP du serveur multimédia de diffusion en direct Adresse du flux, http://localhost:8080
est l'adresse du serveur HTTP local. Utilisez libcurl pour obtenir le flux audio et vidéo. Vous pouvez utiliser le code PHP suivant :
<video id="live-video" src="http://localhost:8080"></video>
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!