Iniúchadh ar inneall VoIP Mediastreamer2. Cuid 1

Tógtar ábhar an ailt ó mo cainéal zen.

Réamhrá

Is é an t-alt seo tús le sraith alt faoi phróiseáil na meán fíor-ama ag baint úsáide as inneall Mediastreamer2. Beidh na scileanna íosta a bhaineann le bheith ag obair i gcríochfort Linux agus ríomhchlárú sa teanga C i gceist leis an gcur i láthair.

Is é Mediastreamer2 an t-inneall VoIP atá taobh thiar den tionscadal fóin voip bogearraí foinse oscailte a bhfuil móréilimh air. Fón póca. In Linphone cuireann Mediastreamer2 na feidhmeanna go léir a bhaineann le fuaim agus físeáin i bhfeidhm. Tá liosta mionsonraithe de ghnéithe an innill le feiceáil ar an leathanach Mediastreamer seo. Tá an cód foinse anseo: GitLab.

Níos faide sa téacs, ar mhaithe le caoithiúlacht, in ionad an fhocail Mediastreamer2 úsáidfimid a nodaireacht Rúisise: “media streamer”.

Níl stair a chruthaithe go hiomlán soiléir, ach de réir a cód foinse, d'úsáid sé an leabharlann roimhe seo glib, rud a thugann le tuiscint, mar a bhí, go bhféadfadh caidreamh i bhfad i gcéin a bheith ann leis GStreamer. I gcomparáid lena Breathnaíonn an streamer meáin níos éadroma. Tháinig an chéad leagan de Linphone le feiceáil i 2001, mar sin faoi láthair tá an sruthóir meáin ann agus forbraíonn sé ar feadh beagnach 20 bliain.

Tá ailtireacht ar a dtugtar "Sreabhadh sonraí" (sreabhadh sonraí) ag croílár an sruthaitheora meán. Léirítear sampla d'ailtireacht den sórt sin san fhigiúr thíos.

Iniúchadh ar inneall VoIP Mediastreamer2. Cuid 1

San ailtireacht seo, sonraítear an t-algartam próiseála sonraí ní le cód cláir, ach le scéim (graf) chun feidhmeanna a nascadh is féidir a shocrú in aon ord. Tugtar scagairí ar na feidhmeanna seo.

Leis an ailtireacht seo is féidir feidhmiúlacht próiseála na meán a chur i bhfeidhm i bhfoirm sraith scagairí atá ceangailte le scéim próiseála agus tarchurtha tráchta RTP fón VoIP.

Ceadaíonn an cumas scagairí a chomhcheangal i scéimeanna treallach, forbairt shimplí scagairí nua, cur i bhfeidhm an tsrutha meáin mar leabharlann neamhspleách ar leithligh, é a úsáid i dtionscadail eile. Ina theannta sin, is féidir leis an tionscadal a bheith i réimse VoIP, ós rud é gur féidir scagairí a rinne an duine féin a chur leis.

Tá an leabharlann scagaire a sholáthraítear de réir réamhshocraithe saibhir go leor agus, mar a luadh cheana, is féidir é a leathnú le scagairí dár ndearadh féin. Ach ar dtús, déanaimis cur síos ar na scagairí réidh-déanta a thagann leis an sruthóir meán. Seo a liosta:

Scagairí fuaime

Gabháil agus athsheinm fuaime

  • Alsa (Linux): MS_ALSA_WRITE, MS_ALSA_READ
  • Fuaim dhúchais Android (libmedia): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ
  • Seirbhís Ciú Fuaime (Mac OS X): MS_AQ_WRITE, MS_AQ_READ
  • Seirbhís Aonaid Fuaime (Mac OS X)
  • Na hEalaíona (Linux): MS_ARTS_WRITE, MS_ARTS_READ
  • DirectSound (Windows): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
  • Imreoir comhaid (comhaid amh/wav/pcap) (Linux): MS_FILE_PLAYER
  • Seinnteoir comhaid (comhaid amh/wav) (Windows): MS_WINSND_READ
  • Scríobh chuig an gcomhad (comhaid wav) (Linux): MS_FILE_REC
  • Scríobh chuig an gcomhad (comhaid wav) (Windows): MS_WINSND_WRITE
  • Aonad Fuaime 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
  • Fuaim Windows (Windows)

