O mea o le tusiga e maua mai i laʻu
Faatomuaga
O lenei tusiga o le amataga lea o se faasologa o tala e uiga i le faʻagaioiina o ala o faasalalauga i le taimi moni e faʻaaoga ai le Mediastreamer2 engine. I le taimi o le faʻaaliga, o le a faʻaaogaina le poto masani i le galue i le Linux terminal ma polokalame i le gagana C.
Mediastreamer2 o le afi VoIP i tua o le lauiloa tatala-punavai voip polokalama polokalama polokalama
I le faʻaopoopoga i le tusitusiga, mo le faʻaogaina, nai lo le upu Mediastreamer2 o le a matou faʻaogaina lona faʻamatalaga Rusia: "mediastreamer".
O le tala faasolopito o lona foafoaga e leʻo manino atoatoa, ae faʻamasinoina i lona faʻailoga puna, na faʻaaogaina muamua le faletusi
O le faʻasalalauga faʻasalalau e faʻavae i luga o se fausaga e taʻua o le "Data flow". O se faʻataʻitaʻiga o sea fausaga o loʻo faʻaalia i le ata o loʻo i lalo.
I totonu o lenei fausaga, o le faʻasologa o faʻamaumauga algorithm e le o faʻamaonia e le polokalame code, ae o se ata (kalafa) o fesoʻotaʻiga galuega e mafai ona faʻatulagaina i soʻo se faasologa. O nei galuega e ta'ua o filiga.
O lenei fausaga e mafai ai ona faʻatinoina galuega faʻatautaia o ala o faasalalauga i le tulaga o se seti o filiga e fesoʻotaʻi i totonu o se matagaluega mo le faʻaogaina ma le felauaiga o fefaʻatauaiga RTP o se telefoni VoIP.
O le mafai ona faʻafesoʻotaʻi faʻamaʻi i totonu o fuafuaga faʻapitoa, atinaʻe faigofie o filiga fou, ma le faʻatinoina o le faʻasalalauga faʻasalalau o se faletusi tutoʻatasi tutoʻatasi e mafai ai ona faʻaaogaina i isi galuega. E le gata i lea, o le poloketi e mafai ona i ai i le fanua o le VoIP, talu ai e mafai ona faʻaopoopo ni filiga na faia e oe lava ia.
O le faletusi fa'amama e fai si mauoa ma, e pei ona ta'ua muamua, e mafai ona fa'alauteleina i filiga o la tatou lava mamanu. Ae muamua, o le a matou faʻamatalaina filiga ua saunia e sau ma le faʻasalalauga faʻasalalau. O la latou lisi lenei:
Filifiliga leo
Pu'e leo ma toe ta'alo
- Alsa (Linux): MS_ALSA_WRITE, MS_ALSA_READ
- leo fa'aletino Android (libmedia): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ
- Au'aunaga Tuli Leo (Mac OS X): MS_AQ_WRITE, MS_AQ_READ
- Au'aunaga Iunite leo (Mac OS X)
- Arts (Linux): MS_ARTS_WRITE, MS_ARTS_READ
- DirectSound (Windows): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
- Fai faila (faila/wav/pcap faila) (Linux): MS_FILE_PLAYER
- Fai faila (faila/wav faila) (Windows): MS_WINSND_READ
- Tusi i faila (wav faila) (Linux): MS_FILE_REC
- Tusi i faila (wav faila) (Windows): MS_WINSND_WRITE
- Vaega leo Mac (Mac OS X)
- MME (Pupuni)
- OSS (Linux): MS_OSS_WRITE, MS_OSS_READ
- PortAudio (Mac OS X)
- PulseAudio (Linux): MS_PULSE_WRITE, MS_PULSE_READ
- Pupuni Leo (Pupuni)
Fa'ailoga leo/fa'ailoga
- G.711 a-tulafono: MS_ALAW_DEC, MS_ALAW_ENC
- G.711 µ-tulafono: 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
- Tautala: MS_SPEEX_ENC, MS_SPEEX_DEC
Fa'alogo leo
- Fa'aliliuga ala (mono-> stereo, stereo->mono): MS_CHANNEL_ADAPTER
- Fonotaga: MS_CONF
- DTMF generator: MS_DTMF_GEN
- Faalēaogā leo (speex): MS_SPEEX_EC
- Fa'atusa: MS_EQUALIZER
- Faafefiloi: MS_MIXER
- Fa'ato'a leiloa o afifi (PLC): MS_GENERIC_PLC
- Toe fa'atusa: MS_RESAMPLE
- Su'e leo: MS_TONE_DETECTOR
- Pulea le leo ma le fuaina o fa'ailoga: MS_VOLUME
Filifiliga vitio
Pu'e vitiō ma toe ta'alo
- Pu'e Android
- Ta'aloga Android
- AV Foundation Pu'e (iOS)
- Toe ta'alo le AV Foundation (iOS)
- DirectShow pueina (Windows)
- Toe ta'alo DrawDib (Pupuni)
- Toe fa'afofoga i fafo - Lafo le vitio i le tulaga maualuga
- Toe ta'alo GLX (Linux): MS_GLXVIDEO
- Mire - Ata fa'agaioiina: MS_MIRE
- Toe ta'alo OpenGL (Mac OS X)
- Toe ta'alo OpenGL ES2 (Android)
- Pu'e taimi vave (Mac OS X)
- SDL toe ta'alo: MS_SDL_OUT
- Fa'atosina o ata fa'aletonu: MS_STATIC_IMAGE
- Vitio Mo Linux (V4L) pu'eina (Linux): MS_V4L
- Vitio Mo Linux 2 (V4L2) pu'eina (Linux): MS_V4L2_CAPTURE
- Video4windows (DirectShow) pu'eina (Windows)
- Video4windows (DirectShow) pu'eina (Windows CE)
- Vitio Mo Pupuni (vfw) pu'eina (Pupuni)
- Toe ta'alo XV (Linux)
Vitio encoding/decoding
- H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, Kiona: MS_MJPEG_DEC, MS_H263_ENC, MS_H263_DEC
- H.264 (na'o le decoder): MS_H264_DEC
- Theora: MS_THEORA_ENC, MS_THEORA_DEC
- VP8: MS_VP8_ENC, MS_VP8_DEC
Fa'agaioiga vitiō
- JPEG ata
- Fa'aliliuga fa'avasega Pixel: MS_PIX_CONV
- Resizer
- Isi filiga
- Fetufaaiga o poloka faʻamatalaga i le va o filo: MS_ITC_SOURCE, MS_ITC_SINK
- Aoina o poloka fa'amaumauga mai le tele o mea e fa'aoga i le tasi galuega: MS_JOIN
- Talia/fa'asalalau RTP: MS_RTP_SEND, MS_RTP_RECV
- Kopiina o fa'amatalaga fa'aoga i le tele o galuega faatino: MS_TEE
- Avega Faafetaui: MS_VOID_SINK
- Fa'afilemu puna: MS_VOID_SOURCE
Plugins
Filifiliga leo
- AMR-NB encoder/decoder
- G.729 encoder/decoder
- iLBC encoder/decoder
- SILK encoder/decoder
Filifiliga vitio
- H.264 software encoder
- H.264 V4L2 encoder/decoder ma meafaigaluega fa'avavevave
A maeʻa se faʻamatalaga puupuu o le faamama, e faʻaalia le igoa ituaiga, lea e faʻaaogaina pe a fatuina se faʻataʻitaʻiga fou o lenei faamama. I le talanoaga o loʻo mulimuli mai o le a tatou vaʻai i lenei lisi.
Faʻapipiʻi i lalo ole Linux Ubuntu
O lenei o le a matou faʻapipiʻi le ala o faasalalauga i luga o lau komepiuta ma fausia la matou talosaga muamua i ai.
O le faʻapipiʻiina o le Mediastremer2 i luga o se komepiuta poʻo se masini komepiuta e faʻaogaina le Ubuntu e le manaʻomia ni tomai faʻapitoa. O iinei ma lalo ifo, o le faailoga "$" o le a faʻaalia ai le faʻamalosi o le atigi mo le ulufale atu i tulafono. O na. afai i le lisi e te vaʻai ai i lenei faʻailoga i le amataga o se laina, o lona uiga o se laina lea e faʻaalia ai poloaiga e faʻatino i le laina.
E fa'apea a'o fa'atino laasaga o lo'o fa'amatalaina i lenei tusiga, e maua e lau komepiuta le Initaneti.
Faʻapipiʻi le pusa libmediastromer-dev
Tatala le laina ma lolomi le poloaiga:
$ sudo apt-get update
O le a fesiligia oe mo se faʻaupuga e fai ai suiga; ulufale i ai ma o le a faʻafouina e le pule o pusa ana faʻamaumauga. A maeʻa lenei mea e tatau ona e faia:
$ sudo apt-get install libmediastreamer-dev
Ole a otometi lava ona la'u mai ma fa'apipi'i pusa fa'alagolago e mana'omia ma le faletusi streamer lava ia.
Ole aofa'iga ole la'uina o afifi fa'alagolago ile aitalafu ole a tusa ole 35 MB. O faʻamatalaga e uiga i le afifi faʻapipiʻi e mafai ona maua i le poloaiga:
$ dpkg -s libmediastreamer-dev
Fa'ata'ita'iga tali:
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/
Fa'apipi'i Meafaigaluega Atina'e
Faʻapipiʻi le C compiler ma ana meafaigaluega faʻatasi:
$ sudo apt-get install gcc
Matou te siakiina le taunuʻuga e ala i le talosagaina o le faʻapipiʻi faʻasologa:
$ gcc --version
O le tali e tatau ona pei o lenei:
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.
Fausia ma fa'agaoioia se talosaga fa'ata'ita'i
Matou te fatuina i totonu aiga faila mo a tatou galuega faʻaaoaoga, seʻi taʻua mstutorial:
$ mkdir ~/mstutorial
Fa'aoga lau fa'atonu tusitusiga e sili ona e fiafia iai ma fai se faila polokalame C e ta'ua mstest.c fa'atasi ai ma mea nei:
#include "stdio.h"
#include <mediastreamer2/mscommon.h>
int main()
{
ms_init();
printf ("Mediastreamer is ready.n");
}
E amatalia le ala o faasalalauga, lolomi se faafeiloaiga, ma faauma le faatinoga.
Faasaoina le faila ma tuufaatasia le suʻega suʻega ma le poloaiga:
$ gcc mstest.c -o mstest `pkg-config mediastreamer --libs --cflags`
Faamolemole ia matau o le laina
`pkg-config mediastreamer --libs --cflags`
o loʻo faʻapipiʻiina i faʻailoga o upusii, o loʻo tuʻuina i luga o le piano i le nofoaga e tasi ma le mataitusi "Y".
Afai o le faila e le o iai ni mea sese, ona maeʻa lea ona tuʻufaʻatasia le faila o le a faʻaalia i totonu o le lisi mstest. Tatou fa'agasolo le polokalame:
$ ./mstest
O le taunuuga o le a pei o lenei:
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.
I lenei lisi matou te vaʻai ai i faʻamatalaga sese na faia e le faletusi ALSA, lea e faʻaaogaina e pulea ai le kata leo. O le au atiaʻe o le aufaasālalau streamer latou te talitonu o se mea masani lea. I lenei tulaga, e mautinoa lava tatou te ioe faatasi ma i latou.
O lea la ua matou sauni e galulue ma le fa'asalalauga fa'asalalau. Na matou fa'apipi'iina le faletusi o ala o fa'asalalauga, le meafaigaluega tu'ufa'atasia, ma fa'aoga se fa'ata'ita'iga talosaga e fa'amaonia ai na fa'atulaga meafaigaluega ma amata manuia le fa'asalalauga.
Sosoo ai
puna: www.habr.com