Zvinyorwa zvechinyorwa zvakatorwa kubva kwangu
Nhanganyaya
Ichi chinyorwa ndiko kutanga kwenhevedzano yezvinyorwa nezve real-time media processing uchishandisa iyo Mediastreamer2 injini. Mharidzo ichabatanidza hunyanzvi hunyanzvi hwekushanda muLinux terminal uye chirongwa mumutauro weC.
Mediastreamer2 ndiyo injini yeVoIP kuseri kweiyo yakakurumbira yakavhurika sosi software voIP foni chirongwa.
Kuwedzera mune zvinyorwa, kuti zvive nyore, panzvimbo yezwi Mediastreamer2 tichashandisa chinyorwa chayo cheRussia: "media streamer".
Nhoroondo yekusikwa kwayo haina kujeka zvachose, asi tichitarisa nekodhesi yayo, yakamboshandisa raibhurari
Pamwoyo wemedia streamer chivakwa chinonzi "Data flow" (data flow). Muenzaniso wezvivakwa zvakadaro unoratidzwa mumufananidzo uri pasi apa.
Muchivakwa ichi, data processing algorithm inotsanangurwa kwete nekodhi yepurogiramu, asi nechirongwa (girafu) chekubatanidza mabasa anogona kurongwa mune chero hurongwa. Mabasa aya anonzi mafirita.
Ichi chivakwa chinoita kuti zvikwanise kuita iyo midhiya yekugadzirisa mashandiro muchimiro cheseti yemafirita akabatana neVoIP foni RTP traffic process uye transmission scheme.
Iko kugona kusanganisa mafirita muzvirongwa zvekupokana, kusimudzira kuri nyore kwemafirita matsva, kuitiswa kweiyo media streamer seyakazvimiririra raibhurari yakaparadzana, bvumira kuti ishandiswe mune mamwe mapurojekiti. Uyezve, chirongwa ichi chinogona kunge chiri mumunda weVoIP, sezvo zvichikwanisika kuwedzera mafirita akagadzirwa wega.
Raibhurari yekusefa inopihwa nekusarudzika yakapfuma uye, sezvatotaurwa, inogona kuwedzerwa nemafirita edhizaini yedu. Asi chekutanga, ngatitsanangure mafirita akagadzirira anouya nemedia streamer. Heino rondedzero yavo:
Masefa enzwi
Audio kutora uye kutamba
- Alsa (Linux): MS_ALSA_WRITE, MS_ALSA_READ
- Android native ruzha (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 (Windows): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
- Faira mutambi (mbishi/wav/pcap mafaera) (Linux): MS_FILE_PLAYER
- Faira inoridza (mbishi/wav mafaera) (Windows): MS_WINSND_READ
- Nyora kufaira (wav mafaira) (Linux): MS_FILE_REC
- Nyora kufaira (wav mafaira) (Windows): MS_WINSND_WRITE
- Mac Audio Unit (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)
Audio encoding/decoding
- G.711 a-law: MS_ALAW_DEC, MS_ALAW_ENC
- G.711 Β΅-law: 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
- Linear PCM: MS_L16_ENC, MS_L16_DEC
- Kutaura: MS_SPEEX_ENC, MS_SPEEX_DEC
Sound processing
- Kushandurwa kwechiteshi (mono->stereo, stereo->mono): MS_CHANNEL_ADAPTER
- Musangano: MS_CONF
- DTMF jenareta: MS_DTMF_GEN
- Echo kukanzura (kutaura): MS_SPEEX_EC
- Kuenzana: MS_EQUALIZER
- Musanganisi: MS_MIXER
- Packet Loss Compensator (PLC): MS_GENERIC_PLC
- Mutevedzeri: MS_RESAMPLE
- Toni detector: MS_TONE_DETECTOR
- Kudzora vhoriyamu uye kuyerwa kwechiyero chechiratidzo: MS_VOLUME
Vhidhiyo mafirita
Vhidhiyo kutora uye kutamba zvakare
- android kutora
- android playback
- AV Foundation kutora (iOS)
- AV Foundation yekutamba (iOS)
- DirectShow Capture (Windows)
- DrawDib playback (Windows)
- Kutamba kwekunze - Kutumira vhidhiyo kune yepamusoro layer
- GLX yekutamba (Linux): MS_GLXVIDEO
- Mire - Synthetic inofamba mufananidzo: MS_MIRE
- OpenGL playback (Mac OS X)
- OpenGL ES2 kutamba (Android)
- Quicktime Capture (Mac OS X)
- Kutamba kweSDL: MS_SDL_OUT
- Mufananidzo wakamira wakabuda: MS_STATIC_IMAGE
- Vhidhiyo YeLinux (V4L) tora (Linux): MS_V4L
- Vhidhiyo YeLinux 2 (V4L2) tora (Linux): MS_V4L2_CAPTURE
- Vhidhiyo4windows (DirectShow) kutora (Windows)
- Vhidhiyo4windows (DirectShow) kutora (Windows CE)
- Vhidhiyo YeWindows (vfw) tora (Windows)
- XV kutamba (Linux)
Vhidhiyo encoding/decoding
- H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, Snow: MS_MJPEG_DEC, MS_H263_ENC, MS_H263_DEC
- H.264 (decoder chete): MS_H264_DEC
- Theora: MS_THEORA_ENC, MS_THEORA_DEC
- VP8: MS_VP8_ENC, MS_VP8_DEC
Video processing
- jpeg mufananidzo
- Pixel fomati inoshandura: MS_PIX_CONV
- Resizer
- Mamwe mafirita
- Kuchinjana kwe data blocks pakati pe threads: MS_ITC_SOURCE, MS_ITC_SINK
- Kuunganidza mabhuraki edata kubva kune akawanda mapopu kune imwechete inobuda: MS_JOIN
- RTP gamuchira/kutumira: MS_RTP_SEND, MS_RTP_RECV
- Kukopa data rekuisa kune akawanda akabuda: MS_TEE
- Kuremerwa mutoro: MS_VOID_SINK
- Kunyarara Kwakabva: MS_VOID_SOURCE
Mapulagi
Masefa enzwi
- AMR-NB encoder/decoder
- G.729 encoder/decoder
- iLBC encoder/decoder
- SILK encoder/decoder
Vhidhiyo mafirita
- H.264 software encoder
- H.264 V4L2 hardware yakamhanyisa encoder/decoder
Mushure mekutsanangurwa kupfupi kwesefa, zita rerudzi rinoratidzwa, rinoshandiswa pakugadzira chiitiko chitsva chesefa iyi. Mune zvinotevera, isu tichanongedzera kune iyi runyorwa.
Kuiswa pasi peLinux Ubuntu
Iye zvino tichaisa iyo media streamer pakombuta uye tovaka yedu yekutanga application nayo.
Kuisa Mediastremer2 pakombuta kana muchina chaiwo unoshanda Ubuntu haudi chero hunyanzvi. Pano uye pazasi, chiratidzo "$" chinoreva iyo shell yekumhanyisa yekupinda mirairo. Avo. kana mune rondedzero ukaona chiratidzo ichi pakutanga kwemutsara, saka uyu ndiwo mutsara umo mirairo inoratidzwa kuti itevedzwe muterminal.
Zvinofungidzirwa kuti panguva yematanho ari muchinyorwa chino, komputa yako inokwanisa kuwana Internet.
Kuisa iyo libmediastremer-dev package
Vhura iyo terminal uye nyora murairo:
$ sudo apt-get update
Iwe uchakumbirwa password kuti uchinje, pinda iyo uye mutariri wepakeji achavandudza dhatabhesi rayo. Pashure paizvozvo, unofanira kumhanya:
$ sudo apt-get install libmediastreamer-dev
Iyo inodiwa yekutsamira mapakeji uye iyo media media streamer raibhurari pachayo inozotorwa otomatiki nekuiswa.
Saizi yese yeakadhawunirodha dependency deb mapakeji anokwana 35 MB. Ruzivo rwepakeji yakaiswa inogona kuwanikwa nemurairo:
$ dpkg -s libmediastreamer-dev
Mhinduro muenzaniso:
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/
Kuisa maturusi ebudiriro
Isa iyo C compiler uye maturusi ayo anoperekedza:
$ sudo apt-get install gcc
Isu tinotarisa mhedzisiro nekubvunza iyo compiler vhezheni:
$ gcc --version
Mhinduro yacho inofanira kuva seizvi:
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.
Kugadzira uye kumhanyisa Chikumbiro cheKuedza
Isu tinogadzira mukati musha folda yemapurojekiti edu edzidziso, ngatiidaidze mstutorial:
$ mkdir ~/mstutorial
Shandisa yako yaunofarira mavara edhita uye gadzira C chirongwa faira inonzi mstest.c nezvinotevera zvirimo:
#include "stdio.h"
#include <mediastreamer2/mscommon.h>
int main()
{
ms_init();
printf ("Mediastreamer is ready.n");
}
Inotangisa media streamer, inodhinda kwaziso, uye kubuda.
Sevha iyo faira uye nyora bvunzo application nemurairo:
$ gcc mstest.c -o mstest `pkg-config mediastreamer --libs --cflags`
Cherechedza kuti mutsetse
`pkg-config mediastreamer --libs --cflags`
akavharirwa mune quotation mamaki, ayo ari pane kiibhodhi munzvimbo imwechete netsamba "Π".
Kana iyo faira isina zvikanganiso, ipapo mushure mekubatanidza faira ichaonekwa mudhairekitori mstest. Tinotanga purogiramu:
$ ./mstest
Mhedzisiro ichava seizvi:
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.
Muchirongwa ichi, tinoona mameseji ekukanganisa anoratidzwa neraibhurari yeALSA, inoshandiswa kudzora kadhi rekurira. Vagadziri vemedia streamer ivo pachavo vanotenda kuti izvi zvakajairika. Panyaya iyi, tinobvumirana navo tichizengurira.
Iye zvino isu tese tagadzirira kushanda nemedia streamer. Isu takaisa raibhurari yemedia streamer, chishandiso chekubatanidza, uye nekushandisa muyedzo application, takaona kuti maturusi akagadziridzwa uye media media inotangisa zvinobudirira.
Next
Source: www.habr.com