{"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 artikujt \u00ebsht\u00eb marr\u00eb nga kanali im <noindex><a rel=\"nofollow\" href=\"https:\/\/zen.yandex.ru\/id\/5e3f8e0751f5346faab4fc7a\">Dzen<\/a><\/noindex>.<\/p>\n<h2 id=\"vvedenie\">Hyrje<\/h2>\n<p>Ky k\u00ebt artikulli \u00ebsht\u00eb fillimi i nj\u00eb serie artikujsh mbi p\u00ebrpunimin e mediave n\u00eb koh\u00eb reale me ndihm\u00ebn e motorit Mediastreamer2. Gjat\u00eb trajtimit do t\u00eb p\u00ebrdoren aft\u00ebsi minimale t\u00eb pun\u00ebs n\u00eb terminalin Linux dhe programimit 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 popullor 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 q\u00eb lidhen me tingullin dhe videon. Nj\u00eb list\u00eb e detajuar e mund\u00ebsive t\u00eb motorit mund t\u00eb shihet n\u00eb k\u00ebt\u00eb faqe Mediastreamer. Kodi burimor ndodhet k\u00ebtu: <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.linphone.org\/BC\/public\/mediastreamer2\">GitLab<\/a><\/noindex>.<\/p>\n<p>Dhe, p\u00ebr leht\u00ebsi, n\u00eb tekstin n\u00eb vijim do t\u00eb p\u00ebrdorim notacionin e tij shqiptar: \u00abmidiastreamer\u00bb.<\/p>\n<p>Historia e krijimit t\u00eb tij nuk \u00ebsht\u00eb plot\u00ebsisht e qart\u00eb, por sipas kodit t\u00eb tij burimor, ai ka p\u00ebrdorur m\u00eb par\u00eb bibliotek\u00ebn <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/GLib\">Glib<\/a><\/noindex>, q\u00eb na n\u00ebnkupton nj\u00eb lidhje t\u00eb mundshme 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 p\u00ebr momentin, mediastreamer ekziston dhe zhvillohet p\u00ebr afro 20 vjet.<\/p>\n<p>N\u00eb baz\u00eb t\u00eb mediastreamerit q\u00ebndron nj\u00eb arkitektur\u00eb e quajtur \u00abData flow\u00bb (rrjedha e t\u00eb dh\u00ebnave). Nj\u00eb shembull i k\u00ebsaj arkitekture \u00ebsht\u00eb ilustruar 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 arkitektur\u00eb, algoritmi i p\u00ebrpunimit t\u00eb t\u00eb dh\u00ebnave p\u00ebrcaktohet jo nga kodi programues, por nga nj\u00eb skem\u00eb (graf) lidhjeje t\u00eb funksioneve, t\u00eb cilat mund t\u00eb rregullohen n\u00eb \u00e7do rend. K\u00ebto funksione quhen filtra.<\/p>\n<p>Kjo arkitektur\u00eb lejon implementimin e funksionalitetit t\u00eb p\u00ebrpunimit t\u00eb mediave si nj\u00eb grup filtrash, t\u00eb lidhura n\u00eb nj\u00eb skem\u00eb t\u00eb p\u00ebrpunimit dhe transmetimit t\u00eb RTP-s\u00eb p\u00ebr telefonin VoIP.<\/p>\n<p>Mund\u00ebsia p\u00ebr t\u00eb lidhur filtrat n\u00eb skema t\u00eb rast\u00ebsishme, zhvillimi i leht\u00eb i filtrave t\u00eb rinj, implementimi i mediastreamer si nj\u00eb bibliotek\u00eb t\u00eb ve\u00e7ant\u00eb t\u00eb pavarur, lejojn\u00eb p\u00ebrdorimin e tij edhe n\u00eb projekte t\u00eb tjera. Projekti mund t\u00eb jet\u00eb n\u00eb fush\u00ebn e VoIP, pasi ekziston mund\u00ebsia p\u00ebr t\u00eb shtuar filtra t\u00eb zhvilluar vet\u00eb.<\/p>\n<p>Biblioteka e filtrave e ofruar nga parazgjedhja \u00ebsht\u00eb mjaft e pasur dhe si\u00e7 \u00ebsht\u00eb th\u00ebn\u00eb m\u00eb par\u00eb, mund t\u00eb zgjerohet me filtra t\u00eb zhvilluar nga vet\u00eb. Por fillimisht do t\u00eb p\u00ebrshkruajm\u00eb filtrat e gatsh\u00ebm, t\u00eb cilat vijn\u00eb me mediastreamer. Ja lista e tyre:<\/p>\n<h3 id=\"zvukovye-filtry\">Filtrat e tingullit<\/h3>\n<h4 id=\"zahvat-i-vosproizvedenie-zvuka\">Kapja dhe riprodhimi i tingullit<\/h4>\n<ul>\n<li>Alsa (Linux): MS_ALSA_WRITE, MS_ALSA_READ<\/li>\n<li>Tingulli native i Android (libmedia): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ<\/li>\n<li>Sh\u00ebrbimi i Audio Queue (Mac OS X): MS_AQ_WRITE, MS_AQ_READ<\/li>\n<li>Sh\u00ebrbimi i Nj\u00ebsis\u00eb Audio (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>Shkarkuesi i skedar\u00ebve (raw\/wav\/pcap) (Linux): MS_FILE_PLAYER<\/li>\n<li>Shkarkuesi i skedar\u00ebve (raw\/wav) (Windows): MS_WINSND_READ<\/li>\n<li>Regjistrimi n\u00eb skedar (wav) (Linux): MS_FILE_REC<\/li>\n<li>Regjistrimi n\u00eb skedar (wav) (Windows): MS_WINSND_WRITE<\/li>\n<li>Nj\u00ebsia Audio e Mac (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>Z\u00ebri i Windows (Windows)<\/li>\n<\/ul>\n<h4 id=\"kodirovaniedekodirovanie-zvuka\">Kodimi\/dekodimi i z\u00ebrit<\/h4>\n<ul>\n<li>G.711 a-lege: MS_ALAW_DEC, MS_ALAW_ENC<\/li>\n<li>G.711 \u00b5-lege: 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>IKM lineare: 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>Shk\u00ebputja e jehon\u00ebs (speex): MS_SPEEX_EC<\/li>\n<li>Ekualizuesi: MS_EQUALIZER<\/li>\n<li>Mikseri: MS_MIXER<\/li>\n<li>Kompenzatori i humbjes s\u00eb paketeve (PLC): MS_GENERIC_PLC<\/li>\n<li>R\u00ebreshimi: MS_RESAMPLE<\/li>\n<li>Detektori i ton\u00ebve: MS_TONE_DETECTOR<\/li>\n<li>Kontrolli i volumit dhe matja e nivelit t\u00eb sinjalit: MS_VOLUME<\/li>\n<\/ul>\n<h3 id=\"filtry-video\">Filtrat e videos<\/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>Kapja DirectShow (Windows)<\/li>\n<li>Riprodhimi DrawDib (Windows)<\/li>\n<li>Riprodhimi jasht\u00eb \u2014 D\u00ebrgimi i videos n\u00eb nivelin e lart\u00eb<\/li>\n<li>Riprodhimi GLX (Linux): MS_GLXVIDEO<\/li>\n<li>Mire \u2014 Imazh i l\u00ebvizsh\u00ebm sintetik: MS_MIRE<\/li>\n<li>Riprodhimi OpenGL (Mac OS X)<\/li>\n<li>Riprodhimi OpenGL ES2 (Android)<\/li>\n<li>Kapja Quicktime (Mac OS X)<\/li>\n<li>Riprodhimi SDL: MS_SDL_OUT<\/li>\n<li>Shkarkimi i imazheve statike: MS_STATIC_IMAGE<\/li>\n<li>Kapja Video For Linux (V4L) (Linux): MS_V4L<\/li>\n<li>Kapja Video For Linux 2 (V4L2) (Linux): MS_V4L2_CAPTURE<\/li>\n<li>Kapja Video4windows (DirectShow) (Windows)<\/li>\n<li>Kapja Video4windows (DirectShow) (Windows CE)<\/li>\n<li>Kapja Video For Windows (vfw) (Windows)<\/li>\n<li>Riprodhimi XV (Linux)<\/li>\n<\/ul>\n<h4 id=\"kodirovaniedekodirovanie-video\">Kodi\/dekodi 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 (pjes\u00ebrisht dekoder): 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>Shtypja JPEG<\/li>\n<li>Kursi i formatit t\u00eb pikselit: MS_PIX_CONV<\/li>\n<li>Rip\u00ebrmasimi<\/li>\n<li>Filtra t\u00eb tjer\u00eb<\/li>\n<li>Shk\u00ebmbimi i bllokave t\u00eb t\u00eb dh\u00ebnave midis fijeve: MS_ITC_SOURCE, MS_ITC_SINK<\/li>\n<li>Grumbullimi i bllokave t\u00eb t\u00eb dh\u00ebnave nga disa hyrje n\u00eb nj\u00eb dalje: MS_JOIN<\/li>\n<li>Pranimi\/d\u00ebrgimi RTP: 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>Ngarkesa e harmonizuar: 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\">Filtrat e tingullit<\/h4>\n<ul>\n<li>Koder\/dekoder AMR-NB<\/li>\n<li>Koder\/dekoder G.729<\/li>\n<li>Koder\/dekoder iLBC<\/li>\n<li>Koder\/dekoder SILK<br \/>\n<h4 id=\"filtry-video\">Filtrat e videos<\/h4>\n<\/li>\n<li>Koder p\u00ebr H.264 programor<\/li>\n<li>Koder\/dekoder H.264 V4L2 me p\u00ebrshpejtim harduerik<\/li>\n<\/ul>\n<p>Pas p\u00ebrshkrimit t\u00eb shkurt\u00ebr t\u00eb filtrit tregohet emri i tipit q\u00eb p\u00ebrdoret p\u00ebr krijimin e 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-it n\u00eb kompjuter dhe do t\u00eb nd\u00ebrtojm\u00eb aplikacionin ton\u00eb t\u00eb par\u00eb me t\u00eb.<\/p>\n<p>Instalimi i Mediastremer2 n\u00eb nj\u00eb kompjuter ose makin\u00eb virtuale t\u00eb menaxhuar nga Ubuntu nuk k\u00ebrkon aft\u00ebsi t\u00eb ve\u00e7anta. K\u00ebtu dhe m\u00eb tej, simboli \u00ab$\u00bb do t\u00eb p\u00ebrdoret p\u00ebr t\u00eb treguar ftes\u00ebn e shell-it p\u00ebr t\u00eb futur komanda. Pra, n\u00ebse n\u00eb list\u00eb shihni k\u00ebt\u00eb simbol n\u00eb fillim t\u00eb nj\u00eb rreshti, do t\u00eb thot\u00eb se \u00ebsht\u00eb nj\u00eb rresht ku jan\u00eb shfaqur komandat p\u00ebr t'u ekzekutuar n\u00eb terminal.<\/p>\n<p>Supozimi \u00ebsht\u00eb se gjat\u00eb kryerjes s\u00eb veprimeve t\u00eb p\u00ebrshkruara n\u00eb k\u00ebt\u00eb artikull, kompjuteri juaj ka qasje n\u00eb rrjetin e Internetit.<\/p>\n<h4 id=\"ustanovka-paketa-libmediastremer-dev\">Instalimi i paket\u00ebs libmediastremer-dev<\/h4>\n<p>Hapni terminalin dhe shkruani komand\u00ebn:<\/p>\n<pre><code class=\"bash\">$ sudo apt-get update<\/code><\/pre>\n<p>Do t'ju k\u00ebrkohet nj\u00eb fjal\u00ebkalim p\u00ebr t\u00eb b\u00ebr\u00eb ndryshime, shkruani at\u00eb dhe menaxheri i pakove do t\u00eb azhurnohet. Pasi t\u00eb b\u00ebhet kjo, duhet t\u00eb ekzekutoni:<\/p>\n<pre><code class=\"bash\">$ sudo apt-get install libmediastreamer-dev<\/code><\/pre>\n<p>Paketat e nevojshme t\u00eb var\u00ebsive dhe biblioteka e mediastreamer-it do t\u00eb shkarkohen dhe instalohen automatikisht.<\/p>\n<p>Madh\u00ebsia e p\u00ebrgjithshme e pakove 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\">Paket\u00eb: libmediastreamer-dev\nStatus: instaluar\nPrioritet: opsional\nSekcija: libdevel\nMadh\u00ebsia e instaluar: 244\nMenaxheri: Zhvilluesit e Ubuntu &lt;ubuntu-devel-discuss@lists.ubuntu.com&gt;\nArkitektura: amd64\nBurimi: linphone\nVersioni: 3.6.1-2.5\nVar\u00ebsit\u00eb: libmediastreamer-base3 (= 3.6.1-2.5), libortp-dev\nP\u00ebrshkrimi: Biblioteka e medias s\u00eb telefonit n\u00eb internet Linphone - skedar\u00ebt e zhvillimit\nLinphone \u00ebsht\u00eb nj\u00eb telefon audio dhe video n\u00eb internet 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 kodekesh audio dhe video\ndhe ofron karakteristika IM.\n.\nKjo paket\u00eb p\u00ebrmban bibliotekat e zhvillimit p\u00ebr trajtimin e operacioneve mediale.\nMenaxheri Origjinal: Ekipi VoIP i Debian-it &lt;pkg-voip-maintainers@lists.alioth.debian.org&gt;\nHomepage: http:\/\/www.linphone.org\/\n<\/code><\/pre>\n<h4 id=\"ustanovka-instrumentov-razrabotki\">Instalimi i mjeteve t\u00eb zhvillimit<\/h4>\n<p>Instaloni kompilatorin C dhe mjetet e tij shoq\u00ebruese:<\/p>\n<pre><code class=\"bash\">$ sudo apt-get install gcc<\/code><\/pre>\n<p>Kontrolloni rezultatin duke k\u00ebrkuar versionin e kompilatorit:<\/p>\n<pre><code class=\"bash\">$ gcc --version<\/code><\/pre>\n<p>P\u00ebrgjigjja duhet t\u00eb jet\u00eb di\u00e7ka e till\u00eb:<\/p>\n<pre><code class=\"bash\">gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609\nCopyright (C) 2015 Fondacioni i Lir\u00eb i Softuerit, Inc.\nKy \u00ebsht\u00eb softuer i lir\u00eb; shihni burimin p\u00ebr kushte kopjimi. Nuk ka\ngaranci; as p\u00ebr TREGTARSHM\u00cbRI apo PASTRUESM\u00cbRI M\u00cb T\u00cb P\u00cbRKOSHM\u00cb.<\/code><\/pre>\n<h4 id=\"sborka-i-zapusk-probnogo-prilozheniya\">Nd\u00ebrtimi dhe lan\u00e7imi i aplikacionit provues<\/h4>\n<p>Krijoni n\u00eb <em>home<\/em> nj\u00eb folder p\u00ebr projektet tona m\u00ebsimore, 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 t\u00eb tekstit dhe krijoni nj\u00eb sked\u00eb C 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>Ruani sked\u00ebn dhe kompiloni aplikacionin provues me komand\u00ebn:<\/p>\n<pre><code class=\"bash\">$ gcc mstest.c -o mstest `pkg-config mediastreamer --libs --cflags`<\/code><\/pre>\n<p>V\u00ebrejtje, se rreshti<\/p>\n<pre><code class=\"bash\">`pkg-config mediastreamer --libs --cflags`<\/code><\/pre>\n<p>\u00ebsht\u00eb e mbyllur n\u00eb thonj\u00ebza, t\u00eb cilat ndodhen n\u00eb tastier\u00eb aty ku \u00ebsht\u00eb letra \u00ab\u0401\u00bb.<\/p>\n<p>N\u00ebse skedari nuk ka gabime, at\u00ebher\u00eb pas kompilimit n\u00eb katalog do t\u00eb shfaqet skedari <em>mstest<\/em>. T\u00eb fillojm\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 i pavlefsh\u00ebm default:0\nortp-warning-Nuk mund t\u00eb bashkohen mikseri me kart\u00eb: 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-Cuditshme, karta e z\u00ebrit HDA Intel PCH nuk duket se \u00ebsht\u00eb n\u00eb gjendje t'i b\u00ebj\u00eb asgj\u00eb, duke provuar s\u00ebrish me plughw...\nMediastreamer \u00ebsht\u00eb gati.<\/code><\/pre>\n<p>N\u00eb k\u00ebt\u00eb listing ne shohim mesazhet e gabimeve q\u00eb jep biblioteka ALSA, e cila p\u00ebrdoret p\u00ebr menaxhimin e kart\u00ebs s\u00eb z\u00ebrit. Vet\u00eb zhvilluesit e mediastreamer-it e konsiderojn\u00eb k\u00ebt\u00eb si normale. Ne n\u00eb k\u00ebt\u00eb rast do t\u00eb pajtohemi me ta, p\u00ebrve\u00e7se pa d\u00ebshir\u00eb.<\/p>\n<p>Tani kemi gjith\u00e7ka gati p\u00ebr t\u00eb punuar me mediastreamer-in. Ne kemi instaluar biblioteken e mediastreamer-it, mjetin e kompjilimit dhe me an\u00eb t\u00eb nj\u00eb aplikacioni prove verifikojm\u00eb se mjetet jan\u00eb t\u00eb konfiguruara dhe mediastreamer-in \u00ebsht\u00eb inicializuar me sukses.<\/p>\n<p>N\u00eb artikullin e ardhsh\u00ebm <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/495728\/\">artikulli yn\u00eb<\/a><\/noindex> ne do t\u00eb krijojm\u00eb nj\u00eb aplikacion q\u00eb do t\u00eb mbledh\u00eb dhe aktivizoj\u00eb procesimin e sinjalit audio n\u00eb nj\u00eb zinxhir t\u00eb disa filtrave.<\/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.2 - 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.2\" \/>\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}]}}