နိဒါန်း
မကြာသေးမီကငါ NEX ဗိုလ်ချုပ်ကြီးမီဒီယာဆာဗာ (NGMS) နှင့်၎င်းတို့၏ API ကိုမူဘောင်မှာပိုမိုနီးကပ်စွာကြည့်ယူခဲ့ပါတယ်။ s ကို HTTP ကိုတိုက်ရိုက်, MPEG-2 ပို့ဆောင်ရေး Stream; NGMS ထိုကဲ့သို့သော RTSP, RTMP Apple က & # 39 အဖြစ်ရေပန်းစား streaming များ protocols များအချို့ကိုပံ့ပိုးသော multi-ရည်ရွယ်ချက် streaming များ server တစ်ခုဖြစ်ပါတယ်။ NGMS transcoding ထောက်ခံမှုနှင့်အတူကြွလာနှင့်ဖမ်းယူခြင်းနှင့် reformat တိုက်ရိုက်ဗွီဒီယို streams နှင့်ကိရိယာ၏အခြားအမျိုးအစားအားဖြင့်လက်ခံရရှိခံရဖို့သူတို့ကိုလိုက်လျောညီထွေဖြစ်အောင်, ထိုကဲ့သို့သောတစ်ခု HD ဗီဒီယို feed ကိုဖမ်းယူခြင်းနှင့် 3g ကျော်တစ်ဦးသည် iPhone အားဖြင့်လက်ခံရရှိခံရဖို့က converting အဖြစ်ပေးနိုင်သည်။ ကြှနျတေျာ့အာရုံငါ့ကိုယ်ပိုင် C ကိုလျှောက်လွှာကနေတိုက်ရိုက်လွှင့် features တွေကိုထိန်းချုပ်ဖို့ NGMS API ကိုပေါင်းစပ်ဖို့ဖြစ်တယ်။ ဒီဥပမာမှာကျနော် Ubuntu Linux 10.04 ကို အသုံးပြု. နေပါတယ်။
ပထမဦးဆုံးအရာ NGMS အသုံးပြုသူလမ်းညွှန်နှင့် NEX ဗိုလ်ချုပ်ကြီးမီဒီယာဆာဗာများအတွက် API ကိုရည်ညွှန်းလမ်းညွှန်ဒေါင်းလုဒ်လုပ်ပြီးဖတ်ပါရန်ဖြစ်ပါသည်။ (ဤလင့်ခ်ဆောင်းပါး၏အောက်ခြေတွင်တည်ရှိနေကြသည်) ရှိပါတယ်အများအပြား configuration options ကိုအဲဒီမှာ၌ရှိကြ၏ဒါပေမယ့်ကျနော်တို့ကိုယ့်အခြေခံမှကပ်ပါလိမ့်မယ်။ ထိုအခါသင်သည် linux ကိုများအတွက် NGMS အထုပ်ကိုဒေါင်းလုဒ်လုပ်ရန်လိုအပ်ပါတယ်။ ငါအသုံးပြုသောဗားရှင်း NGMS v1.3.4 ဖြစ်ခဲ့သည်။ သင်အထုပ်ကို download လုပ်ပြီးတာနဲ့ပဲသင့်ရဲ့ရွေးချယ်မှုဟာ directory သို့ contents တွေကိုဇီပ်။ ငါ ~ / ngmsStreaming ကိုအသုံးပြု
လျှောက်လွှာကိုတက်ချိန်ညှိခြင်း။
တိုက်ရိုက်ငါသည်ငါ့ကုဒ်သို့ "ngms / / ngmslib.h ပါဝင်သည်" တို့ပါဝင်သည်ခဲ့ရတယ်ငါ့အကို C လျှောက်လွှာသို့ NGMS ပေါင်းစည်းရန်။
ငါ၏အပလီကေးရှင်းကိုတည်ဆောက်သည့်အခါငါစာကြည့်တိုက် ngms / lib / libngms.so နှင့် ngms / lib / libxcode.so ပါဝင်သည်ခဲ့ရသည်။ ဒါဟာ libngms.so ကိုလည်း linker options များအတွက်သတ်မှတ်ထားသောရန်လိုအပ်ပါသည်သော libcrypto.so အပေါ်မူတည်ကြောင်းရှုမြင်ပါသည်။
ဤတွင်ကျွန်မ & # 39 သောရိုးရှင်းသော makefile ဖြစ်၏သုံးပြီး M:
#Example Makefile
CC ကို = gcc
CFLAGS = -ggdb
ပါဝင်သည် + = -i ngms / ပါဝင်သည်
LDFLAGS + = -L ngms / lib -lngms -xlcode -crypto
အားလုံး: myapp
% အို:% .C
$ (CC) $ (CFLAGS) $ (ပါဝင်သည်) -O $ @ -c $ <
myapp: myapp.o
$ (CC) -fpic -O myapp myapp.o $ (LDFLAGS)
ဤတွင် myapp.c ဖို့အရင်းအမြစ်ဖြစ်ပါတယ်။
/ **
*
* ဥပမာ myapp လျှောက်လွှာ
*
* /
လက်မှတ်မထိုး int uint32_t typedef;
လက်မှတ်မထိုးတာရှည်ရှည်လျား uint64_t typedef;
#include
int အဓိက (int argc, char * argv ()) {
NGMSLIB_STREAM_PARAMS_T ngmsConfig;
NGMS_RC_T returnCode;
returnCode = ngmslib_open (& ngmsConfig);
{(NGMS_RC_OK! = returnCode) လျှင်
fprintf (stderr "ngmslib_open n n ပျက်ကွက်");
ပြန်လာ -1;
}
ngmsConfig.inputs (0) = "mediaTestFile.mp4";
ngmsConfig.output = "rtp: /127.0.0.1: 5004";
returnCode = ngmslib_stream (& ngmsConfig);
{(NGMS_RC_OK! = returnCode) လျှင်
fprintf (stderr "ngmslib_open n n ပျက်ကွက်");
}
ngmslib_close (& ngmsConfig);
ပြန်လာပါ 0 င်;
}
အထက်ပါ code က ngms စာကြည့်တိုက်ကိုထိန်းချုပ်ဖို့အတွက် NGMSLIB_STREAM_PARAMS_T struct type ကိုအသုံးပြုသည်။ ပြုမိရန်လိုအပ်ပါသည်သောပထမဦးဆုံးအရာ "ကြိုတင်" ဖို့ struct ngmslib_open ရန်တောင်းဆိုမှုသည်။ အဲဒီနောကျသငျသညျ NGMS ပြုကြလိမ့်မည်အရာကိုထိန်းချုပ်ရန်အတွက် struct အတွက်ရွေးချယ်စရာတစ်ခုခုကိုဖြည့်စွက်ပေးနိုင်သည်။ ထိုအခါသင် output ကိုဗီဒီယိုကဖန်တီးရန် "ngmslib_stream" နိုငျသညျ။
ငါ & # 39; VLC ကကစားသမားအတွက်စီးဖွင့်လှစ်ခြင်းနှင့်ဗီဒီယို play နိုင်ပါ။
VLC Player ကို -> Open ကိုကွန်ယက် rtp: // @: 5004
Viola! ထိုသို့လွယ်ကူသောခဲ့ !!! ယခုတွင်ငါသည်ငါ၏အလျှောက်လွှာကနေတိုက်ရိုက်မီဒီယာဖိုင် stream နိုငျပါသညျ!
အဆိုပါ ngmslib_stream function ကိုဖုန်းခေါ်ဆိုမှုကတည်းကငါသည်အခြားချည်ထံမှ ngmslib_close ခေါ်နိုင်ပါတယ်နှင့် ngmslib_stream ခေါ်ဆိုခကို exit လိမ့်မယ်စီးနှောက်ယှက်ဖို့တစ်ပိတ်ဆို့ခြင်းစစ်ဆင်ရေးဖြစ်ပါသည်။
ငါကုဒ်၏အောက်ပါလိုင်းများထည့်သွင်းခြင်းဖြင့်တစ်ဦး embedded Flash player အဘို့အထောက်ခံမှု add နိုင်ခဲ့သည်။
= "1935" ngmsConfig.rtmplive;
= "8080" ngmsConfig.live;
ငါ့အဘရောက်ဇာနှင့်အတူငါ ချိတ်ဆက်. localhost: 8080 / တိုက်ရိုက်ထုတ်လွှ ငါကဗီဒီယိုကစားခြင်းကို flash player ကိုအတူစာမျက်နှာကိုပြန်ရ။
အဲဒီအစားဖိုင်တစ်ခုကစားငါတိုက်ရိုက်ဗီဒီယိုစီးကြောင်းကိုဖြစ်ဖို့ input ကိုပြောင်းလဲနိုင်သည်။ ငါသည်ငါ၏လျှောက်လွှာနှစ်ခုကသီးခြားဖြစ်ရပ်ဖန်တီးနိုင်ပါတယ်။ တဦးတည်းဥပမာအား output ကို port ကို 5006. မှဗီဒီယိုအခြားဥပမာအားဖြင့်ဆိပ်ကမ်းကို 5006 ရက်တွင်ဗီဒီယိုဖမ်းယူမည်နှင့် port ကို 5004. မှ output ကိုကဒီသင်ပြုရန်ရှိသည်အားလုံးပါပဲ။
//ngmsConfig.inputs(0) = "mediaTestFile.mp4";
ngmsConfig.inputs (0) = "rtp: /127.0.0.1: 5006";
ngmsConfig.strfilters (0) = "အမျိုးအစား = m2t";
ကောက်ချက်
ဤရွေ့ကားအနည်းငယ်ဥပမာသင့်ရဲ့ကိုယ်ပိုင် application ကိုစကဗီဒီယို streaming များထောက်ခံမှု add ရန်၎င်း၏တော်တော်လွယ်ကူပါတယ်ပြသပါ။ ငါ & # 39; ဤနေရာတွင်ကို C ကိုသုံးပါ။ သင်၏လျှောက်လွှာကို C အကယ်. ++ သင် "ပြင်ပ" ကို C "" keyword ကို အသုံးပြု. ngmslib ဖို့အားလုံးကိုဖုန်းခေါ်ဆိုမှုခြုံနိုင်ပါတယ်။ သင်တို့သည်လည်းဂျာဗား၌လုပ်နိုင်ပေမယ့် NGMS လှဲဖုန်းခေါ်ဆိုမှုများတစ်ဦးချင်းစီခြုံတစ်ဦး JNI interface ကိုတည်ဆောက်ခြင်းလိုအပ်ပေလိမ့်မည်။
ဒါကတော်တော်လေးရိုးရှင်းတဲ့ဥပမာဖြစ်ခဲ့သည်။ မဝေးတော့တဲ့အနာဂတ်ကာလ၌ငါ NGMS စာကြည့်တိုက်သင့်ကိုယ်ပိုင်ဗွီဒီယိုကိုထုတ်လွှင့် client ကိုတည်ဆောက်ဖို့အသုံးပြုနိုင်ပါတယ်ဘယ်လိုကူးသွားပါလိမ့်မယ်။