Explorans machinam Mediastreamer2 VoIP. Pars I

Materia articuli sumitur ex my rhoncus channel.

introduction

Articulus hic est initium seriei instrumentorum instrumentorum realium temporis processui instrumentorum instrumentorum Mediastreamer2 utens. Praesentatio minimas artes operandi in Linux terminatio et programmandi in lingua C erit.

Mediastreamer2 est machina VoIP post programmatum programmatum popularis programmatis voip telephonicii. phone. In Linphone Mediastreamer2 munera omnia instrumenta ad sonum et video pertinentia. Singula indicem notarum machinarum in hac pagina Mediastreamer videri possunt. Fons codicis hic est: GitLab.

Praeterea in textu, pro opportunitate, loco vocis Mediastreamer2 utemur notatione Russica: "media streamer".

Historia suae creationis non plane clara est, sed ex suo fonte codice iudicans, ea antea bibliotheca usus est glibenclamidumquae quasi innuit longinquam necessitudinem cum GStreamer. Prae quibus instrumentis streaming plus ponderis spectat. Prima versio Linphone in 2001 apparuit, unde in momento instrumentorum streamer per annos fere XX existit et crescit.

In medio mediorum instrumentorum conglutinatio architectura est quae "Data fluunt" (notitia fluunt). Exemplum talis architecturae in figura infra ostenditur.

Explorans machinam Mediastreamer2 VoIP. Pars I

In hac architectura notitia processus algorithmus specificatur non per codicem programmatis, sed per schema (graphum) pro functionibus connectendis quae quoquo ordine disponi possunt. Hae functiones Filtra dicuntur.

Haec architectura efficit ut instrumentorum processus functionis efficiatur in forma copiae eliquarum coniunctarum cum VoIP telephonico RTP processus negotiationis ac schema transmissionis.

Facultas filtras componendi in machinas arbitrarias, simplicem progressionem novorum filorum, exsequendam instrumentorum conglutinationem tamquam bibliothecam separatam independentem, in aliis inceptis adhiberi sinit. Etiam consilium in agro VoIP esse potest, cum per se factas filtras addere potest.

Colum bibliotheca suppleta per defaltam satis dives est et, ut iam dictum est, eliquaminibus nostri consilii prorogari potest. Sed primum describimus filamenta parata facta quae cum instrumentis streamer venientibus. Eorum hic index est:

Sonus Filtra

Audio captis et playback

  • Alsa (Linux): MS_ALSA_WRITE, MS_ALSA_READ
  • Android sonus indigena (libmedia): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ
  • Audio Queue Service (Mac OS X): MS_AQ_WRITE, MS_AQ_READ
  • Audio Unit Service (Mac OS X)
  • Arts (Linux): MS_ARTS_WRITE, MS_ARTS_READ
  • DirectSound (Fenestra): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
  • Scapus tabulariorum (rudis/wav/pcap lima) (Linux): MS_FILE_PLAYER
  • Tabellae scaenici (limae rudis/magnae) (Fenestrae): MS_WINSND_READ
  • Scribere cum tabella (lima fasciculi) (Linux): MS_FILE_REC
  • Scribere ad fasciculum (lima fasciculi) (Fenestra): MS_WINSND_WRITE
  • Mac Audio Unit (Mac OS X)
  • MME (Fenestra)
  • OSS (Linux): MS_OSS_WRITE, MS_OSS_READ
  • PortAudio (Mac OS X)
  • PulseAudio (Linux): MS_PULSE_WRITE, MS_PULSE_READ
  • Windows Sound (Windows)

Audio modum translitterandi / decoding

  • G.711 lege: MS_ALAW_DEC, MS_ALAW_ENC
  • G.711 Β΅-ius: 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
  • Linearibus PCM: MS_L16_ENC, MS_L16_DEC
  • Speex: MS_SPEEX_ENC, MS_SPEEX_DEC

Sonus processus

  • Channel conversio (mono->stereo, stereo->mono): MS_CHANNEL_ADAPTER
  • Colloquium: MS_CONF
  • DTMF Generator: MS_DTMF_GEN
  • Tabulae novae (speex): MS_SPEEX_EC
  • Aequator: MS_EQUALIZER
  • Mixer: MS_MIXER
  • Fasciculus Damni Compensatoris (PLC): MS_GENERIC_PLC
  • Resampler: MS_RESAMPLE
  • Tonus detector: MS_TONE_DETECTOR
  • Volumen imperium et mensurae campestri insignem: MS_VOLUME

Vide Filtra

