د Mediastreamer2 VoIP انجن سپړنه. 1 برخه

د مقالې مواد زما څخه اخیستل شوي دي زین چینل.

پېژندنه

دا مقاله د Mediastreamer2 انجن په کارولو سره د ریښتیني وخت میډیا پروسس کولو په اړه د مقالو لړۍ پیل دی. پریزنټشن کې به د لینکس ټرمینل کې د کار کولو لږترلږه مهارتونه او په C ژبه کې برنامه شامل وي.

Mediastreamer2 د مشهور خلاصې سرچینې سافټویر voip تلیفون پروژې شاته VoIP انجن دی. لینفون. په لینفون Mediastreamer2 کې د غږ او ویډیو پورې اړوند ټولې دندې پلي کوي. د انجن ب featuresو تفصيلي لیست پدې میډیاسټریمر پا pageه کې لیدل کیدی شي. د سرچینې کوډ دلته دی: ګیتاباب.

نور په متن کې، د اسانتیا لپاره، د Mediastreamer2 کلمې پر ځای موږ به د هغې روسی نښه وکاروو: "میډیا سټیمر".

د دې د جوړولو تاریخ په بشپړه توګه روښانه نه دی، مګر د دې سرچینې کوډ لخوا قضاوت کول، دا پخوا کتابتون کارولی و. ګلیب، کوم چې، لکه څنګه چې وو، د احتمالي لرې اړیکو سره اشاره کوي GStreamer. د دې په پرتله چې د میډیا سټیمر ډیر سپک ښکاري. د لینفون لومړۍ نسخه په 2001 کې راښکاره شوه، نو اوس مهال د میډیا سټیمر شتون لري او د نږدې 20 کلونو لپاره وده کوي.

د میډیا سټیمر په زړه کې د "ډیټا جریان" (ډیټا جریان) په نوم یو معمار دی. د داسې جوړښت یوه بیلګه په لاندې انځور کې ښودل شوي.

د Mediastreamer2 VoIP انجن سپړنه. 1 برخه

پدې جوړښت کې ، د ډیټا پروسس کولو الګوریتم د برنامې کوډ لخوا نه مشخص شوی ، مګر د وصل وصل کولو لپاره د سکیم (ګراف) لخوا مشخص شوی چې په هر ترتیب کې تنظیم کیدی شي. دا افعال د فلټر په نوم یادیږي.

دا جوړښت د VoIP تلیفون RTP ترافیک پروسس کولو او لیږد سکیم سره وصل شوي فلټرونو سیټ په توګه د میډیا پروسس کولو فعالیت پلي کول امکان لري.

په خپل سري سکیمونو کې د فلټرونو یوځای کولو وړتیا، د نوي فلټرونو ساده پراختیا، د یو خپلواک جلا کتابتون په توګه د میډیا سټیمر پلي کول، دا اجازه ورکوي چې په نورو پروژو کې وکارول شي. سربیره پردې ، پروژه د VoIP په ساحه کې کیدی شي ، ځکه چې دا ممکنه ده چې پخپله جوړ شوي فلټرونه اضافه کړئ.

د ډیفالټ لخوا چمتو شوي فلټر کتابتون خورا بډایه دی او لکه څنګه چې دمخه یادونه وشوه ، زموږ د خپل ډیزاین فلټرونو سره غزیدلی شي. مګر لومړی ، راځئ چې چمتو شوي فلټرونه تشریح کړو چې د میډیا سټیمر سره راځي. دلته د دوی لیست دی:

د غږ فلټرونه

آډیو نیول او پلے بیک

  • السا (لینکس): MS_ALSA_WRITE، MS_ALSA_READ
  • د Android اصلي غږ (libmedia): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ
  • د آډیو قطار خدمت (Mac OS X): MS_AQ_WRITE, MS_AQ_READ
  • د آډیو واحد خدمت (Mac OS X)
  • هنرونه (لینکس): MS_ARTS_WRITE، MS_ARTS_READ
  • مستقیم غږ (وینډوز): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
  • د فایل پلیر (raw/wav/pcap فایلونه) (لینکس): MS_FILE_PLAYER
  • د فایل پلیر (را/wav فایلونه) (وینډوز): MS_WINSND_READ
  • فایل ته ولیکئ (wav فایلونه) (لینکس): MS_FILE_REC
  • فایل ته ولیکئ (wav فایلونه) (وینډوز): MS_WINSND_WRITE
  • د ماک آډیو واحد (Mac OS X)
  • MME (وینډوز)
  • OSS (لینکس): MS_OSS_WRITE، MS_OSS_READ
  • PortAudio (Mac OS X)
  • پلس آډیو (لینکس): MS_PULSE_WRITE، MS_PULSE_READ
  • د وینډوز غږ (وینډوز)

