{"id":77011,"date":"2020-04-07T01:42:55","date_gmt":"2020-04-06T23:42:55","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-1"},"modified":"2021-02-16T09:44:41","modified_gmt":"2021-02-16T07:44:41","slug":"izuchaem-voip-dvizhok-mediastreamer2-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-1","title":{"rendered":"Eksplorimi i motorit VoIP Mediastreamer2. Pjesa 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Materiali i artikullit \u00ebsht\u00eb marr\u00eb nga kanali im <noindex><a rel=\"nofollow\" href=\"https:\/\/zen.yandex.ru\/id\/5e3f8e0751f5346faab4fc7a\">zen<\/a><\/noindex>.<\/p>\n<h2 id=\"vvedenie\">Hyrje<\/h2>\n<p>Ky artikull \u00ebsht\u00eb fillimi i nj\u00eb serie artikujsh mbi p\u00ebrpunimin e mediave n\u00eb koh\u00eb reale duke p\u00ebrdorur motorin Mediastreamer2. N\u00eb p\u00ebrshkrim do t\u00eb p\u00ebrfshihen aft\u00ebsi minimale n\u00eb terminallin Linux dhe programimin n\u00eb gjuh\u00ebn C.<\/p>\n<p>Mediastreamer2 \u00ebsht\u00eb nj\u00eb motor VoIP q\u00eb q\u00ebndron n\u00eb zem\u00ebr t\u00eb projektit t\u00eb njohur open-source t\u00eb telefonit VoIP. <noindex><a rel=\"nofollow\" href=\"http:\/\/linphone.org\/\">Linphone<\/a><\/noindex>. N\u00eb Linphone, Mediastreamer2 implementon t\u00eb gjitha funksionet e lidhura me audio dhe video. Nj\u00eb list\u00eb t\u00eb detajuar t\u00eb mund\u00ebsive t\u00eb motorit mund ta shihni n\u00eb k\u00ebt\u00eb faqe Mediastreamer. Kodi burimor gjendet k\u00ebtu: <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.linphone.org\/BC\/public\/mediastreamer2\">GitLab<\/a><\/noindex>.<\/p>\n<p>N\u00eb tekstin e m\u00ebtejm\u00eb, p\u00ebr leht\u00ebsi, n\u00eb vend t\u00eb fjal\u00ebs Mediastreamer2 do t\u00eb p\u00ebrdorim notacionin e tij shqip: \u00abmidiastreamer\u00bb.<\/p>\n<p>Historia e krijimit t\u00eb tij nuk \u00ebsht\u00eb krejt e qart\u00eb, por sipas kodit t\u00eb tij burimor, m\u00eb par\u00eb p\u00ebrdorte bibliotek\u00ebn <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/GLib\">Glib<\/a><\/noindex>, e cila na sugjeron nj\u00eb mund\u00ebsi lidhjeje t\u00eb larg\u00ebt me <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/GStreamer\">GStreamer<\/a><\/noindex>. N\u00eb krahasim me t\u00eb, mediastreamer duket m\u00eb i leht\u00eb. Versioni i par\u00eb i Linphone u shfaq n\u00eb vitin 2001, k\u00ebshtu q\u00eb aktualisht, mediastreamer ekziston dhe zhvillohet prej gati 20 vjet\u00ebsh.<\/p>\n<p>Baza e mediastreamerit \u00ebsht\u00eb nj\u00eb arkitektur\u00eb e quajtur \u00abData flow\u00bb (rrjedha e t\u00eb dh\u00ebnave). Nj\u00eb shembull i till\u00eb arkitekture \u00ebsht\u00eb i paraqitur n\u00eb figur\u00ebn m\u00eb posht\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Eksplorimi i motorit VoIP Mediastreamer2. Pjesa 1\" src=\"\/wp-content\/uploads\/2020\/04\/b05c34a9ee8c79fb39b439db32239071.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>N\u00eb k\u00ebt\u00eb struktur\u00eb, algoritmi i p\u00ebrpunimit t\u00eb t\u00eb dh\u00ebnave caktohet jo nga kodi programor, por nga nj\u00eb diagram (graf) lidhjeje t\u00eb funksioneve, t\u00eb cilat mund t\u00eb organizohen n\u00eb \u00e7do rend. K\u00ebto funksione quhen filtrat.<\/p>\n<p>Nj\u00eb struktur\u00eb e till\u00eb lejon realizimin e funksionalitetit t\u00eb p\u00ebrpunimit t\u00eb mediave n\u00eb form\u00ebn e nj\u00eb grumbulli filtrash, t\u00eb lidhur n\u00eb nj\u00eb skem\u00eb p\u00ebrpunimi dhe transmetimi t\u00eb trafik t\u00eb RTP p\u00ebr telefonin VoIP.<\/p>\n<p>Mund\u00ebsia p\u00ebr t\u00eb lidhur filtrat n\u00eb skema t\u00eb ndryshme, zhvillimi i leht\u00eb i filtrave t\u00eb rinj, dhe realizimi i mediastream-it si nj\u00eb bibliotek\u00eb e pavarur, e mund\u00ebson at\u00eb t\u00eb p\u00ebrdoret edhe n\u00eb projekte t\u00eb tjera. Projekti mund t\u00eb jet\u00eb n\u00eb fush\u00ebn e VoIP, pasi ka mund\u00ebsin\u00eb p\u00ebr t\u00eb shtuar filtrat e krijuar nga vet\u00eb p\u00ebrdoruesi.<\/p>\n<p>Biblioteka e filtrave e ofruar si standard \u00ebsht\u00eb mjaft e pasur dhe, si\u00e7 \u00ebsht\u00eb p\u00ebrmendur m\u00eb par\u00eb, mund t\u00eb zgjerohet me filtrat e zhvilluar vet\u00eb. Por s\u00eb pari, le t\u00eb p\u00ebrshkruajm\u00eb filtrat e gatsh\u00ebm, t\u00eb cilat ofrohen s\u00eb bashku me mediastream-in. Ja lista e tyre:<\/p>\n<h3 id=\"zvukovye-filtry\">Filtra audio<\/h3>\n<h4 id=\"zahvat-i-vosproizvedenie-zvuka\">Kapja dhe riprodhimi i z\u00ebrit<\/h4>\n<ul>\n<li>Alsa (Linux): MS_ALSA_WRITE, MS_ALSA_READ<\/li>\n<li>T\u00eb dh\u00ebna audio native Android (libmedia): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ<\/li>\n<li>Sh\u00ebrbimi Audio Queue (Mac OS X): MS_AQ_WRITE, MS_AQ_READ<\/li>\n<li>Sh\u00ebrbimi Audio Unit (Mac OS X)<\/li>\n<li>Arts (Linux): MS_ARTS_WRITE, MS_ARTS_READ<\/li>\n<li>DirectSound (Windows): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ<\/li>\n<li>Luajt\u00ebs skedujsh (raw\/wav\/pcap skeduj) (Linux): MS_FILE_PLAYER<\/li>\n<li>Luajt\u00ebs skedujsh (raw\/wav skeduj) (Windows): MS_WINSND_READ<\/li>\n<li>Regjistrimi n\u00eb skedull (wav skeduj) (Linux): MS_FILE_REC<\/li>\n<li>Regjistrimi n\u00eb skedull (wav skeduj) (Windows): MS_WINSND_WRITE<\/li>\n<li>Mac Audio Unit (Mac OS X)<\/li>\n<li>MME (Windows)<\/li>\n<li>OSS (Linux): MS_OSS_WRITE, MS_OSS_READ<\/li>\n<li>PortAudio (Mac OS X)<\/li>\n<li>PulseAudio (Linux): MS_PULSE_WRITE, MS_PULSE_READ<\/li>\n<li>Windows Sound (Windows)<\/li>\n<\/ul>\n<h4 id=\"kodirovaniedekodirovanie-zvuka\">Kodi\/dekodimi i z\u00ebrit<\/h4>\n<ul>\n<li>G.711 a-zakon: MS_ALAW_DEC, MS_ALAW_ENC<\/li>\n<li>G.711 \u00b5-zakon: MS_ULAW_DEC, MS_ULAW_ENC<\/li>\n<li>G.722: MS_G722_DEC, MS_G722_ENC<\/li>\n<li>G.726: MS_G726_32_ENC, MS_G726_24_ENC, MS_G726_16_ENC<\/li>\n<li>GSM: MS_GSM_DEC, MS_GSM_ENC<\/li>\n<li>Linera PCM: MS_L16_ENC, MS_L16_DEC<\/li>\n<li>Speex: MS_SPEEX_ENC, MS_SPEEX_DEC<\/li>\n<\/ul>\n<h4 id=\"obrabotka-zvuka\">P\u00ebrpunimi i z\u00ebrit<\/h4>\n<ul>\n<li>P\u00ebrkthimi i kanalit (mono-&gt;stereo, stereo-&gt;mono): MS_CHANNEL_ADAPTER<\/li>\n<li>Konferenca: MS_CONF<\/li>\n<li>Gjeneratori DTMF: MS_DTMF_GEN<\/li>\n<li>P\u00ebrzgjidhja e jehon\u00ebs (speex): MS_SPEEX_EC<\/li>\n<li>Ekvalajzeri: MS_EQUALIZER<\/li>\n<li>Mikseri: MS_MIXER<\/li>\n<li>Kompensatori i humbjes s\u00eb paketave (PLC): MS_GENERIC_PLC<\/li>\n<li>Ris\u00ebmpeluesi: MS_RESAMPLE<\/li>\n<li>Detektori i tonit: MS_TONE_DETECTOR<\/li>\n<li>Kontrolli i zhurm\u00ebs dhe matja e nivelit t\u00eb sinjalit: MS_VOLUME<\/li>\n<\/ul>\n<h3 id=\"filtry-video\">Filt\u00ebr video<\/h3>\n<h4 id=\"zahvat-i-vosproizvedenie-video\">Kapja dhe riprodhimi i videos<\/h4>\n<ul>\n<li>Kapja Android<\/li>\n<li>Riprodhimi Android<\/li>\n<li>Kapja AV Foundation (iOS)<\/li>\n<li>Riprodhimi AV Foundation (iOS)<\/li>\n<li>DirectShow kapje (Windows)<\/li>\n<li>DrawDib riprodhimi (Windows)<\/li>\n<li>Riprodhimi t\u00eb jasht\u00ebm \u2014 D\u00ebrgimi i videos n\u00eb nivelin e lart\u00eb<\/li>\n<li>GLX riprodhimi (Linux): MS_GLXVIDEO<\/li>\n<li>Mire \u2014 Imazh l\u00ebviz\u00ebs sintetik: MS_MIRE<\/li>\n<li>OpenGL riprodhimi (Mac OS X)<\/li>\n<li>OpenGL ES2 riprodhimi (Android)<\/li>\n<li>Quicktime kapje (Mac OS X)<\/li>\n<li>SDL riprodhimi: MS_SDL_OUT<\/li>\n<li>Shp\u00ebrndarja e imazheve statike: MS_STATIC_IMAGE<\/li>\n<li>Video p\u00ebr Linux (V4L) kapje (Linux): MS_V4L<\/li>\n<li>Video p\u00ebr Linux 2 (V4L2) kapje (Linux): MS_V4L2_CAPTURE<\/li>\n<li>Video4windows (DirectShow) kapje (Windows)<\/li>\n<li>Video4windows (DirectShow) kapje (Windows CE)<\/li>\n<li>Video p\u00ebr Windows (vfw) kapje (Windows)<\/li>\n<li>XV riprodhimi (Linux)<\/li>\n<\/ul>\n<h4 id=\"kodirovaniedekodirovanie-video\">Kodeking\/dekodeking i videos<\/h4>\n<ul>\n<li>H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, Snow: MS_MJPEG_DEC, MS_H263_ENC, MS_H263_DEC<\/li>\n<li>H.264 (vet\u00ebm dekodues): MS_H264_DEC<\/li>\n<li>Theora: MS_THEORA_ENC, MS_THEORA_DEC<\/li>\n<li>VP8: MS_VP8_ENC, MS_VP8_DEC<\/li>\n<\/ul>\n<h4 id=\"obrabotka-video\">P\u00ebrpunimi i videos<\/h4>\n<ul>\n<li>JPEG snapshot<\/li>\n<li>Konvertuesi i formatit t\u00eb pikselit: MS_PIX_CONV<\/li>\n<li>Rreshtoni<\/li>\n<li>Filt\u00ebr t\u00eb tjer\u00eb<\/li>\n<li>Shk\u00ebmbimi i blloqeve t\u00eb dh\u00ebnash midis gjurmave: MS_ITC_SOURCE, MS_ITC_SINK<\/li>\n<li>Grumbullimi i blloqeve t\u00eb dh\u00ebnash nga disa hyrje n\u00eb nj\u00eb dalje: MS_JOIN<\/li>\n<li>RTP pranimi\/d\u00ebrgimi: MS_RTP_SEND, MS_RTP_RECV<\/li>\n<li>Kopjimi i t\u00eb dh\u00ebnave hyr\u00ebse n\u00eb disa dalje: MS_TEE<\/li>\n<li>Ngarkes\u00eb e koordinuar: MS_VOID_SINK<\/li>\n<li>Burimi i heshtjes: MS_VOID_SOURCE<\/li>\n<\/ul>\n<h3 id=\"plaginy\">Plugins<\/h3>\n<h4 id=\"zvukovye-filtry-1\">Filtra audio<\/h4>\n<ul>\n<li>AMR-NB kodek\/dekodek<\/li>\n<li>G.729 kodek\/dekodek<\/li>\n<li>iLBC kodek\/dekodek<\/li>\n<li>SILK kodek\/dekodek<br \/>\n<h4 id=\"filtry-video\">Filt\u00ebr video<\/h4>\n<\/li>\n<li>H.264 kodek programatik<\/li>\n<li>H.264 V4L2 kodek\/dekodek me ndihm\u00eb harduake<\/li>\n<\/ul>\n<p>Pas nj\u00eb p\u00ebrshkrim t\u00eb shkurt\u00ebr t\u00eb filtrit, tregohet emri i llojit q\u00eb p\u00ebrdoret gjat\u00eb krijimit t\u00eb nj\u00eb ekzemplar t\u00eb ri t\u00eb k\u00ebtij filtri. N\u00eb vazhdim, ne do t\u00eb referohemi n\u00eb k\u00ebt\u00eb list\u00eb.<\/p>\n<h2 id=\"ustanovka-pod-linux-ubuntu\">Instalimi n\u00eb Linux Ubuntu<\/h2>\n<p>Tani do t\u00eb kryejm\u00eb instalimin e mediastreamer n\u00eb kompjuter dhe do t\u00eb nd\u00ebrtosh aplikacionin ton\u00eb t\u00eb par\u00eb me t\u00eb.<\/p>\n<p>Instalimi i Mediastremer2 n\u00eb kompjuter ose makin\u00eb virtuale n\u00ebn menaxhimin e Ubuntu nuk k\u00ebrkon aft\u00ebsi t\u00eb ve\u00e7anta. K\u00ebtu dhe m\u00eb tej simboli \u00ab$\u00bb do t\u00eb p\u00ebrfaq\u00ebsoj\u00eb ftes\u00ebn e shell-it p\u00ebr t\u00eb futur komandat. Pra, n\u00ebse n\u00eb list\u00eb shihni k\u00ebt\u00eb simbol n\u00eb fillim t\u00eb rreshtit, do t\u00eb thot\u00eb q\u00eb ky \u00ebsht\u00eb rreshti ku tregohen komandat p\u00ebr t'u ekzekutuar n\u00eb terminal.<\/p>\n<p>Supozohen q\u00eb gjat\u00eb kryerjes s\u00eb veprimeve t\u00eb p\u00ebrshkruara n\u00eb k\u00ebt\u00eb artikull, kompjuteri juaj ka qasje n\u00eb internet.<\/p>\n<h4 id=\"ustanovka-paketa-libmediastremer-dev\">Instalimi i paket\u00ebs libmediastremer-dev<\/h4>\n<p>Nisni terminalin dhe shkruani komand\u00ebn:<\/p>\n<pre><code class=\"bash\">$ sudo apt-get update<\/code><\/pre>\n<p>Do t\u00eb k\u00ebrkohet fjal\u00ebkalimi p\u00ebr t\u00eb b\u00ebr\u00eb ndryshime, shkruani at\u00eb dhe menaxheri i paketave do t\u00eb p\u00ebrdit\u00ebsoj\u00eb bazat e tij. Pas k\u00ebsaj, duhet t\u00eb kryeni:<\/p>\n<pre><code class=\"bash\">$ sudo apt-get install libmediastreamer-dev<\/code><\/pre>\n<p>Paketat e nevojshme t\u00eb var\u00ebsive dhe vet\u00eb biblioteka e mediastreamer-it do t\u00eb shkarkohen dhe instalohen automatikisht.<\/p>\n<p>Madh\u00ebsia e p\u00ebrgjithshme e paketave deb t\u00eb shkarkuara t\u00eb var\u00ebsive do t\u00eb jet\u00eb rreth 35 MB. Detajet mbi paket\u00ebn e instaluar mund t\u00eb merren me komand\u00ebn:<\/p>\n<pre><code class=\"bash\">$ dpkg -s libmediastreamer-dev<\/code><\/pre>\n<p>Shembulli i p\u00ebrgjigjes:<\/p>\n<pre><code class=\"bash\">Paketa: libmediastreamer-dev\nStatusi: instalohet me sukses\nPrioriteti: opsional\nSection: libdevel\nMadh\u00ebsia e instaluar: 244\nMantenuesi: Zhvilluesit e Ubuntu \nArkitektura: amd64\nBurimi: linphone\nVersioni: 3.6.1-2.5\nVaret nga: libmediastreamer-base3 (= 3.6.1-2.5), libortp-dev\nP\u00ebrshkrimi: Biblioteka mediatike e telefonit web Linphone - skedar\u00eb zhvillimi\nLinphone \u00ebsht\u00eb nj\u00eb telefon interneti audio dhe video q\u00eb p\u00ebrdor protokollin SIP. Ai\nka nj\u00eb nd\u00ebrfaqe GTK+ dhe konsol\u00eb, p\u00ebrfshin nj\u00eb gam\u00eb t\u00eb gjer\u00eb kodek\u00ebsh audio dhe video\nn\u00eb dispozicion, dhe ofron ve\u00e7ori IM.\n.\nKjo paket\u00eb p\u00ebrmban bibliotekat zhvillimore p\u00ebr menaxhimin e operacioneve mediatike.\nMantenuesi origjinal: Ekipa VoIP e Debian \nFaqja kryesore: http:\/\/www.linphone.org\/\n<\/code><\/pre>\n<h4 id=\"ustanovka-instrumentov-razrabotki\">Instalimi i mjeteve t\u00eb zhvillimit<\/h4>\n<p>Po instalohet kompilatori C dhe mjetet e tjera p\u00ebrkat\u00ebse:<\/p>\n<pre><code class=\"bash\">$ sudo apt-get install gcc<\/code><\/pre>\n<p>Kontrollojm\u00eb rezultatin, duke k\u00ebrkuar versionin e kompilatorit:<\/p>\n<pre><code class=\"bash\">$ gcc --version<\/code><\/pre>\n<p>P\u00ebrgjigja duhet t\u00eb jet\u00eb di\u00e7ka si:<\/p>\n<pre><code class=\"bash\">gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609\nKopje (C) 2015 Fondacioni i Softuerit t\u00eb Lir\u00eb, Inc.\nKy \u00ebsht\u00eb softuer i lir\u00eb; shih burimin p\u00ebr kushtet e kopjimit. Nuk ka GARANCIGJ\u00cb; as p\u00ebr TREGTUESHM\u00cbRI apo P\u00cbRPOJTYRIMIN E VE\u00c7ANT\u00cb.<\/code><\/pre>\n<h4 id=\"sborka-i-zapusk-probnogo-prilozheniya\">Nd\u00ebrtimi dhe ekzekutimi i aplikacionit provues<\/h4>\n<p>Krijojm\u00eb n\u00eb <em>home<\/em> nj\u00eb dosje p\u00ebr projektet tona m\u00ebsimore, do ta quajm\u00eb <em>mstutorial<\/em>:<\/p>\n<pre><code class=\"bash\">$ mkdir ~\/mstutorial<\/code><\/pre>\n<p>P\u00ebrdorni redaktorin tuaj t\u00eb preferuar p\u00ebr t\u00eb krijuar nj\u00eb skedar C-programi me emrin <em>mstest.c<\/em> me p\u00ebrmbajtjen e m\u00ebposhtme:<\/p>\n<pre><code class=\"cpp\">#include \"stdio.h\"\n#include &lt;mediastreamer2\/mscommon.h&gt;\nint main()\n{\n  ms_init();\n  printf (\"Mediastreamer is ready.n\");\n}<\/code><\/pre>\n<p>Ai kryen inicializimin e mediastreamer-it, printon nj\u00eb p\u00ebrsh\u00ebndetje dhe p\u00ebrfundon ekzekutimin.<\/p>\n<p>Ruajm\u00eb skedarin dhe kompilojm\u00eb aplikacionin e testit me komand\u00ebn:<\/p>\n<pre><code class=\"bash\">$ gcc mstest.c -o mstest `pkg-config mediastreamer --libs --cflags`<\/code><\/pre>\n<p>Vini re se rreshti<\/p>\n<pre><code class=\"bash\">`pkg-config mediastreamer --libs --cflags`<\/code><\/pre>\n<p>\u00ebsht\u00eb e mbyllur n\u00eb cita, t\u00eb cilat ndodhen n\u00eb tastier\u00eb atje ku \u00ebsht\u00eb edhe letra \u00ab\u0401\u00bb.<\/p>\n<p>N\u00ebse skedari nuk p\u00ebrmban gabime, pas kompilimit do t\u00eb shfaqet nj\u00eb skedar <em>mstest<\/em>. Ekzekutojm\u00eb programin:<\/p>\n<pre><code class=\"bash\">$ .\/mstest<\/code><\/pre>\n<p>Rezultati do t\u00eb jet\u00eb si m\u00eb posht\u00eb:<\/p>\n<pre><code class=\"bash\">ALSA lib conf.c:4738:(snd_config_expand) Parametra t\u00eb panjohur 0\nALSA lib control.c:954:(snd_ctl_open_noupdate) CTL e pavlefshme default:0\nortp-warning-Nuk mund\u00ebm t\u00eb lidhim mixer-in me kart\u00ebn: Argument i pavlefsh\u00ebm\nALSA lib conf.c:4738:(snd_config_expand) Parametra t\u00eb panjohur 0\nALSA lib pcm.c:2266:(snd_pcm_open_noupdate) PCM i panjohur default:0\nALSA lib conf.c:4738:(snd_config_expand) Parametra t\u00eb panjohur 0\nALSA lib pcm.c:2266:(snd_pcm_open_noupdate) PCM i panjohur default:0\nortp-warning-\u00c7udit\u00ebrisht, kartela e z\u00ebrit HDA Intel PCH duket se nuk \u00ebsht\u00eb n\u00eb gjendje t\u00eb b\u00ebj\u00eb asgj\u00eb, po p\u00ebrpiqemi p\u00ebrs\u00ebri me plughw...\nMediastreamer \u00ebsht\u00eb gati.<\/code><\/pre>\n<p>N\u00eb k\u00ebt\u00eb list\u00eb shohim mesazhe gabimi q\u00eb jep biblioteka ALSA, e cila p\u00ebrdoret p\u00ebr menaxhimin e kart\u00ebs audio. Vet\u00eb zhvilluesit e mediastreamerit mendojn\u00eb se \u00ebsht\u00eb normale. N\u00eb k\u00ebt\u00eb rast, do t\u00eb pajtohemi me ta me d\u00ebshir\u00eb.<\/p>\n<p>Tani kemi gjith\u00e7ka gati p\u00ebr t\u00eb punuar me mediastreamerin. Ne kemi instaluar bibliotek\u00ebn e mediastreamerit, mjetin e kompjilimit dhe kemi verifikuar me nj\u00eb aplikacion provues se mjetet jan\u00eb t\u00eb konfigurara dhe mediastreameri \u00ebsht\u00eb inicializuar me sukses.<\/p>\n<p>N\u00eb t\u00eb ardhmen <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/495728\/\">artikullin<\/a><\/noindex> ne do t\u00eb krijojm\u00eb nj\u00eb aplikacion q\u00eb do t\u00eb mbledh\u00eb dhe nisi p\u00ebrpunimin e sinjalit audio n\u00eb nj\u00eb zinxhir me disa filtra.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/495702\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0437\u044f\u0442 \u0441 \u043c\u043e\u0435\u0433\u043e \u0434\u0437\u0435\u043d-\u043a\u0430\u043d\u0430\u043b\u0430. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u0440\u0435\u0430\u043b\u0442\u0430\u0439\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0438\u0436\u043a\u0430 Mediastreamer2. \u0412 \u0445\u043e\u0434\u0435 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0432\u044b\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 Linux \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438. Mediastreamer2 \u044d\u0442\u043e VoIP-\u0434\u0432\u0438\u0436\u043e\u043a, \u043b\u0435\u0436\u0430\u0449\u0438\u0439 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e open-source \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e voip-\u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 Linphone. \u0412 Linphone Mediastreamer2 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":77012,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-77011","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0437\u044f\u0442 \u0441 \u043c\u043e\u0435\u0433\u043e \u0434\u0437\u0435\u043d-\u043a\u0430\u043d\u0430\u043b\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u0437\u0443\u0447\u0430\u0435\u043c VoIP-\u0434\u0432\u0438\u0436\u043e\u043a Mediastreamer2. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0437\u044f\u0442 \u0441 \u043c\u043e\u0435\u0433\u043e \u0434\u0437\u0435\u043d-\u043a\u0430\u043d\u0430\u043b\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-06T23:42:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-02-16T07:44:41+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Studimi i motorit VoIP Mediastreamer2. Pjesa 1 | ProHoster","description":"Materiali i artikullit \u00ebsht\u00eb marr\u00eb nga kanali im n\u00eb Dzen.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u0437\u0443\u0447\u0430\u0435\u043c VoIP-\u0434\u0432\u0438\u0436\u043e\u043a Mediastreamer2. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster","og:description":"\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0437\u044f\u0442 \u0441 \u043c\u043e\u0435\u0433\u043e \u0434\u0437\u0435\u043d-\u043a\u0430\u043d\u0430\u043b\u0430.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-06T23:42:55+00:00","article:modified_time":"2021-02-16T07:44:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"77011","title":null,"description":"","keywords":"","keyphrases":null,"primary_term":null,"canonical_url":"","og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:25:30","updated":"2022-09-28 05:33:38","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/77011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=77011"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/77011\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/77012"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=77011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=77011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=77011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}