ื—ืงืจ ืžื ื•ืข ื”-VoIP Mediastreamer2. ื—ืœืง 1

ื”ื—ื•ืžืจ ืฉืœ ื”ืžืืžืจ ืœืงื•ื— ืžืžื ื™ ืขืจื•ืฅ ื–ืŸ.

ืžื‘ื•ื

ืžืืžืจ ื–ื” ื”ื•ื ืชื—ื™ืœืชื” ืฉืœ ืกื“ืจืช ืžืืžืจื™ื ืขืœ ืขื™ื‘ื•ื“ ืžื“ื™ื” ื‘ื–ืžืŸ ืืžืช ื‘ืืžืฆืขื•ืช ืžื ื•ืข Mediastreamer2. ื”ืžืฆื’ืช ืชื›ืœื•ืœ ืืช ื”ื›ื™ืฉื•ืจื™ื ื”ืžื™ื ื™ืžืœื™ื™ื ืฉืœ ืขื‘ื•ื“ื” ื‘ืžืกื•ืฃ ืœื™ื ื•ืงืก ื•ืชื›ื ื•ืช ื‘ืฉืคืช C.

Mediastreamer2 ื”ื•ื ืžื ื•ืข ื”-VoIP ืžืื—ื•ืจื™ ืคืจื•ื™ืงื˜ ื”-VOIP ื”ืคื•ืคื•ืœืจื™ ืฉืœ ืชื•ื›ื ืช ื”-voip. ืœื™ื ืคื•ื ื™ื. ื‘-Linphone Mediastreamer2 ืžื™ื™ืฉื ืืช ื›ืœ ื”ืคื•ื ืงืฆื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืกืื•ื ื“ ื•ื•ื™ื“ืื•. ืจืฉื™ืžื” ืžืคื•ืจื˜ืช ืฉืœ ืชื›ื•ื ื•ืช ื”ืžื ื•ืข ื ื™ืชืŸ ืœืจืื•ืช ื‘ื“ืฃ Mediastreamer ื–ื”. ืงื•ื“ ื”ืžืงื•ืจ ื ืžืฆื ื›ืืŸ: GitLab.

ื‘ื”ืžืฉืš ื”ื˜ืงืกื˜, ืžื˜ืขืžื™ ื ื•ื—ื•ืช, ื‘ืžืงื•ื ื”ืžื™ืœื” Mediastreamer2 ื ืฉืชืžืฉ ื‘ืกื™ืžื•ืŸ ื”ืจื•ืกื™ ืฉืœื”: "ืžื“ื™ื” ืกื˜ืจื™ืžืจ".

ื”ื”ื™ืกื˜ื•ืจื™ื” ืฉืœ ื™ืฆื™ืจืชื• ืื™ื ื” ื‘ืจื•ืจื” ืœื—ืœื•ื˜ื™ืŸ, ืืš ืื ืœืฉืคื•ื˜ ืœืคื™ ืงื•ื“ ื”ืžืงื•ืจ ืฉืœื”, ื”ื™ื ื”ืฉืชืžืฉื” ื‘ืขื‘ืจ ื‘ืกืคืจื™ื™ื” ื’ืœื™ื‘, ืืฉืจ, ื›ื‘ื™ื›ื•ืœ, ืจื•ืžื– ืขืœ ืžืขืจื›ืช ื™ื—ืกื™ื ืจื—ื•ืงื” ืืคืฉืจื™ืช ืขื GStreamer. ื‘ื”ืฉื•ื•ืื” ืืœื™ื• ืกื˜ืจื™ืžืจ ื”ืžื“ื™ื” ื ืจืื” ืงืœ ื™ื•ืชืจ. ื”ื’ืจืกื” ื”ืจืืฉื•ื ื” ืฉืœ Linphone ื”ื•ืคื™ืขื” ื‘ืฉื ืช 2001, ื›ืš ืฉื›ืจื’ืข ืกื˜ืจื™ืžืจ ื”ืžื“ื™ื” ืงื™ื™ื ื•ืžืชืคืชื— ื›ืžืขื˜ 20 ืฉื ื”.

ื‘ืœื™ื‘ื• ืฉืœ ืกื˜ืจื™ืžืจ ื”ืžื“ื™ื” ื ืžืฆืืช ืืจื›ื™ื˜ืงื˜ื•ืจื” ื”ื ืงืจืืช "ื–ืจื™ืžืช ื ืชื•ื ื™ื" (ื–ืจื™ืžืช ื ืชื•ื ื™ื). ื“ื•ื’ืžื” ืœืืจื›ื™ื˜ืงื˜ื•ืจื” ื›ื–ื• ืžื•ืฆื’ืช ื‘ืื™ื•ืจ ืฉืœื”ืœืŸ.