د آډیو کوډ کول / کوډ کول

  • G.711 a-قانون: MS_ALAW_DEC, MS_ALAW_ENC
  • G.711 µ-قانون: 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: MS_L16_ENC, MS_L16_DEC
  • سپیک: MS_SPEEX_ENC، MS_SPEEX_DEC

د غږ پروسس کول

  • د چینل تبادله (مونو-> سټیریو، سټیریو-> مونو): MS_CHANNEL_ADAPTER
  • کنفرانس: MS_CONF
  • د DTMF جنریټر: MS_DTMF_GEN
  • د اکو منسوخ کول (سپیکس): MS_SPEEX_EC
  • مساوي کوونکی: MS_EQUALIZER
  • مکسر: MS_MIXER
  • د پیکټ ضایع کونکی (PLC): MS_GENERIC_PLC
  • بیا نمونه کونکی: MS_RESAMPLE
  • د ټون کشف کونکی: MS_TONE_DETECTOR
  • د حجم کنټرول او سیګنال کچه اندازه کول: MS_VOLUME

د ویډیو فلټرونه

ویډیو نیول او پلے بیک

  • د اندروید نیول
  • د اندروید پلې بیک
  • د AV بنسټ نیول (iOS)
  • د AV بنسټ پلے بیک (iOS)
  • د مستقیم شو نیول (وینډوز)
  • DrawDib پلے بیک (وینډوز)
  • بهرنۍ پلې بیک - پورتنۍ پرت ​​ته ویډیو لیږل
  • GLX پلے بیک (لینکس): MS_GLXVIDEO
  • Mire - مصنوعي خوځنده انځور: MS_MIRE
  • د OpenGL پلې بیک (Mac OS X)
  • OpenGL ES2 پلے بیک (Android)
  • د چټک وخت نیول (Mac OS X)
  • SDL پلی بیک: MS_SDL_OUT
  • د جامد عکس محصول: MS_STATIC_IMAGE
  • د لینکس لپاره ویډیو (V4L) نیول (لینکس): MS_V4L
  • د لینکس 2 (V4L2) نیول (لینکس) لپاره ویډیو: MS_V4L2_CAPTURE
  • ویډیو 4 وینډوز (مستقیم شو) نیول (وینډوز)
  • ویډیو 4 وینډوز (مستقیم شو) نیول (وینډوز سی ای)
  • د وینډوز لپاره ویډیو (vfw) نیول (وینډوز)
  • XV پلے بیک (لینکس)

د ویډیو کوډ کول / کوډ کول

  • H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, واوره: MS_MJPEG_DEC, MS_H263_ENC, MS_H263_DEC
  • H.264 (یوازې کوډ کوونکی): MS_H264_DEC
  • تیورا: MS_THIORA_ENC، MS_THIORA_DEC
  • VP8: MS_VP8_ENC، MS_VP8_DEC

د ویډیو پروسس کول

  • jpeg سنیپ شاټ
  • د پکسل فارمیټ کنورټر: MS_PIX_CONV
  • ریسائزر
  • نور فلټرونه
  • د تارونو تر مینځ د ډیټا بلاکونو تبادله: MS_ITC_SOURCE, MS_ITC_SINK
  • د ډیټا بلاکس راټولول د ډیری آخذونو څخه یو واحد محصول ته: MS_JOIN
  • RTP ترلاسه کول/لیږدول: MS_RTP_SEND, MS_RTP_RECV
  • ډیری محصولاتو ته د ان پټ ډیټا کاپي کول: MS_TEE
  • ختم شوی بار: MS_VOID_SINK
  • د خاموشۍ سرچینه: MS_VOID_SOURCE

پلگ ان

د غږ فلټرونه

  • AMR-NB کوډ کونکی/کوډونکی
  • G.729 انکوډر/کوډر
  • iLBC کوډ کوونکی/کوډر
  • SILK کوډ کوونکی/کوډونکی

    د ویډیو فلټرونه

  • H.264 سافټویر انکوډر
  • H.264 V4L2 هارډویر ګړندی کوډر/کوډر

