Position actuelle: Accueil> Derniers articles> Tutoriel pratique sur les fonctions de transfert vidéo et de diffusion en direct en temps réel de PHP

Tutoriel pratique sur les fonctions de transfert vidéo et de diffusion en direct en temps réel de PHP

M66 2025-08-08

Principes de base du transfert vidéo en temps réel et de la diffusion en direct à l'aide de PHP

Avec l'avancement continu de la technologie du réseau, la vidéo en direct est devenue la méthode de communication médiatique grand public. En tant que langue flexible de développement Web, PHP peut également prendre en charge les fonctions de transfert et de diffusion en direct des vidéos. Le transfert en temps réel des vidéos consiste à passer rapidement les données de la source vidéo au côté utilisateur pour assurer la lecture vidéo en douceur; Alors que la fonction de diffusion en direct consiste à pousser la source vidéo vers le serveur en temps réel, puis à la distribuer à la visionneuse.

PHP réalise le transfert vidéo en temps réel

Le transfert en temps réel des vidéos nécessite une programmation de socket PHP, et le flux vidéo est obtenu et sorti via la connexion à socket. L'exemple de code suivant montre comment connecter les sources vidéo et transférer des données via la fonction FSOCOPEN:

 <?php
$videoSource = 'http://example.com/video_source'; // Adresse de la source vidéo

$fp = fsockopen("example.com", 80, $errno, $errstr, 30);

if (!$fp) {
    echo "$errstr ($errno)";
} else {
    $out = "GET /video_source HTTP/1.1\r\n";
    $out .= "Host: example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";

    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
        flush();
    }
    fclose($fp);
}
?>

Dans le code, l'adresse source vidéo est d'abord définie, puis une connexion au serveur est établie via FSOCOPEN, et une demande HTTP est envoyée pour obtenir le flux vidéo. En faisant du bouclage et en sortie des données, le transfert en temps réel des flux vidéo est réalisé.

PHP combiné avec FFMPEG pour réaliser la diffusion vidéo en direct

Les fonctions de streaming en direct nécessitent généralement l'aide d'outils de traitement des médias professionnels, tels que FFMPEG. Exécutez la commande ffmpeg via PHP, la fonction de pousser la source vidéo vers le serveur de diffusion en direct peut être réalisée. Les exemples sont les suivants:

 <?php
$videoSource = 'rtmp://example.com/live/video'; // Adresse de la source vidéo
$videoDestination = 'rtmp://example.com/live/destination'; // Adresse du serveur en direct
$ffmpegPath = '/usr/local/bin/ffmpeg'; // FFmpegChemin de fichier exécutable

$cmd = "$ffmpegPath -i $videoSource -c copy -f flv $videoDestination 2>&1";

exec($cmd, $output);

foreach ($output as $line) {
    echo $line . "<br>";
}
?>

Dans ce code, PHP appelle FFMPEG via la fonction EXEC pour pousser la source vidéo vers l'adresse de diffusion en direct cible. Avant d'utiliser, assurez-vous que le serveur a l'installation de FFMPEG correctement et que les paramètres de chemin sont corrects.

Résumer

Grâce aux deux méthodes ci-dessus, PHP peut réaliser efficacement les fonctions de transfert et de diffusion en direct en temps réel des vidéos. Utilisez la programmation de socket pour transmettre rapidement des flux vidéo, combinez FFMPEG pour obtenir un streaming en direct efficace pour répondre aux besoins de différents scénarios. L'ajustement flexible et l'optimisation des codes en fonction des besoins réels de l'entreprise peuvent créer une expérience vidéo en direct stable et fluide.