ื—ืงืจ ืžื ื•ืข ื”-VoIP Mediastreamer2. ื—ืœืง 1

ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื” ื–ื•, ืืœื’ื•ืจื™ืชื ืขื™ื‘ื•ื“ ื”ื ืชื•ื ื™ื ืžื•ื’ื“ืจ ืœื ืขืœ ื™ื“ื™ ืงื•ื“ ืชื•ื›ื ื™ืช, ืืœื ืขืœ ื™ื“ื™ ืกื›ืžื” (ื’ืจืฃ) ืœื—ื™ื‘ื•ืจ ืคื•ื ืงืฆื™ื•ืช ืฉื ื™ืชืŸ ืœืกื“ืจ ื‘ื›ืœ ืกื“ืจ. ืคื•ื ืงืฆื™ื•ืช ืืœื• ื ืงืจืื•ืช ืคื™ืœื˜ืจื™ื.

ืืจื›ื™ื˜ืงื˜ื•ืจื” ื–ื• ืžืืคืฉืจืช ืœื™ื™ืฉื ืืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืขื™ื‘ื•ื“ ื”ืžื“ื™ื” ื‘ืฆื•ืจื” ืฉืœ ืงื‘ื•ืฆื” ืฉืœ ืžืกื ื ื™ื ื”ืžื—ื•ื‘ืจื™ื ืœืžืขืจื›ืช ื”ืขื™ื‘ื•ื“ ื•ื”ืฉื™ื“ื•ืจ ืฉืœ ืชืขื‘ื•ืจืช RTP ืฉืœ ื˜ืœืคื•ืŸ VoIP.

ื”ื™ื›ื•ืœืช ืœืฉืœื‘ ืžืกื ื ื™ื ืœืกื›ืžื•ืช ืฉืจื™ืจื•ืชื™ื•ืช, ืคื™ืชื•ื— ืคืฉื•ื˜ ืฉืœ ืžืกื ื ื™ื ื—ื“ืฉื™ื, ื”ื˜ืžืขืช ืกื˜ืจื™ืžืจ ื”ืžื“ื™ื” ื›ืกืคืจื™ื™ื” ื ืคืจื“ืช ืขืฆืžืื™ืช, ืžืืคืฉืจื™ื ืœื”ืฉืชืžืฉ ื‘ื• ื‘ืคืจื•ื™ืงื˜ื™ื ืื—ืจื™ื. ื™ืชืจื” ืžื›ืš, ื”ืคืจื•ื™ืงื˜ ื™ื›ื•ืœ ืœื”ื™ื•ืช ื‘ืชื—ื•ื ื”-VoIP, ืฉื›ืŸ ื ื™ืชืŸ ืœื”ื•ืกื™ืฃ ืคื™ืœื˜ืจื™ื ืžืขืฉื” ื™ื“ื™ื•.

ืกืคืจื™ื™ืช ื”ืžืกื ื ื™ื ื”ืžืกื•ืคืงืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื”ื™ื ืขืฉื™ืจื” ืœืžื“ื™, ื•ื›ืคื™ ืฉื›ื‘ืจ ืฆื•ื™ืŸ, ื ื™ืชืŸ ืœื”ืจื—ื™ื‘ ืื•ืชื” ืขื ืžืกื ื ื™ื ื‘ืขื™ืฆื•ื‘ ืฉืœื ื•. ืื‘ืœ ืจืืฉื™ืช, ื‘ื•ืื• ื ืชืืจ ืืช ื”ืžืกื ื ื™ื ื”ืžื•ื›ื ื™ื ืฉืžื’ื™ืขื™ื ืขื ืกื˜ืจื™ืžืจ ื”ืžื“ื™ื”. ื”ื ื” ื”ืจืฉื™ืžื” ืฉืœื”ื:

ืžืกื ื ื™ ืงื•ืœ

ืœื›ื™ื“ืช ืื•ื“ื™ื• ื•ื”ืฉืžืขื”

  • Alsa (ืœื™ื ื•ืงืก): 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
  • DirectSound (Windows): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
  • ื ื’ืŸ ืงื‘ืฆื™ื (ืงื‘ืฆื™ ื’ืœื/wav/pcap) (ืœื™ื ื•ืงืก): MS_FILE_PLAYER
  • ื ื’ืŸ ืงื‘ืฆื™ื (ืงื‘ืฆื™ ื’ืœื/wav) (Windows): MS_WINSND_READ
  • ื›ืชื•ื‘ ืœืงื•ื‘ืฅ (ืงื‘ืฆื™ wav) (ืœื™ื ื•ืงืก): MS_FILE_REC
  • ื›ืชื•ื‘ ืœืงื•ื‘ืฅ (ืงื‘ืฆื™ wav) (Windows): MS_WINSND_WRITE
  • ื™ื—ื™ื“ืช ืฉืžืข ืฉืœ Mac (Mac OS X)
  • MME (Windows)
  • OSS (ืœื™ื ื•ืงืก): MS_OSS_WRITE, MS_OSS_READ
  • PortAudio (Mac OS X)
  • PulseAudio (ืœื™ื ื•ืงืก): MS_PULSE_WRITE, MS_PULSE_READ
  • Windows Sound (Windows)

