Tha stuth an artaigil air a thoirt bho mo
Ro-ràdh
Is e an artaigil seo toiseach sreath de artaigilean mu ghiollachd mheadhanan fìor-ùine a’ cleachdadh einnsean Mediastreamer2. Bidh an taisbeanadh a’ toirt a-steach na sgilean as lugha a bhith ag obair ann an inneal-crìochnachaidh Linux agus prògramadh ann an cànan C.
Is e Mediastreamer2 an einnsean VoIP air cùl pròiseact fòn voip bathar-bog stòr fosgailte mòr-chòrdte.
Nas fhaide san teacsa, airson goireasachd, an àite an fhacail Mediastreamer2 cleachdaidh sinn an comharradh Ruiseanach aige: “media streamer”.
Chan eil eachdraidh a chruthachadh gu tur soilleir, ach a rèir a chòd stòr, chleachd e an leabharlann roimhe
Aig cridhe sruth nam meadhanan tha ailtireachd ris an canar “Sruth dàta” (sruth dàta). Tha eisimpleir de leithid de dh'ailtireachd air a shealltainn anns an fhigear gu h-ìosal.
Anns an ailtireachd seo, tha an algairim giollachd dàta air a shònrachadh chan ann le còd prògram, ach le sgeama (graf) airson gnìomhan ceangail a ghabhas rèiteachadh ann an òrdugh sam bith. Canar sìoltachain ris na gnìomhan sin.
Tha an ailtireachd seo ga dhèanamh comasach comas giollachd mheadhanan a chuir an gnìomh ann an cruth seata de shìoltachain ceangailte ri sgeama giollachd agus tar-chuir trafaic RTP fòn VoIP.
Tha an comas sìoltachain a chur còmhla ann an sgeamaichean neo-riaghailteach, leasachadh sìmplidh sìoltachain ùra, cur an gnìomh sruthan mheadhanan mar leabharlann neo-eisimeileach air leth, a’ leigeil leis a chleachdadh ann am pròiseactan eile. A bharrachd air an sin, faodaidh am pròiseact a bhith ann an raon VoIP, leis gu bheil e comasach sìoltachain a rinn thu fhèin a chuir ris.
Tha an leabharlann sìoltachain a chaidh a thoirt seachad gu bunaiteach gu math beairteach agus, mar a chaidh ainmeachadh roimhe, faodar a leudachadh le sìoltachain den dealbhadh againn fhèin. Ach an toiseach, bheir sinn cunntas air na sìoltachain deiseil a thig an cois sruth nam meadhanan. Seo an liosta aca:
Filters fuaim
Glacadh claisneachd agus ath-chluich
- Alsa (Linux): MS_ALSA_WRITE, MS_ALSA_READ
- Fuaim dùthchasach Android (libmedia): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ
- Seirbheis Ciudha Fuaim (Mac OS X): MS_AQ_WRITE, MS_AQ_READ
- Seirbheis Aonad Fuaim (Mac OS X)
- Ealain (Linux): MS_ARTS_WRITE, MS_ARTS_READ
- DirectSound (Windows): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
- Cluicheadair faidhle (faidhlichean amh/wav/pcap) (Linux): MS_FILE_PLAYER
- Cluicheadair faidhle (faidhlichean amh / wav) (Windows): MS_WINSND_READ
- Sgrìobh gu faidhle (faidhlichean wav) (Linux): MS_FILE_REC
- Sgrìobh gu faidhle (faidhlichean wav) (Windows): MS_WINSND_WRITE
- Aonad Fuaim 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)
Còdachadh / còdachadh claisneachd
- G.711 a-law: MS_ALAW_DEC, MS_ALAW_ENC
- G.711 µ-lagh: 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 sreathach: MS_L16_ENC, MS_L16_DEC
- Sealladh: MS_SPEEX_ENC, MS_SPEEX_DEC
Giullachd fuaim
- Tionndadh seanail (mono-> stereo, stereo-> mono): MS_CHANNEL_ADAPTER
- Co-labhairt: MS_CONF
- Gineadair DTMF: MS_DTMF_GEN
- Sguir dheth mac-talla (speex): MS_SPEEX_EC
- Cothromaiche: MS_EQUALIZER
- Measgadair: MS_MIXER
- Neach-dìolaidh call pacaid (PLC): MS_GENERIC_PLC
- Ath-shampall: MS_RESAMPLE
- Lorgaire tòna: MS_TONE_DETECTOR
- Smachd tomhas-lìonaidh agus tomhas ìre chomharran: MS_VOLUME
Filters bhidio
Glacadh bhidio agus ath-chluich
- Android a ghlacadh
- ath-chluich android
- Glacadh AV Foundation (iOS)
- Ath-chluich AV Foundation (iOS)
- Glacadh DirectShow (Windows)
- Ath-chluich DrawDib (Windows)
- Ath-chluich bhon taobh a-muigh - A’ cur bhidio chun t-sreath as àirde
- Ath-chluich GLX (Linux): MS_GLXVIDEO
- Mire - Dealbh gluasadach synthetach: MS_MIRE
- Ath-chluich OpenGL (Mac OS X)
- Ath-chluich OpenGL ES2 (Android)
- Glacadh Quicktime (Mac OS X)
- Ath-chluich SDL: MS_SDL_OUT
- Toradh ìomhaigh statach: MS_STATIC_IMAGE
- Glacadh bhidio airson Linux (V4L) (Linux): MS_V4L
- Glacadh bhidio Airson Linux 2 (V4L2) (Linux): MS_V4L2_CAPTURE
- Glacadh bhidio4windows (DirectShow) (Windows)
- Glacadh bhidio4windows (DirectShow) (Windows CE)
- Glacadh bhidio airson Windows (vfw) (Windows)
- Ath-chluich XV (Linux)
Còdachadh / còdachadh bhidio
- H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, Sneachda: MS_MJPEG_DEC, MS_H263_ENC, MS_H263_DEC
- H.264 (dì-chòdachadh a-mhàin): MS_H264_DEC
- Teòiridh: MS_THEORA_ENC, MS_THEORA_DEC
- VP8: MS_VP8_ENC, MS_VP8_DEC
Giullachd bhidio
- Dealbh jpeg saor an asgaidh
- Tionndadh cruth picteil: MS_PIX_CONV
- Resizer
- Filters eile
- Malairt bhlocaichean dàta eadar snàithleanan: MS_ITC_SOURCE, MS_ITC_SINK
- A’ cruinneachadh bhlocaichean dàta bho ioma-chur a-steach gu aon toradh: MS_JOIN
- Faigh / tar-chuir RTP: MS_RTP_SEND, MS_RTP_RECV
- A’ dèanamh lethbhreac de dhàta cuir a-steach gu iomadh toradh: MS_TEE
- Luchd crìochnaichte: MS_VOID_SINK
- Stòr Sàmhchair: MS_VOID_SOURCE
Плагины
Filters fuaim
- AMR-NB encoder / decoder
- G.729 còdaiche/dì-chòdachadh
- iLBC encoder / decoder
- SILK encoder / decoder
Filters bhidio
- H.264 bathar-bog encoder
- Encoder/dì-chòdaidh luathaichte bathar-cruaidh H.264 V4L2
Às deidh tuairisgeul goirid air a’ chriathrag, tha ainm an t-seòrsa air a shealltainn, a thèid a chleachdadh nuair a chruthaicheas tu eisimpleir ùr den chriathrag seo. Anns na leanas, bheir sinn iomradh air an liosta seo.
Stàladh fo Linux Ubuntu
A-nis stàlaidhidh sinn an streapadair mheadhanan air a’ choimpiutair agus togaidh sinn a’ chiad iarrtas againn leis.
Chan fheum stàladh Mediastremer2 air coimpiutair no inneal mas-fhìor a’ ruith Ubuntu sgilean sònraichte sam bith. An-seo agus gu h-ìosal, comharraichidh an samhla "$" an t-slige gu luath airson òrdughan a chuir a-steach. An fheadhainn sin. ma chì thu an samhla seo san liostadh aig toiseach na loidhne, is e seo an loidhne anns a bheilear a’ sealltainn òrdughan a bhith air an cur an gnìomh anns a’ chrìoch.
Thathas den bheachd gu bheil cothrom aig do choimpiutair air an eadar-lìn tro na ceumannan san artaigil seo.
A’ stàladh a’ phacaid libmediastremer-dev
Cuir air bhog an inneal-crìochnachaidh agus sgrìobh an àithne:
$ sudo apt-get update
Thèid iarraidh ort facal-faire airson atharraichean a dhèanamh, cuir a-steach e agus bheir manaidsear a’ phacaid ùrachadh air na stòran-dàta aige. Às deidh sin, feumaidh tu ruith:
$ sudo apt-get install libmediastreamer-dev
Thèid na pasganan eisimeileachd riatanach agus an leabharlann sruthadh mheadhanan fhèin a luchdachadh sìos agus a chuir a-steach gu fèin-ghluasadach.
Bidh meud iomlan nam pasgan deb eisimeileachd a chaidh a luchdachadh sìos timcheall air 35 MB. Gheibhear mion-fhiosrachadh mun phacaid stàlaichte leis an àithne:
$ dpkg -s libmediastreamer-dev
Freagair eisimpleir:
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/
Stàladh innealan leasachaidh
Stàlaich an compiler C agus na h-innealan a tha na chois:
$ sudo apt-get install gcc
Nì sinn sgrùdadh air an toradh le bhith ag iarraidh an dreach compiler:
$ gcc --version
Bu chòir don fhreagairt a bhith rudeigin 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.
A 'togail agus a' ruith an tagraidh deuchainn
Bidh sinn a 'cruthachadh a-steach dachaigh pasgan airson na pròiseactan oideachaidh againn, canaidh sinn e tuigseach:
$ mkdir ~/mstutorial
Cleachd an deasaiche teacsa as fheàrr leat agus cruthaich faidhle prògram C ris an canar mstest.c leis an t-susbaint a leanas:
#include "stdio.h"
#include <mediastreamer2/mscommon.h>
int main()
{
ms_init();
printf ("Mediastreamer is ready.n");
}
Bidh e a’ tòiseachadh sruth nam meadhanan, a’ clò-bhualadh fàilte, agus a’ dol a-mach.
Sàbhail am faidhle agus cuir ri chèile an tagradh deuchainn leis an àithne:
$ gcc mstest.c -o mstest `pkg-config mediastreamer --libs --cflags`
Thoir an aire gu bheil an loidhne
`pkg-config mediastreamer --libs --cflags`
dùinte ann an comharran-luirg, a tha suidhichte air a 'mheur-chlàr san aon àite ris an litir "Ё".
Mura h-eil mearachdan anns an fhaidhle, nochdaidh faidhle san eòlaire às deidh a chuir ri chèile mstest. Tòisichidh sinn am prògram:
$ ./mstest
Bidh 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.
Anns an liostadh seo, chì sinn na teachdaireachdan mearachd a tha leabharlann ALSA a’ taisbeanadh, tha e air a chleachdadh gus smachd a chumail air a’ chairt-fuaim. Tha luchd-leasachaidh sruth nam meadhanan iad fhèin den bheachd gu bheil seo àbhaisteach. Anns a 'chùis seo, tha sinn gu deònach ag aontachadh riutha.
A-nis tha sinn uile deiseil airson a bhith ag obair leis na meadhanan streamer. Tha sinn air leabharlann streamer nam meadhanan a chuir a-steach, an inneal cruinneachaidh, agus a’ cleachdadh tagradh deuchainn, air dearbhadh gu bheil na h-innealan air an rèiteachadh agus gu bheil sruth nam meadhanan a’ tòiseachadh gu soirbheachail.
Air adhart
Source: www.habr.com