د فلټر د لنډ وضاحت وروسته، د ډول نوم ښودل کیږي، کوم چې د دې فلټر د نوي مثال په جوړولو کې کارول کیږي. په لاندې څه کې، موږ به دې لیست ته مراجعه وکړو.

د لینکس اوبنټو لاندې نصب کول

اوس به موږ په کمپیوټر کې د میډیا سټیمر نصب کړو او د دې سره به زموږ لومړی غوښتنلیک جوړ کړو.

د اوبنټو چلولو په کمپیوټر یا مجازی ماشین کې د Mediastremer2 نصب کول کوم ځانګړي مهارتونو ته اړتیا نلري. دلته او لاندې، سمبول "$" به د امرونو د ننوتلو لپاره د شیل پرامپټ په ګوته کړي. هغوی. که په لیست کې تاسو دا سمبول د کرښې په پیل کې وګورئ، نو دا هغه کرښه ده چې په ټرمینل کې د اجرا کولو لپاره کمانډونه ښودل شوي.

داسې انګیرل کیږي چې پدې مقاله کې د ګامونو په ترڅ کې، ستاسو کمپیوټر انټرنیټ ته لاسرسی لري.

د libmediastremer-dev بسته نصب کول

ټرمینل لانچ کړئ او کمانډ ټایپ کړئ:

$ sudo apt-get update

تاسو به د بدلونونو لپاره د پټنوم غوښتنه وکړئ، دا دننه کړئ او د بسته بندي مدیر به خپل ډیټابیس تازه کړي. له هغې وروسته، تاسو باید وګرځئ:

$ sudo apt-get install libmediastreamer-dev

د اړین انحصار کڅوړې او د میډیا سټیمر کتابتون به پخپله په اوتومات ډول ډاونلوډ او نصب شي.

د ډاونلوډ شوي انحصار ډیب کڅوړو ټوله اندازه به نږدې 35 MB وي. د نصب شوي کڅوړې په اړه توضیحات د کمانډ سره موندل کیدی شي:

$ dpkg -s libmediastreamer-dev

ځواب بېلګه:

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/

د پرمختیایي وسایلو نصب کول

د C کمپیلر او د هغې سره وسیلې نصب کړئ:

$ sudo apt-get install gcc

موږ د تالیف کونکي نسخې پوښتنې کولو سره پایله ګورو:

$ gcc --version

ځواب باید داسې وي:

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.

د آزموینې غوښتنلیک جوړول او چلول

موږ دننه جوړوو کور زموږ د ښوونې پروژې لپاره فولډر، راځئ چې دا ووایو mstutorial:

$ mkdir ~/mstutorial

خپل د خوښې متن ایډیټر وکاروئ او د C برنامې فایل رامینځته کړئ چې نوم یې دی mstest.c د لاندې منځپانګې سره:

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

دا د میډیا سټریمر پیل کوي ، سلامونه چاپوي ، او وځي.

فایل خوندي کړئ او د کمانډ سره د ازموینې غوښتنلیک تالیف کړئ:

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

په یاد ولرئ چې کرښه

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

د حوالې نښانو کې تړل شوي، کوم چې په کیبورډ کې د "Ё" لیک په ورته ځای کې موقعیت لري.

که په فایل کې تېروتنې نه وي، نو د تالیف وروسته به یوه فایل په ډایرکټر کې ښکاره شي mstest. موږ پروګرام پیل کوو:

$ ./mstest

پایله به یې داسې وي:

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.

پدې لیست کې ، موږ د خطا پیغامونه ګورو چې د ALSA کتابتون ښیې ، دا د غږ کارت کنټرول لپاره کارول کیږي. پخپله د میډیا سټیمر پراختیا کونکي پدې باور دي چې دا عادي خبره ده. په دې حالت کې، موږ په زړه پورې له دوی سره موافق یو.

اوس موږ ټول د میډیا سټیمر سره کار کولو ته چمتو یو. موږ د میډیا سټیمر کتابتون نصب کړی، د تالیف کولو وسیله، او د آزموینې غوښتنلیک په کارولو سره، دا تایید کړه چې وسیلې ترتیب شوي او د میډیا سټیمر په بریالیتوب سره پیل کیږي.

بل مقالې موږ به یو غوښتنلیک جوړ کړو چې د څو فلټرونو په سلسله کې به د آډیو سیګنال پروسس راټول او پرمخ بوځي.

سرچینه: www.habr.com