ืงื™ื“ื•ื“/ืคืขื ื•ื— ืื•ื“ื™ื•

  • 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
  • PCM ืœื™ื ื™ืืจื™: MS_L16_ENC, MS_L16_DEC
  • Speex: MS_SPEEX_ENC, MS_SPEEX_DEC

ืขื™ื‘ื•ื“ ืงื•ืœ

  • ื”ืžืจืช ืขืจื•ืฅ (ืžื•ื ื•->ืกื˜ืจื™ืื•, ืกื˜ืจื™ืื•->ืžื•ื ื•): MS_CHANNEL_ADAPTER
  • ื•ืขื™ื“ื”: MS_CONF
  • ืžื—ื•ืœืœ DTMF: MS_DTMF_GEN
  • ื‘ื™ื˜ื•ืœ ื”ื“ (speex): MS_SPEEX_EC
  • ืืงื•ืœื™ื™ื–ืจ: MS_EQUALIZER
  • ืžื™ืงืกืจ: MS_MIXER
  • ืžืคืฆื” ืื•ื‘ื“ืŸ ืžื ื•ืช (PLC): MS_GENERIC_PLC
  • ื“ื’ื™ืžื” ืžื—ื“ืฉ: MS_RESAMPLE
  • ื’ืœืื™ ื˜ื•ืŸ: MS_TONE_DETECTOR
  • ื‘ืงืจืช ืขื•ืฆืžืช ื”ืงื•ืœ ื•ืžื“ื™ื“ืช ืจืžืช ื”ืื•ืช: MS_VOLUME

ืžืกื ื ื™ ื•ื™ื“ืื•

ืœื›ื™ื“ืช ื•ื™ื“ืื• ื•ื”ืฉืžืขื”

  • ืœื›ื™ื“ืช ืื ื“ืจื•ืื™ื“
  • ื”ืฉืžืขืช ืื ื“ืจื•ืื™ื“
  • ืœื›ื™ื“ืช AV Foundation (iOS)
  • ื”ืฉืžืขืช AV Foundation (iOS)
  • DirectShow Capture (Windows)
  • ื”ืฉืžืขืช DrawDib (Windows)
  • ื”ืฉืžืขื” ื—ื™ืฆื•ื ื™ืช - ืฉืœื™ื—ืช ื•ื™ื“ืื• ืœืฉื›ื‘ื” ื”ืขืœื™ื•ื ื”
  • ื”ืฉืžืขืช GLX (ืœื™ื ื•ืงืก): MS_GLXVIDEO
  • ืžื™ืจื” - ืชืžื•ื ื” ื ืขื” ืกื™ื ืชื˜ื™ืช: MS_MIRE
  • ื”ืฉืžืขืช OpenGL (Mac OS X)
  • ื”ืฉืžืขืช OpenGL ES2 (ืื ื“ืจื•ืื™ื“)
  • Quicktime Capture (Mac OS X)
  • ื”ืฉืžืขืช SDL: MS_SDL_OUT
  • ืคืœื˜ ืชืžื•ื ื” ืกื˜ื˜ื™ืช: MS_STATIC_IMAGE
  • ืœื›ื™ื“ืช ื•ื™ื“ืื• ืขื‘ื•ืจ ืœื™ื ื•ืงืก (V4L) (ืœื™ื ื•ืงืก): MS_V4L
  • ืœื›ื™ื“ืช ื•ื™ื“ืื• ืขื‘ื•ืจ ืœื™ื ื•ืงืก 2 (V4L2) (ืœื™ื ื•ืงืก): MS_V4L2_CAPTURE
  • ืœื›ื™ื“ืช Video4windows (DirectShow) (Windows)
  • ืœื›ื™ื“ืช Video4windows (DirectShow) (Windows CE)
  • ืœื›ื™ื“ืช ื•ื™ื“ืื• ืขื‘ื•ืจ Windows (vfw) (Windows)
  • ื”ืฉืžืขื” 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_THEORA_ENC, MS_THEORA_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

ื—ื‘ื™ืœื•ืช ื”ืชืœื•ืช ื”ื“ืจื•ืฉื•ืช ื•ืกืคืจื™ื™ืช ืกื˜ืจื™ืžืจ ื”ืžื“ื™ื” ืขืฆืžื” ื™ื•ืจื“ื• ื•ื™ื•ืชืงื ื• ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™.

ื”ื’ื•ื“ืœ ื”ื›ื•ืœืœ ืฉืœ ื—ื‘ื™ืœื•ืช ื”-Deb ืชืœื•ื™ื•ืช ืฉื”ื•ืจื“ืช ื™ื”ื™ื” ื›-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.

ื‘ื ื™ื™ื” ื•ื”ืคืขืœื” ืฉืœ ืืคืœื™ืงืฆื™ื™ืช ื”ื ื™ืกื™ื•ืŸ

ืื ื—ื ื• ื™ื•ืฆืจื™ื ื‘ ื‘ื™ืช ืชื™ืงื™ื™ื” ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ ื”ื”ื“ืจื›ื” ืฉืœื ื•, ื‘ื•ืื• ื ืงืจื ืœื–ื” ื”ื“ืจื›ื”:

$ 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