Zomwe zili m'nkhaniyi zatengedwa kuchokera ku wanga
Mau oyamba
Nkhaniyi ndi chiyambi cha nkhani zambiri zokhudzana ndi kusintha kwa nthawi yeniyeni pogwiritsa ntchito injini ya Mediastreamer2. Panthawi yowonetsera, luso lochepa logwira ntchito mu Linux terminal ndi mapulogalamu mu chinenero cha C adzakhudzidwa.
Mediastreamer2 ndiye injini ya VoIP kuseri kwa pulojekiti yotchuka ya pulogalamu ya voip foni.
Kupitilira muzolemba, kuti zitheke, m'malo mwa mawu akuti Mediastreamer2 tidzagwiritsa ntchito mawu ake aku Russia: "media streamer".
Mbiri ya chilengedwe chake sichidziwika bwino, koma poyang'ana magwero ake, idagwiritsa ntchito laibulaleyi
Pamtima pa media streamer ndi zomangamanga zotchedwa "Data flow" (data flow). Chitsanzo cha zomangamanga zoterezi chikuwonetsedwa mu chithunzi pansipa.
Muzomangamangazi, ndondomeko yopangira deta imatchulidwa osati ndi ndondomeko ya pulogalamu, koma ndi ndondomeko (graph) yogwirizanitsa ntchito zomwe zingathe kukonzedwa mwanjira iliyonse. Ntchitozi zimatchedwa zosefera.
Zomangamangazi zimapangitsa kuti zitheke kukhazikitsa magwiridwe antchito a media ngati seti ya zosefera zolumikizidwa mu chiwembu chokonzekera ndikutumiza kuchuluka kwa RTP pa foni ya VoIP.
Kutha kuphatikizira zosefera m'machitidwe osagwirizana, kupanga kosavuta kwa zosefera zatsopano, kukhazikitsidwa kwa media media ngati laibulale yodziyimira payokha, kulola kuti igwiritsidwe ntchito m'ma projekiti ena. Komanso, polojekitiyi ikhoza kukhala m'munda wa VoIP, chifukwa ndizotheka kuwonjezera zosefera zopangidwa ndi wekha.
Laibulale ya fyuluta yomwe imaperekedwa mwachisawawa ndiyolemera kwambiri ndipo, monga tanenera kale, ikhoza kuwonjezeredwa ndi zosefera zomwe mwapanga. Koma choyamba, tiyeni tifotokoze zosefera zokonzeka zomwe zimabwera ndi media streamer. Nawu mndandanda wawo:
Zosefera phokoso
Kujambula nyimbo ndi kusewera
- Alsa (Linux): MS_ALSA_WRITE, MS_ALSA_READ
- Nyimbo zamtundu wa Android (libmedia): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ
- Ntchito Yamzere Womvera (Mac OS X): MS_AQ_WRITE, MS_AQ_READ
- Audio Unit Service (Mac OS X)
- Zojambula (Linux): MS_ARTS_WRITE, MS_ARTS_READ
- DirectSound (Windows): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
- Wosewerera mafayilo (mafayilo aiwisi/wav/pcap) (Linux): MS_FILE_PLAYER
- Wosewerera mafayilo (mafayilo aiwisi/wav) (Mawindo): MS_WINSND_READ
- Lembani ku fayilo (mafayilo a wav) (Linux): MS_FILE_REC
- Lembani ku fayilo (mafayilo a wav) (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
- Spex: MS_SPEEX_ENC, MS_SPEEX_DEC
Kukonza mawu
- Kusintha tchanelo (mono->sititiriyo, stereo->mono): MS_CHANNEL_ADAPTER
- Msonkhano: MS_CONF
- Wopanga DTMF: MS_DTMF_GEN
- Kuletsa kwa Echo (mawu): MS_SPEEX_EC
- Equalizer: MS_EQUALIZER
- Chosakaniza: MS_MIXER
- Phukusi Loss Compensator (PLC): MS_GENERIC_PLC
- Wotsatsiranso: MS_RESAMPLE
- Chojambulira mamvekedwe: MS_TONE_DETECTOR
- Kuwongolera kuchuluka kwa mawu ndi kuyeza kwa siginecha: MS_VOLUME
Zosefera makanema
Kujambula mavidiyo ndi kusewera
- android kujambula
- kusewera kwa android
- Kujambula kwa AV Foundation (iOS)
- Kusewera kwa AV Foundation (iOS)
- DirectShow Capture (Windows)
- Kusewera kwa DrawDib (Windows)
- Sewero lakunja - Kutumiza kanema pamwamba
- Kusewera kwa GLX (Linux): MS_GLXVIDEO
- Mire - Chithunzi chosunthika chosuntha: MS_MIRE
- Kusewera kwa OpenGL (Mac OS X)
- Kusewera kwa OpenGL ES2 (Android)
- Quicktime Capture (Mac OS X)
- Kusewerera kwa SDL: MS_SDL_OUT
- Zithunzi zosasunthika: MS_STATIC_IMAGE
- Kanema Wa Linux (V4L) kujambula (Linux): MS_V4L
- Kanema Wa Linux 2 (V4L2) kujambula (Linux): MS_V4L2_CAPTURE
- Video4windows (DirectShow) kujambula (Windows)
- Video4windows (DirectShow) kujambula (Windows CE)
- Kanema Wa Windows (vfw) kujambula (Windows)
- Kusewera kwa XV (Linux)
Video encoding/decoding
- H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, Snow: MS_MJPEG_DEC, MS_H263_ENC, MS_H263_DEC
- H.264 (decoder yokha): MS_H264_DEC
- Theora: MS_THEORA_ENC, MS_THEORA_DEC
- VP8: MS_VP8_ENC, MS_VP8_DEC
Kanema processing
- jpeg chithunzi
- Chosinthira mtundu wa pixel: MS_PIX_CONV
- Resizer
- Zosefera zina
- Kusinthana kwa midadada ya data pakati pa ulusi: MS_ITC_SOURCE, MS_ITC_SINK
- Kusonkhanitsa midadada kuchokera pazolowetsa zingapo mpaka kutulutsa kamodzi: MS_JOIN
- Kulandila/kutumiza kwa RTP: MS_RTP_SEND, MS_RTP_RECV
- Kukopera zolowa pazotulutsa zingapo: MS_TEE
- Katundu wotsitsidwa: MS_VOID_SINK
- Tsitsani Chete: MS_VOID_SOURCE
Mapulagini
Zosefera phokoso
- AMR-NB encoder/decoder
- G.729 encoder/decoder
- iLBC encoder/decoder
- SILK encoder/decoder
Zosefera makanema
- H.264 pulogalamu ya encoder
- H.264 V4L2 hardware imathandizira encoder/decoder
Pambuyo pofotokozera mwachidule za fyuluta, dzina la mtunduwo likuwonetsedwa, lomwe limagwiritsidwa ntchito popanga chitsanzo chatsopano cha fyuluta iyi. Zotsatirazi, tiwona mndandandawu.
Kuyika pansi pa Linux Ubuntu
Tsopano ife kukhazikitsa TV streamer pa kompyuta ndi kumanga ntchito yathu yoyamba ndi izo.
Kuyika Mediastremer2 pakompyuta kapena makina enieni omwe akuyendetsa Ubuntu sikufuna luso lapadera. Apa ndi pansipa, chizindikiro "$" chitanthauza chipolopolo cholowetsa malamulo. Iwo. ngati mumndandanda mukuwona chizindikirochi kumayambiriro kwa mzere, ndiye kuti uwu ndi mzere womwe malamulo akuwonetsedwa kuti akutsatiridwa mu terminal.
Zikuganiziridwa kuti panthawi yomwe ili m'nkhaniyi, kompyuta yanu ili ndi intaneti.
Kuyika phukusi la libmediastremer-dev
Tsegulani terminal ndikulemba lamulo:
$ sudo apt-get update
Mudzafunsidwa mawu achinsinsi kuti musinthe, lowetsani ndipo woyang'anira phukusi adzasintha nkhokwe zake. Pambuyo pake, muyenera kuthamanga:
$ sudo apt-get install libmediastreamer-dev
Phukusi loyenera lodalira ndi laibulale ya media streamer yokha idzatsitsidwa ndikuyika.
Kukula konse kwa phukusi lotsitsidwa la deb kudzakhala pafupifupi 35 MB. Tsatanetsatane wa phukusi loyikidwa lingapezeke ndi lamulo:
$ dpkg -s libmediastreamer-dev
Yankho chitsanzo:
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/
Kuyika zida zachitukuko
Ikani C compiler ndi zida zake:
$ sudo apt-get install gcc
Timawona zotsatira zake pofunsa mtundu wa compiler:
$ gcc --version
Yankho liyenera kukhala motere:
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.
Kupanga ndi Kuyendetsa Ntchito Yoyeserera
Timalenga mkati kunyumba foda yamapulojekiti athu ophunzitsira, tiyeni tiyitchule maphunziro:
$ mkdir ~/mstutorial
Gwiritsani ntchito mkonzi wamawu omwe mumakonda ndikupanga fayilo ya pulogalamu ya C yotchedwa mstest.c ndi izi:
#include "stdio.h"
#include <mediastreamer2/mscommon.h>
int main()
{
ms_init();
printf ("Mediastreamer is ready.n");
}
Imayambitsa zowulutsa media, kusindikiza moni, ndikutuluka.
Sungani fayilo ndikulemba ntchito yoyeserera ndi lamulo:
$ gcc mstest.c -o mstest `pkg-config mediastreamer --libs --cflags`
Dziwani kuti mzere
`pkg-config mediastreamer --libs --cflags`
zotsekedwa m'mawu obwereza, omwe ali pa kiyibodi pamalo omwewo ndi chilembo "Π".
Ngati fayilo ilibe zolakwika, ndiye kuti pambuyo pakupanga fayilo idzawonekera m'ndandanda mstest. Timayamba pulogalamu:
$ ./mstest
Zotsatira zake zikhala motere:
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.
Pamndandandawu, tikuwona mauthenga olakwika omwe laibulale ya ALSA imawonetsa, imagwiritsidwa ntchito kuwongolera khadi lamawu. Opanga ma media streamer amakhulupirira kuti izi ndizabwinobwino. Pankhaniyi, timagwirizana nawo mwaufulu.
Tsopano tonse takonzeka kugwira ntchito ndi media streamer. Tayika laibulale ya media streamer, chida chophatikizira, ndikugwiritsa ntchito pulogalamu yoyeserera, tatsimikizira kuti zidazo zakonzedwa ndipo media streamer imayamba bwino.
Ena
Source: www.habr.com