Ionchódú/díchódú fuaime

  • G.711 a-dlí: MS_ALAW_DEC, MS_ALAW_ENC
  • G.711 µ-dlí: 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 líneach: MS_L16_ENC, MS_L16_DEC
  • Labhairt: MS_SPEEX_ENC, MS_SPEEX_DEC

Próiseáil fuaime

  • Comhshó cainéal (mono-> steirió, steirió-> mona): MS_CHANNEL_ADAPTER
  • Comhdháil: MS_CONF
  • Gineadóir DTMF: MS_DTMF_GEN
  • Cealú macalla (speex): MS_SPEEX_EC
  • Cothromóir: MS_EQUALIZER
  • Meascthóir: MS_MIXER
  • Cúiteamh Caillteanas Paicéad (PLC): MS_GENERIC_PLC
  • Athshampla: MS_RESAMPLE
  • Brathadóir ton: MS_TONE_DETECTOR
  • Rialú toirte agus tomhas leibhéal an chomhartha: MS_VOLUME

Scagairí físeán

Gabháil agus athsheinm físe

  • ghabháil android
  • athsheinm android
  • Gabháil Fondúireacht AV (iOS)
  • Athsheinm Fondúireacht AV (iOS)
  • Gabháil DirectShow (Windows)
  • Athsheinm DrawDib (Windows)
  • Athsheinm seachtrach - Físeán a sheoladh chuig an gciseal barr
  • Athsheinm GLX (Linux): MS_GLXVIDEO
  • Mire - Pictiúr gluaisteach sintéiseach: MS_MIRE
  • Athsheinm OpenGL (Mac OS X)
  • Athsheinm OpenGL ES2 (Android)
  • Gabháil Quicktime (Mac OS X)
  • Athsheinm SDL: MS_SDL_OUT
  • Aschur íomhá statach: MS_STATIC_IMAGE
  • Gabháil Físeáin Le haghaidh Linux (V4L) (Linux): MS_V4L
  • Gabháil Físeáin Le haghaidh Linux 2 (V4L2) (Linux): MS_V4L2_CAPTURE
  • Gabháil Video4windows (DirectShow) (Windows)
  • Gabháil Video4windows (DirectShow) (Windows CE)
  • Gabháil Físeáin Do Windows (vfw) (Windows)
  • Athsheinm XV (Linux)

Ionchódú / díchódú físeáin

  • H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, Sneachta: MS_MJPEG_DEC, MS_H263_ENC, MS_H263_DEC
  • H.264 (díchódóir amháin): MS_H264_DEC
  • Teoiric: MS_THEORA_ENC, MS_THEORA_DEC
  • VP8: MS_VP8_ENC, MS_VP8_DEC

Próiseáil físeán

  • Grianghraf jpeg saor in aisce,
  • Tiontaire formáid picteilíní: MS_PIX_CONV
  • Resizer
  • scagairí eile
  • Malartú bloic sonraí idir snáitheanna: MS_ITC_SOURCE, MS_ITC_SINK
  • Bloic sonraí á mbailiú ó ionchuir iolracha go dtí aschur amháin: MS_JOIN
  • Faigh/tarchuir RTP: MS_RTP_SEND, MS_RTP_RECV
  • Sonraí ionchuir á gcóipeáil go haschuir iolracha: MS_TEE
  • Ualach críochnaithe: MS_VOID_SINK
  • Foinse Ciúnais: MS_VOID_SOURCE

Breiseáin

Scagairí fuaime

  • Ionchódóir/díchódóir AMR-NB
  • Ionchódóir/díchódóir G.729
  • Ionchódóir/díchódóir iLBC
  • Ionchódóir/díchódóir SILK

    Scagairí físeán

  • Ionchódóir bogearraí H.264
  • Ionchódóir/díchódóir luathaithe crua-earraí H.264 V4L2

Tar éis cur síos gairid ar an scagaire, taispeántar ainm an chineáil, a úsáidtear nuair a chruthaítear ásc nua den scagaire seo. Sa mhéid seo a leanas, déanfaimid tagairt don liosta seo.

Suiteáil faoi Linux Ubuntu

