ကွန်ယက်နည်းပညာ၏စဉ်ဆက်မပြတ်တိုးတက်မှုနှင့်အတူ Live Video သည် Mainmam ဆက်သွယ်ရေးနည်းလမ်းဖြစ်လာသည်။ ပြောင်းလွယ်ပြင်လွယ်ရှိသော Web Development ဘာသာစကားအရ PHP သည်အချိန်နှင့်တပြေးညီကူးယူခြင်းနှင့်သက်ရှိဗွီဒီယိုများကိုထုတ်လွှင့်ခြင်းလုပ်ငန်းများကိုလည်းပံ့ပိုးပေးနိုင်သည်။ ဗီဒီယိုများပေးပို့ခြင်းသည်ဗီဒီယိုပြန်ဖွင့်ခြင်းကိုသေချာစေရန်ဗွီဒီယိုအရင်းအမြစ်အချက်အလက်များကိုလျင်မြန်စွာဖြတ်သန်းရန်, Live Broadcast function သည်ဗွီဒီယိုအရင်းအမြစ်ကိုအချိန်မှန်သို့တွန်းပို့နေစဉ်ကြည့်ရှုသူထံဖြန့်ဝေရန်ဖြစ်သည်။
အချိန်နှင့်တပြေးညီဗီဒီယိုများပေးပို့ခြင်းသည် PHP Socke Programming လိုအပ်သည်။ ဗီဒီယိုစီးသည် socket connection မှတဆင့်ရရှိသည်။ အောက်ပါဥပမာကုဒ်ကဗီဒီယိုရင်းမြစ်များကိုမည်သို့ချိတ်ဆက်ရမည်ကိုပြသသည်။
<?php
$videoSource = 'http://example.com/video_source'; // ဗွီဒီယိုအရင်းအမြစ်လိပ်စာ
$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);
}
?>
Code တွင်ဗွီဒီယိုအရင်းအမြစ်လိပ်စာကိုပထမ ဦး ဆုံးသတ်မှတ်ထားသည်။ ထို့နောက်ဆာဗာနှင့်ဆက်သွယ်မှုကို FSOCOPEN မှတစ်ဆင့်ထူထောင်ပြီး HTTP တောင်းဆိုမှုကိုဗီဒီယိုစီးဆင်းမှုကိုရရှိရန် HTTP တောင်းဆိုမှုကိုပို့သည်။ Looping နှင့် outputting data များကို outputting data များဖြင့်ဗီဒီယိုများစီးဆင်းမှုများကိုအချိန်မှန်ပေးပို့ခြင်းကိုအကောင်အထည်ဖော်သည်။
Live streaming function များသည်များသောအားဖြင့် FFMPEG ကဲ့သို့သောပရော်ဖက်ရှင်နယ် streaming media processing tools များအကူအညီလိုအပ်သည်။ PHP မှ FFMPEG command ကို Execute လုပ်ပါ။ Video Source Server သို့ Video Source ကိုတွန်းအားပေးခြင်း၏လုပ်ဆောင်မှုကိုအကောင်အထည်ဖော်နိုင်သည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -
<?php
$videoSource = 'rtmp://example.com/live/video'; // ဗွီဒီယိုအရင်းအမြစ်လိပ်စာ
$videoDestination = 'rtmp://example.com/live/destination'; // Live Server address
$ffmpegPath = '/usr/local/bin/ffmpeg'; // FFmpegexecutable ဖိုင်လမ်းကြောင်း
$cmd = "$ffmpegPath -i $videoSource -c copy -f flv $videoDestination 2>&1";
exec($cmd, $output);
foreach ($output as $line) {
echo $line . "<br>";
}
?>
ဤကုဒ်တွင် PHP သည် FFMPEG မှဗီဒီယိုအရင်းအမြစ်ကို Target Boother Booll address သို့တွန်းပို့ရန် EXIT function မှတဆင့်ခေါ်ဆိုသည်။ အသုံးမပြုမီ, ဆာဗာသည် ffmpeg မှန်ကန်စွာတပ်ဆင်ပြီးလမ်းကြောင်းချိန်ညှိချက်များမှန်ကန်ကြောင်းသေချာအောင်လုပ်ပါ။
အထက်ပါနည်းလမ်းနှစ်ခုမှတဆင့် PHP သည်အချိန်နှင့်တပြေးညီကူးယူခြင်းနှင့်တိုက်ရိုက်ထုတ်လွှင့်ခြင်းလုပ်ငန်းများကိုထိရောက်စွာနားလည်နိုင်သည်။ ကွဲပြားခြားနားသောအခြေအနေများ၏လိုအပ်ချက်များကိုဖြည့်ဆည်းရန် FFMPEM ကိုမြန်မြန်ရှေ့သို့စီးဆင်းစေရန် Socket ပရိုဂရမ်းမင်းကိုအသုံးပြုပါ။ အမှန်တကယ်စီးပွားရေးလိုအပ်ချက်များနှင့်အညီပြောင်းလွယ်ပြင်လွယ်ညှိနှိုင်းခြင်းနှင့်စံနှုန်းများကိုပိုမိုကောင်းမွန်စေရန်တည်ငြိမ်သောတိုက်ရိုက်ဗီဒီယိုအတွေ့အကြုံကိုဖန်တီးနိုင်သည်။