د مقالې مواد زما څخه اخیستل شوي دي
پېژندنه
دا مقاله د Mediastreamer2 انجن په کارولو سره د ریښتیني وخت میډیا پروسس کولو په اړه د مقالو لړۍ پیل دی. پریزنټشن کې به د لینکس ټرمینل کې د کار کولو لږترلږه مهارتونه او په C ژبه کې برنامه شامل وي.
Mediastreamer2 د مشهور خلاصې سرچینې سافټویر voip تلیفون پروژې شاته VoIP انجن دی.
نور په متن کې، د اسانتیا لپاره، د Mediastreamer2 کلمې پر ځای موږ به د هغې روسی نښه وکاروو: "میډیا سټیمر".
د دې د جوړولو تاریخ په بشپړه توګه روښانه نه دی، مګر د دې سرچینې کوډ لخوا قضاوت کول، دا پخوا کتابتون کارولی و.
د میډیا سټیمر په زړه کې د "ډیټا جریان" (ډیټا جریان) په نوم یو معمار دی. د داسې جوړښت یوه بیلګه په لاندې انځور کې ښودل شوي.
پدې جوړښت کې ، د ډیټا پروسس کولو الګوریتم د برنامې کوډ لخوا نه مشخص شوی ، مګر د وصل وصل کولو لپاره د سکیم (ګراف) لخوا مشخص شوی چې په هر ترتیب کې تنظیم کیدی شي. دا افعال د فلټر په نوم یادیږي.
دا جوړښت د 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