Lawe ʻia ka mea o ka ʻatikala mai kaʻu
Hōʻike
ʻO kēia ʻatikala ka hoʻomaka ʻana o nā ʻatikala e pili ana i ka hoʻoili ʻana i ka media manawa maoli me ka hoʻohana ʻana i ka mīkini Mediastreamer2. E pili ana ka hōʻike ʻana i nā mākau haʻahaʻa o ka hana ʻana ma ke kikowaena Linux a me nā polokalamu ma ka ʻōlelo C.
ʻO Mediastreamer2 ka ʻenekini VoIP ma hope o ka polokalamu kelepona voip kelepona kaulana.
Ma kahi o ka kikokikona, no ka maʻalahi, ma kahi o ka huaʻōlelo Mediastreamer2 e hoʻohana mākou i kāna ʻōlelo Lūkini: "media streamer".
ʻAʻole maopopo loa ka mōʻaukala o kāna hana ʻana, akā no ka hoʻoholo ʻana ma kāna kumu kumu, ua hoʻohana mua ia i ka waihona
Aia ma ka puʻuwai o ka streamer media kahi hale hana i kapa ʻia ʻo "Data flow" (data flow). Hōʻike ʻia kahi laʻana o ia ʻano hoʻolālā ma ke kiʻi ma lalo nei.
Ma kēia hoʻolālā, ʻaʻole i hōʻike ʻia ka algorithm o ka hoʻoili ʻana i ka ʻikepili e kahi code program, akā ma kahi hoʻolālā (graph) no ka hoʻopili ʻana i nā hana i hiki ke hoʻonohonoho ʻia i kēlā me kēia kauoha. Kapa ʻia kēia mau hana he kānana.
Hiki i kēia hoʻolālā ke hoʻokō i ka hana hoʻoili media ma ke ʻano o kahi hoʻonohonoho o nā kānana i hoʻopili ʻia i ke kelepona VoIP RTP traffic processing and transmission scheme.
ʻO ka hiki ke hoʻohui i nā kānana i loko o nā hoʻolālā ʻokoʻa, ka hoʻomohala maʻalahi o nā kānana hou, ka hoʻokō ʻana i ka streamer media ma ke ʻano he waihona kūʻokoʻa kūʻokoʻa, e ʻae ʻia e hoʻohana ʻia i nā papahana ʻē aʻe. Eia kekahi, hiki i ka papahana ma ke kahua o VoIP, no ka mea hiki ke hoʻohui i nā kānana i hana ʻia e kekahi.
ʻO ka waihona kānana i hāʻawi ʻia e ka paʻamau he waiwai nui a, e like me ka mea i ʻōlelo ʻia, hiki ke hoʻonui ʻia me nā kānana o kā mākou hoʻolālā ponoʻī. Akā ʻo ka mea mua, e wehewehe kākou i nā kānana i mākaukau i hele mai me ka streamer media. Eia kā lākou papa inoa:
Nā kānana kani
Hoʻopaʻa leo a pāʻani hou
- Alsa (Linux): MS_ALSA_WRITE, MS_ALSA_READ
- Leo ʻōiwi Android (libmedia): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ
- Hana Līlani Leo (Mac OS X): MS_AQ_WRITE, MS_AQ_READ
- Hana ʻĀpana Leo (Mac OS X)
- Noi (Linux): MS_ARTS_WRITE, MS_ARTS_READ
- DirectSound (Windows): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
- Mea pāʻani waihona (nā waihona raw/wav/pcap) (Linux): MS_FILE_PLAYER
- Mea pāʻani waihona (nā waihona maka/wav) (Windows): MS_WINSND_READ
- Kākau i ka waihona (wav files) (Linux): MS_FILE_REC
- Kākau i ka waihona (wav files) (Windows): MS_WINSND_WRITE
- ʻĀpana Leo Mac (Mac OS X)
- MME (Windows)
- OSS (Linux): MS_OSS_WRITE, MS_OSS_READ
- PortAudio (Mac OS X)
- PulseAudio (Linux): MS_PULSE_WRITE, MS_PULSE_READ
- Windows Sound (Windows)
Hoʻopāpā leo/decoding
- G.711 a-kānāwai: MS_ALAW_DEC, MS_ALAW_ENC
- G.711 µ-kānāwai: MS_ULAW_DEC, MS_ULAW_ENC
- G.722: MS_G722_DEC, MS_G722_ENC
- G.726: MS_G726_32_ENC, MS_G726_24_ENC, MS_G726_16_ENC
- GSM: MS_GSM_DEC, MS_GSM_ENC
- PCM laina: MS_L16_ENC, MS_L16_DEC
- ʻŌlelo: MS_SPEEX_ENC, MS_SPEEX_DEC
Hoʻoponopono kani
- Ka hoʻololi ʻana i ke ala (mono->stereo, stereo->mono): MS_CHANNEL_ADAPTER
- Hui: MS_CONF
- Mea Hana DTMF: MS_DTMF_GEN
- Hoʻopau leo (speex): MS_SPEEX_EC
- Mea hoʻohālikelike: MS_EQUALIZER
- Mea hui: MS_MIXER
- Pākuʻi Pohō ʻAi (PLC): MS_GENERIC_PLC
- Mea hana hou: MS_RESAMPLE
- Mea ʻike leo: MS_TONE_DETECTOR
- Ka mana leo a me ke ana pae hoailona: MS_VOLUME
Nā kānana wikiō
Paʻi wikiō a pāʻani hou
- ka hopu ʻana i ka android
- pāʻani Android
- Hopu AV Foundation (iOS)
- Hoʻokani hou ʻo AV Foundation (iOS)
- Hoʻopio DirectShow (Windows)
- Hoʻokani hou DrawDib (Windows)
- Pāʻani waho - Hoʻouna wikiō i ka papa luna
- Pāʻani GLX (Linux): MS_GLXVIDEO
- Mire - Kiʻi hoʻoneʻe ʻia: MS_MIRE
- Pāʻani OpenGL (Mac OS X)
- Pāʻani OpenGL ES2 (Android)
- Hopu manawa wikiwiki (Mac OS X)
- Pāʻani SDL: MS_SDL_OUT
- Puke kiʻi paʻa: MS_STATIC_IMAGE
- Video No Linux (V4L) hopu (Linux): MS_V4L
- Paʻi wikiō No Linux 2 (V4L2) hopu (Linux): MS_V4L2_CAPTURE
- Video4windows (DirectShow) hopu (Windows)
- Video4windows (DirectShow) hopu (Windows CE)
- Hopu wikiō no Windows (vfw) (Windows)
- Pāʻani XV (Linux)
Hoʻopaʻa wikiō/decoding
- H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, Hau: MS_MJPEG_DEC, MS_H263_ENC, MS_H263_DEC
- H.264 (decoder wale nō): MS_H264_DEC
- Theora: MS_THEORA_ENC, MS_THEORA_DEC
- VP8: MS_VP8_ENC, MS_VP8_DEC
Paʻi wikiō
- kiʻi jpeg
- Mea hoʻololi kiʻi pixel: MS_PIX_CONV
- Resizer
- Nā kānana ʻē aʻe
- Hoʻololi i nā poloka ʻikepili ma waena o nā loina: MS_ITC_SOURCE, MS_ITC_SINK
- E hōʻiliʻili i nā poloka ʻikepili mai nā mea hoʻokomo he nui i hoʻokahi puka: MS_JOIN
- Loaʻa/hoʻouna iā RTP: MS_RTP_SEND, MS_RTP_RECV
- Ke kope nei i ka ʻikepili hoʻokomo i nā mea hoʻopuka he nui: MS_TEE
- Hoʻopau ʻia ka ukana: MS_VOID_SINK
- Pūnaehana Hamau: MS_VOID_SOURCE
Nā Plugins
Nā kānana kani
- AMR-NB encoder/decoder
- G.729 encoder/decoder
- iLBC encoder/decoder
- SILK encoder/decoder
Nā kānana wikiō
- H.264 lako polokalamu encoder
- H.264 V4L2 lako lako hoʻokēʻai/decoder
Ma hope o ka wehewehe pōkole o ka kānana, hōʻike ʻia ka inoa ʻano, i hoʻohana ʻia i ka hana ʻana i kahi mea hou o kēia kānana. Ma nā mea aʻe, e nānā mākou i kēia papa inoa.
Hoʻokomo ma lalo o Linux Ubuntu
I kēia manawa e hoʻokomo mākou i ka streamer media ma ke kamepiula a kūkulu i kā mākou noi mua me ia.
ʻO ka hoʻokomo ʻana iā Mediastremer2 ma kahi kamepiula a i ʻole ka mīkini virtual e holo ana i ka Ubuntu ʻaʻole koi i nā mākau kūikawā. Ma ʻaneʻi a ma lalo, ʻo ka hōʻailona "$" e hōʻike i ka ʻōkuhi shell no ke komo ʻana i nā kauoha. ʻO kēlā mau. inā ma ka papa inoa ʻike ʻoe i kēia hōʻailona ma ka hoʻomaka ʻana o ka laina, a laila ʻo ia ka laina e hōʻike ʻia ai nā kauoha e hoʻokō ʻia ma ka pahu.
Ua manaʻo ʻia aia i ka wā o nā ʻanuʻu o kēia ʻatikala, hiki i kāu kamepiula ke komo i ka Pūnaewele.
Ke hoʻokomo nei i ka pūʻolo libmediastremer-dev
E hoʻokuʻu i ka pahu a paʻi i ke kauoha:
$ sudo apt-get update
E noi ʻia ʻoe i kahi ʻōlelo huna e hoʻololi ai, e hoʻokomo iā ia a e hoʻoponopono ka luna pūʻolo i kāna mau ʻikepili. Ma hope o kēlā, pono ʻoe e holo:
$ sudo apt-get install libmediastreamer-dev
ʻO nā pūʻolo hilinaʻi pono a me ka waihona streamer media ponoʻī e hoʻoiho a hoʻokomo ʻia.
ʻO ka nui o nā pūʻolo deb dependency i hoʻoiho ʻia ma kahi o 35 MB. Hiki ke loaʻa nā kikoʻī e pili ana i ka pūʻolo i kau ʻia me ke kauoha:
$ dpkg -s libmediastreamer-dev
Laʻana pane:
Package: libmediastreamer-dev
Status: install ok installed
Priority: optional
Section: libdevel
Installed-Size: 244
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Source: linphone
Version: 3.6.1-2.5
Depends: libmediastreamer-base3 (= 3.6.1-2.5), libortp-dev
Description: Linphone web phone's media library - development files
Linphone is an audio and video internet phone using the SIP protocol. It
has a GTK+ and console interface, includes a large variety of audio and video
codecs, and provides IM features.
.
This package contains the development libraries for handling media operations.
Original-Maintainer: Debian VoIP Team <[email protected]>
Homepage: http://www.linphone.org/
Ke hoʻokomo nei i nā mea hana hoʻomohala
E hoʻouka i ka C compiler a me kāna mau mea hana:
$ sudo apt-get install gcc
Nānā mākou i ka hopena ma ka nīnau ʻana i ka mana compiler:
$ gcc --version
ʻO ka pane e like me kēia:
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Ke kūkulu ʻana a me ka holo ʻana i ka noi hoʻokolokolo
Hana mākou i loko ka hale waihona no kā mākou papahana aʻo, e kāhea mākou mstutorial:
$ mkdir ~/mstutorial
E hoʻohana i kāu mea hoʻoponopono kikokikona punahele a hana i kahi faila papahana C i kapa ʻia mstest.c me keia mau mea:
#include "stdio.h"
#include <mediastreamer2/mscommon.h>
int main()
{
ms_init();
printf ("Mediastreamer is ready.n");
}
Hoʻomaka ia i ka streamer media, paʻi i ke aloha, a puka i waho.
E mālama i ka faila a hoʻohui i ka noi hoʻāʻo me ke kauoha:
$ gcc mstest.c -o mstest `pkg-config mediastreamer --libs --cflags`
E hoʻomaopopo i ka laina
`pkg-config mediastreamer --libs --cflags`
i hoʻopaʻa ʻia i nā kaha puanaʻi, aia ma ka papa keyboard ma kahi like me ka leka "Ё".
Inā ʻaʻohe hewa o ka faila, a laila ma hope o ka hōʻuluʻulu ʻana e ʻike ʻia kahi faila i ka papa kuhikuhi mstest. Hoʻomaka mākou i ka papahana:
$ ./mstest
Penei ka hopena:
ALSA lib conf.c:4738:(snd_config_expand) Unknown parameters 0
ALSA lib control.c:954:(snd_ctl_open_noupdate) Invalid CTL default:0
ortp-warning-Could not attach mixer to card: Invalid argument
ALSA lib conf.c:4738:(snd_config_expand) Unknown parameters 0
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM default:0
ALSA lib conf.c:4738:(snd_config_expand) Unknown parameters 0
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM default:0
ortp-warning-Strange, sound card HDA Intel PCH does not seems to be capable of anything, retrying with plughw...
Mediastreamer is ready.
Ma kēia papa inoa, ʻike mākou i nā memo hewa i hōʻike ʻia e ka hale waihona puke ALSA, hoʻohana ʻia ia e kāohi i ke kāleka kani. Manaʻo nā mea hoʻomohala o ka media streamer he mea maʻamau kēia. I kēia hihia, ʻae like mākou me lākou.
I kēia manawa ua mākaukau mākou e hana me ka streamer media. Ua hoʻokomo mākou i ka waihona streamer media, ka mea hana hoʻohui, a me ka hoʻohana ʻana i kahi noi hoʻāʻo, hōʻoia ʻia ua hoʻonohonoho ʻia nā mea hana a hoʻomaka maikaʻi ka streamer media.
Aʻe
Source: www.habr.com