Anois cuirfimid an sruthóir meán ar an ríomhaire agus tógfaimid ár gcéad fheidhmchlár leis.

Ní theastaíonn aon scileanna speisialta chun Mediastremer2 a shuiteáil ar ríomhaire nó ar mheaisín fíorúil a ritheann Ubuntu. Anseo agus thíos, léireoidh an tsiombail "$" an leid bhlaosc chun orduithe a chur isteach. Iad siúd. má fheiceann tú an tsiombail seo sa liostú ag tús na líne, is é seo an líne ina dtaispeántar orduithe a fhorghníomhú sa teirminéal.

Glactar leis go bhfuil rochtain ar an Idirlíon ag do ríomhaire le linn na gcéimeanna san Airteagal seo.

Suiteáil an phacáiste libmediastremer-dev

Seoladh an teirminéal agus clóscríobh an t-ordú:

$ sudo apt-get update

Iarrfar ort pasfhocal chun athruithe a dhéanamh, cuir isteach é agus déanfaidh an bainisteoir pacáiste a bhunachair shonraí a nuashonrú. Ina dhiaidh sin, ní mór duit a reáchtáil:

$ sudo apt-get install libmediastreamer-dev

Déanfar na pacáistí spleáchais riachtanacha agus an leabharlann sruthaithe meán féin a íoslódáil agus a shuiteáil go huathoibríoch.

Beidh thart ar 35 MB ar mhéid iomlán na bpacáistí díluchtaithe spleáchais. Is féidir sonraí faoin bpacáiste suiteáilte a fháil leis an ordú:

$ dpkg -s libmediastreamer-dev

Sampla freagra:

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/

Suiteáil uirlisí forbartha

Suiteáil an tiomsaitheoir C agus na huirlisí a théann leis:

$ sudo apt-get install gcc

Déanaimid an toradh a sheiceáil trí leagan an tiomsaitheora a cheistiú:

$ gcc --version

Ba chóir go mbeadh an freagra rud éigin mar seo:

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.

An Feidhmchlár Trialach a Thógáil agus a Reáchtáil

Cruthaímid i baile fillteán le haghaidh ár dtionscadail teagaisc, a ligean ar glaoch air teagaisc:

$ mkdir ~/mstutorial

Bain úsáid as an eagarthóir téacs is fearr leat agus cruthaigh comhad cláir C ar a dtugtar mstest.c leis an ábhar seo a leanas:

#include "stdio.h"
#include <mediastreamer2/mscommon.h>
int main()
{
  ms_init();
  printf ("Mediastreamer is ready.n");
}

Cuireann sé tús leis an sruthóir meán, priontaí beannacht, agus fágann sé.

Sábháil an comhad agus tiomsaigh an feidhmchlár tástála leis an ordú:

$ gcc mstest.c -o mstest `pkg-config mediastreamer --libs --cflags`

Tabhair faoi deara go bhfuil an líne

`pkg-config mediastreamer --libs --cflags`

faoi ​​iamh i comharthaí athfhriotail, atá suite ar an méarchlár san áit chéanna leis an litir "Ё".

Mura bhfuil earráidí sa chomhad, ansin tar éis tiomsaithe beidh comhad le feiceáil san eolaire mstest. Cuirimid tús leis an gclár:

$ ./mstest

Beidh an toradh mar seo:

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.

Sa liostú seo, feicimid na teachtaireachtaí earráide a thaispeánann leabharlann ALSA, úsáidtear é chun an cárta fuaime a rialú. Creideann forbróirí an streamer meáin iad féin go bhfuil sé seo gnáth. Sa chás seo, aontaímid go drogallach leo.

Anois táimid réidh le bheith ag obair leis an sruthóir meán. Tá an leabharlann sruthaithe meán suiteáilte againn, an uirlis tiomsaithe, agus ag baint úsáide as feidhmchlár trialach, fíoraíodh go bhfuil na huirlisí cumraithe agus go n-éiríonn leis an sruthlóir meán a thosú.

Ar aghaidh Airteagal cruthóimid feidhmchlár a dhéanfaidh próiseáil comhartha fuaime a chur le chéile agus a rith i slabhra de roinnt scagairí.

Foinse: will.com