Video captis et playback

  • Android captis
  • Android playback
  • AV Foundation captis (iOS)
  • AV Foundation playback (iOS)
  • DirectShow Capite (Fenestra)
  • DrawDib playback (Fenestra)
  • Externi playback - Mittens video in vertice layer
  • GLX playback (Linux): MS_GLXVIDEO
  • Mire - Synthetica imago movens: MS_MIRE
  • OpenGL playback (Mac OS X)
  • OpenGL ES2 playback (Android)
  • Quicktime Excipio (Mac OS X)
  • SDL playback: MS_SDL_OUT
  • Static imago output: MS_STATIC_IMAGE
  • Video For Linux (V4L) captas (Linux): MS_V4L
  • Video For Linux 2 (V4L2) captas (Linux): MS_V4L2_CAPTURE
  • Video4windows (DirectShow) captis (Fenestra)
  • Video4windows (DirectShow) captis (Fenestra CE)
  • Video For Windows (vfw) captis (Fenestra)
  • XV playback (Linux)

Video modum translitterandi / decoding

  • H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, Nix: MS_MJPEG_DEC, MS_H263_ENC, MS_H263_DEC
  • H.264 (decoder only): MS_H264_DEC
  • Theora: MS_THEORA_ENC, MS_THEORA_DEC
  • VP8: MS_VP8_ENC, MS_VP8_DEC

Video processui

  • jpeg snapshot
  • Forma pixel convertens: MS_PIX_CONV
  • Resiser
  • Filtra alia
  • Commutatio notitiarum caudices inter relatorum: MS_ITC_SOURCE, MS_ITC_SINK
  • Stipes notitiarum colligendis ex pluribus initibus ad unum output: MS_JOIN
  • RTP accipimus / transmittunt: MS_RTP_SEND, MS_RTP_RECV
  • Effingo input data multis outputs: MS_TEE
  • Onus terminatum: MS_VOID_SINK
  • Silentium Source: MS_VOID_SOURCE

Plugins

Sonus Filtra

  • AMR-NB encoder/decoder
  • G.729 encoder/decoder
  • iLBC encoder/decoder
  • SERICUS encoder/decoder

    Vide Filtra

  • H.264 software encoder
  • H.264 V4L2 hardware acceleratus encoder/decoder

Post brevem descriptionem colum, nomen generis ostenditur, quo usus est cum novam huius colum instanciam creando. In sequentibus, hoc indice referemus.

Installation under Linux Ubuntu

Nunc media in computatrum streamer instituemus et primam applicationem cum ea aedificabimus.

Mediastremer2 installare in machina computatrale vel virtuale currendo Ubuntu nullas artes speciales requirit. Hic et infra, symbolum "$" designabit testam promptam ad intrandum imperata. Illae. si videas hoc signum in enumeratione in principio lineae, haec est linea in qua monstrantur facienda in termino.

Ponitur per gradus in hoc articulo, computatrum tuum ad Interreti aditum habere.

Libmediastremer installing in sarcina-dev

Emitte terminum et typus imperium;

$ sudo apt-get update

Rogaberis tesseram mutandi mutandi, intra eam et in sarcina procurator suum databases renovabit. deinde currere debes;

$ sudo apt-get install libmediastreamer-dev

Fasciculi dependentiae necessariae et bibliotheca media streamer ipsa sponte recepta et inaugurata erunt.

Tota magnitudo fasciculorum dependens dependens ex receptaculo circiter 35 MB erit. Singula de involucro inaugurato inveniri possunt cum imperio:

$ dpkg -s libmediastreamer-dev

Exemplum responde:

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/

Installing evolutionis instrumenta

Instrue C compilator eiusque instrumenta comitantia:

$ sudo apt-get install gcc

Reprehendimus eventum per versionem scribentem interrogando:

$ gcc --version

Respondeatur aliquid simile;

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.

Aedificare ac Cursor Tentatio Application

Nos creare in Domus folder pro nostris inceptis consequat, invocemus mstutorial:

$ mkdir ~/mstutorial

Utere vestri ventus text editor et creare C programma lima vocatum mstest.c cum sequenti contenti:

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

Mediam streaming initializet, salutationem imprimit, exitusque.

Servo lima et applicatione cum imperio test ordinare:

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

Nota quod linea

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

notis virgulis inclusit, quae in claviaturae eodem loco ac littera "Ё" sita sunt.

Si tabella errores non continet, tabella post compilationem in indicem apparebit mstest. Progressio incipimus:

$ ./mstest

Ita fiet:

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.

In hoc indice videmus errorem nuntios quos bibliotheca ALSA ostentat, sonum chartae regere adhibetur. Tincimenta instrumentorum communicationis socialis hoc normalem esse credunt. In quo nobis iisque assentior.

Nunc omnes destinati sumus ad operandum cum instrumentis streamer. Mediam bibliothecam streaming, instrumentorum compilationem instituimus et adhibita probatione applicationis, comprobavimus instrumenta configurari et instrumenta communicationis socialis feliciter initializare.

deinde articulus applicationem creabimus, quae in catena plurium filorum conveniant et discurrant processus auditionis signum.

Source: www.habr.com