ื•ื™ืกืคืึธืจืฉืŸ ื“ื™ Mediastreamer2 ื•ื•ืึธื™ืคึผ ืžืึธื˜ืึธืจ. ื˜ื™ื™ืœ 1

ื“ืขืจ ืžืึทื˜ืขืจื™ืึทืœ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ื– ื’ืขื ื•ืžืขืŸ ืคื•ืŸ ืžื™ื™ืŸ ื–ืขืŸ ืงืึทื ืึทืœ.

ื”ืงื“ืžื”

ื“ืขืจ ืึทืจื˜ื™ืงืœ ืื™ื– ื“ืขืจ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ืึท ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืขื’ืŸ ืคืึทืงื˜ื™ืฉ-ืฆื™ื™ื˜ ืžื™ื“ื™ืึท ืคึผืจืึทืกืขืกื™ื ื’ ืžื™ื˜ ื“ื™ Mediastreamer2 ืžืึธื˜ืึธืจ. ื‘ืขืฉืึทืก ื“ื™ ืคึผืจืขื–ืขื ื˜ื™ืจื•ื ื’, ืžื™ื ื™ืžืึทืœ ืกืงื™ืœื– ืื™ืŸ ืืจื‘ืขื˜ืŸ ืื™ืŸ ื“ื™ ืœื™ื ื•ืงืก ื•ื•ืึธืงื–ืึทืœ ืื•ืŸ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืื™ืŸ ื“ื™ C ืฉืคึผืจืึทืš ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜.

Mediastreamer2 ืื™ื– ื“ื™ ื•ื•ืึธื™ืคึผ ืžืึธื˜ืึธืจ ื”ื™ื ื˜ืขืจ ื“ื™ ืคืึธืœืงืก ืึธืคึฟืŸ-ืžืงื•ืจ ื•ื•ืึธื™ืคึผ ื˜ืขืœืขืคืึธืŸ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืคึผืจื•ื™ืขืงื˜ ืœื™ื ืคืึธื ืข. Linphone Mediastreamer2 ื™ืžืคึผืœืึทืžืึทื ืฅ ืึทืœืข ืคืึทื ื’ืงืฉืึทื ื– ืฉื™ื™ึทื›ื•ืช ืฆื• ืึทื•ื“ื™ืึธ ืื•ืŸ ื•ื•ื™ื“ืขื. ื ื“ื™ื˜ื™ื™ืœื“ ืจืฉื™ืžื” ืคื•ืŸ ืžืึธื˜ืึธืจ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื–ืขืŸ ืื•ื™ืฃ ื“ืขื Mediastreamer ื‘ืœืึทื˜. ื“ืขืจ ืžืงื•ืจ ืงืึธื“ ืื™ื– ื“ืึธ: ื’ื™ื˜ืœืึทื‘.

ื•ื•ื™ื™ึทื˜ืขืจ ืื™ืŸ ื“ืขื ื˜ืขืงืกื˜, ืคึฟืึทืจ ืงืึทื ื•ื•ื™ื ื™ืึทื ืก, ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื“ื™ ื•ื•ืึธืจื˜ Mediastreamer2 ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ื–ื™ื™ืŸ ืจื•ืกื™ืฉ ื ืึธื•ื˜ื™ื™ืฉืึทืŸ: "ืžืขื“ื™ืขืกื˜ืจืขืžืขืจ".

ื“ื™ ื’ืขืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹ื–ื™ื™ืŸ ืฉืึทืคื•ื ื’ ืื™ื– ื ื™ืฉื˜ ื’ืึธืจ ืงืœืึธืจ, ืึธื‘ืขืจ ืื•ื™ื‘ ืžืฉืคื˜ืŸ ืœื•ื™ื˜ ื–ื™ื™ืŸ ืžืงื•ืจ ืงืึธื“, ืขืก ืคืจื™ืขืจ ื’ืขื•ื•ื™ื™ื ื˜ ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื’ืœื™ื‘, ื•ื•ื ืก ื“ืื› ื˜ ืื•ื ื“ ื– ืื ืฆื•ื”ืขืจ ืŸ ืื•ื™ ืฃ ื ืžืขื’ืœืขื› ืข ื•ื•ื™ื™ื˜ืข ืจ ื‘ืืฆื™ืื•ื ื’ ื’ืกื˜ืจืขืึทืžืขืจ. ืื™ืŸ ืคืึทืจื’ืœื™ื™ึทืš, ื“ื™ ืžื™ื“ื™ืึท ืกื˜ืจื™ืžืขืจ ืงื•ืงื˜ ืžืขืจ ืœื™ื™ื˜ื•ื•ื™ื™ื˜. ื“ืขืจ ืขืจืฉื˜ืขืจ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹Linphone ืื™ื– ืืจื•ื™ืก ืื™ืŸ 2001, ืึทื–ื•ื™ ืื™ืŸ ื“ืขื ืžืึธืžืขื ื˜ ื“ื™ ืžื™ื“ื™ืึท ืกื˜ืจื™ืžืขืจ ื”ืื˜ ืขืงืกื™ืกื˜ื™ืจื˜ ืื•ืŸ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืคึฟืึทืจ ื›ึผืžืขื˜ 20 ื™ืึธืจ.

ื“ื™ ืžื™ื“ื™ืึท ืกื˜ืจื™ืžืขืจ ืื™ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึทืŸ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ื’ืขืจื•ืคึฟืŸ "ื“ืึทื˜ืึท ืœื•ื™ืคืŸ". ื ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ืึทื–ืึท ืึท ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืื™ื– ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ืคื™ื’ื•ืจ ืื•ื ื˜ืŸ.

ื•ื™ืกืคืึธืจืฉืŸ ื“ื™ Mediastreamer2 ื•ื•ืึธื™ืคึผ ืžืึธื˜ืึธืจ. ื˜ื™ื™ืœ 1

ืื™ืŸ ื“ืขื ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ื“ื™ ื“ืึทื˜ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืึทืœื’ืขืจื™ื“ืึทื ืื™ื– ืกืคึผืขืกื™ืคื™ืขื“ ื ื™ืฉื˜ ื“ื•ืจืš ืคึผืจืึธื’ืจืึทื ืงืึธื“, ืึธื‘ืขืจ ื“ื•ืจืš ืึท ื“ื™ืึทื’ืจืึทืžืข (ื’ืจืึทืฃ) ืคื•ืŸ ืงืึทื ืขืงื˜ื™ื ื’ ืคืึทื ื’ืงืฉืึทื ื– ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืขืจื™ื™ื ื“ื–ืฉื“ ืื™ืŸ ืงื™ื™ืŸ ืกื“ืจ. ื“ื™ ืคืึทื ื’ืงืฉืึทื ื– ื–ืขื ืขืŸ ื’ืขืจื•ืคืŸ ืคื™ืœื˜ืขืจืก.

ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืžื™ื“ื™ืึท ืคึผืจืึทืกืขืกื™ื ื’ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ื’ืึทื ื’ ืคื•ืŸ ืคื™ืœื˜ืขืจืก ืคืืจื‘ื•ื ื“ืŸ ืื™ืŸ ืึท ืงืจื™ื™ึทื– ืคึฟืึทืจ ืคึผืจืึทืกืขืกื™ื ื’ ืื•ืŸ ื˜ืจืึทื ืกืžื™ื˜ื™ื ื’ RTP ืคืึทืจืงืขืจ ืคื•ืŸ ืึท ื•ื•ืึธื™ืคึผ ื˜ืขืœืขืคืึธืŸ.

ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืคื™ืœื˜ืขืจืก ืื™ืŸ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ืกืงื™ืžื–, ืคึผืฉื•ื˜ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ื ื™ื™ึทืข ืคื™ืœื˜ืขืจืก ืื•ืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืžื™ื“ื™ืึท ืกื˜ืจื™ืžืขืจ ื•ื•ื™ ืึท ืคืจื™ื™ึท ื‘ืึทื–ื•ื ื“ืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืœืึธื–ืŸ ืขืก ืฆื• ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืื™ืŸ ืื ื“ืขืจืข ืคึผืจืึทื“ื–ืฉืขืงืก. ื“ืขืจืฆื•, ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืื™ืŸ ื“ื™ ืคืขืœื“ ืคื•ืŸ ื•ื•ืึธื™ืคึผ, ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืœื™ื™ื’ืŸ ืคื™ืœื˜ืขืจืก ื’ืขืžืื›ื˜ ื“ื•ืจืš ื–ื™ืš.

ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืคื™ืœื˜ืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ื– ื’ืึทื ืฅ ืจื™ื™ึทืš ืื•ืŸ, ื•ื•ื™ ืฉื•ื™ืŸ ื“ืขืจืžืื ื˜, ืงืขื ืขืŸ ื–ื™ื™ืŸ ื™ืงืกืคึผืึทื ื“ื™ื“ ืžื™ื˜ ืคื™ืœื˜ืขืจืก ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข ืคึผืœืึทืŸ. ืื‘ืขืจ ืขืจืฉื˜ืขืจ, ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืคืึทืจื˜ื™ืง ืคื™ืœื˜ืขืจืก ื•ื•ืึธืก ืงื•ืžืขืŸ ืžื™ื˜ ื“ื™ ืžื™ื“ื™ืึท ืกื˜ืจื™ืžืขืจ. ื“ืึธ ืื™ื– ื–ื™ื™ืขืจ ืจืฉื™ืžื”:

ื’ืขื–ื•ื ื˜ ืคื™ืœื˜ืขืจืก

ืึทื•ื“ื™ืึธ ื›ืึทืคึผืŸ ืื•ืŸ ืคึผืœื™ื™ื‘ืึทืง

  • ืื•ื™ืš (ืœื™ื ื•ืงืก): MS_ALSA_WRITE, MS_ALSA_READ
  • ื’ืขื‘ื•ื™ืจืŸ ื’ืขื–ื•ื ื˜ ืคื•ืŸ ืึทื ื“ืจื•ื™ื“ (ืœื™ื‘ืžืขื“ื™ืึท): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ
  • ืึทื•ื“ื™ืึธ ืจื™ื™ ืกืขืจื•ื•ื™ืก (Mac OS X): MS_AQ_WRITE, MS_AQ_READ
  • ืึทื•ื“ื™ืึธ ืึทืคึผืึทืจืึทื˜ ืกืขืจื•ื•ื™ืก (Mac OS X)
  • Arts (ืœื™ื ื•ืงืก): MS_ARTS_WRITE, MS_ARTS_READ
  • DirectSound (ื•ื•ื™ื ื“ืึธื•ื–): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
  • ื˜ืขืงืข ืฉืคึผื™ืœืขืจ (ืจื•ื™ / ื•ื•ืึทื•ื• / ืคึผืงืึทืคึผ ื˜ืขืงืขืก) (ืœื™ื ื•ืงืก): MS_FILE_PLAYER
  • ื˜ืขืงืข ืฉืคึผื™ืœืขืจ (ืจื•ื™ / ื•ื•ืึทื•ื• ื˜ืขืงืขืก) (ื•ื•ื™ื ื“ืึธื•ื–): 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)
  • PulseAudio (ืœื™ื ื•ืงืก): MS_PULSE_WRITE, MS_PULSE_READ
  • Windows Sound (Windows)

ืึทื•ื“ื™ืึธ ืงืึธื“ื™ืจื•ื ื’ / ื“ื™ืงืึธื•ื“ื™ื ื’

  • ื’.711 ืึท ื’ืขื–ืขืฅ: MS_ALAW_DEC, MS_ALAW_ENC
  • ื’.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
  • ืœื™ื ืขืึทืจ ืคึผืงื: MS_L16_ENC, MS_L16_DEC
  • ืกืคึผืขืงืก: MS_SPEEX_ENC, MS_SPEEX_DEC

ื’ืขื–ื•ื ื˜ ืคึผืจืึทืกืขืกื™ื ื’

  • ืงืึทื ืึทืœ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ (ืžืึธื ืึธ-> ืกื˜ืขืจืขืึธ, ืกื˜ืขืจื™ืึธื•-> ืžืึธื ืึธ): MS_CHANNEL_ADAPTER
  • ืงืึธื ืคึฟืขืจืขื ืฅ: MS_CONF
  • ื“ื˜ืžืฃ ื’ืขื ืขืจืึทื˜ืึธืจ: MS_DTMF_GEN
  • ืขืงืึธื• ืงืึทื ืกืึทืœื™ื™ืฉืึทืŸ (ืกืคึผืขืงืก): MS_SPEEX_EC
  • ืขืงื•ื•ืึทืœื™ื–ืขืจ: MS_EQUALIZER
  • ืžื™ืงืกืขืจ: MS_MIXER
  • ืคึผืึทืงืึทื˜ ืœืึธืก ืงืึธืžืคึผืขื ืกืึทื˜ืึธืจ (PLC): MS_GENERIC_PLC
  • ืจืขืกืึทืžืคึผืœืขืจ: MS_RESAMPLE
  • ื˜ืึธืŸ ื“ืขื˜ืขืงื˜ืึธืจ: MS_TONE_DETECTOR
  • ื‘ืึทื ื“ ืงืึธื ื˜ืจืึธืœ ืื•ืŸ ืžืขื–ืฉืขืจืžืึทื ื˜ ืคื•ืŸ ืกื™ื’ื ืึทืœ ืžื“ืจื’ื”: MS_VOLUME

ื•ื•ื™ื“ืขื ืคื™ืœื˜ืขืจืก

ื•ื•ื™ื“ืขื ื›ืึทืคึผืŸ ืื•ืŸ ืคึผืœื™ื™ื‘ืึทืง

  • ืึทื ื“ืจื•ื™ื“ ื›ืึทืคึผืŸ
  • ืึทื ื“ืจื•ื™ื“ ืคึผืœื™ื™ื‘ืึทืง
  • AV Foundation Capture (iOS)
  • AV Foundation ืคึผืœื™ื™ื‘ืึทืง (ื™ืึธืก)
  • DirectShow ื›ืึทืคึผืŸ (ื•ื•ื™ื ื“ืึธื•ื–)
  • DrawDib ืคึผืœื™ื™ื‘ืึทืง (ื•ื•ื™ื ื“ืึธื•ื–)
  • ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืคึผืœื™ื™ื‘ืึทืง - ืฉื™ืงืŸ ื•ื•ื™ื“ืขื ืฆื• ื“ื™ ืฉืคึผื™ืฅ ืžื“ืจื’ื”
  • GLX ืคึผืœื™ื™ื‘ืึทืง (ืœื™ื ื•ืงืก): MS_GLXVIDEO
  • ืžื™ืจืข - ืกื™ื ื˜ืขื˜ื™ืฉ ืžืึธื•ื•ื™ื ื’ ื‘ื™ืœื“: MS_MIRE
  • OpenGL ืคึผืœื™ื™ื‘ืึทืง (Mac OS X)
  • OpenGL ES2 ืคึผืœื™ื™ื‘ืึทืง (ืึทื ื“ืจื•ื™ื“)
  • ืงื•ื•ื™ืงื˜ื™ื™ื ื›ืึทืคึผืŸ (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) ื›ืึทืคึผืŸ (ื•ื•ื™ื ื“ืึธื•ื–)
  • XV ืคึผืœื™ื™ื‘ืึทืง (ืœื™ื ื•ืงืก)

ื•ื•ื™ื“ืขื ืงืึธื“ื™ืจื•ื ื’ / ื“ื™ืงืึธื•ื“ื™ื ื’

  • H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, ืฉื ื™ื™: MS_MJPEG_DEC, MS_H263_ENC, MS_H263_DEC
  • ื”.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
  • ืจื˜ืคึผ ืึธืคึผื˜ืจืึธื’ / ื˜ืจืึทื ืกืžื™ืกื™ืข: MS_RTP_SEND, MS_RTP_RECV
  • ืงืึทืคึผื™ื™ื ื’ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื“ืึทื˜ืŸ ืฆื• ืงื™ื™ืคืœ ืึทื•ื˜ืคึผื•ืฅ: MS_TEE
  • ืžืึทื˜ืฉื˜ ืžืึทืกืข: MS_VOID_SINK
  • ืฉื˜ื™ืœ ืžืงื•ืจ: MS_VOID_SOURCE

ืคึผืœื•ื’ื™ื ืก

ื’ืขื–ื•ื ื˜ ืคื™ืœื˜ืขืจืก

  • AMR-NB ืขื ืงืึธื“ืขืจ / ื“ื™ืงืึธื•ื“ืขืจ
  • ื’.729 ืขื ืงืึธื“ืขืจ / ื“ื™ืงืึธื•ื“ืขืจ
  • iLBC ืขื ืงืึธื“ืขืจ / ื“ื™ืงืึธื•ื“ืขืจ
  • SILK ืขื ืงืึธื“ืขืจ / ื“ื™ืงืึธื•ื“ืขืจ

    ื•ื•ื™ื“ืขื ืคื™ืœื˜ืขืจืก

  • ื”.264 ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืขื ืงืึธื“ืขืจ
  • ื”.264 ื•ื•4ืœ2 ืขื ืงืึธื“ืขืจ / ื“ื™ืงืึธื•ื“ืขืจ ืžื™ื˜ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืึทืงืกืขืœืขืจื™ื™ืฉืึทืŸ

ื ืึธืš ืึท ืงื•ืจืฅ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ื™ ืคื™ืœื˜ืขืจ, ื“ืขืจ ื˜ื™ืคึผ ื ืึธืžืขืŸ ืื™ื– ื’ืขื•ื•ื™ื–ืŸ, ื•ื•ืึธืก ืื™ื– ื’ืขื ื™ืฆื˜ ื•ื•ืขืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ื ื™ื™ึทืข ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ื“ืขื ืคื™ืœื˜ืขืจ. ืื™ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื“ื™ืกืงื•ืกื™ืข ืžื™ืจ ื•ื•ืขืœืŸ ืึธืคึผืฉื™ืงืŸ ืฆื• ื“ืขื ืจืฉื™ืžื”.

ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’ ืื•ื ื˜ืขืจ ืœื™ื ื•ืงืก ื•ื‘ื•ื ื˜ื•

ืื™ืฆื˜ ืžื™ืจ ื•ื•ืขืœืŸ ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ ืžื™ื“ื™ืึท ืกื˜ืจื™ืžืขืจ ืื•ื™ืฃ ื“ื™ื™ืŸ ืงืึธืžืคึผื™ื•ื˜ืขืจ ืื•ืŸ ื‘ื•ื™ืขืŸ ืื•ื ื“ื–ืขืจ ืขืจืฉื˜ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื™ื˜ ืื™ื.

ื™ื ืกื˜ืึธืœื™ื ื’ Mediastremer2 ืื•ื™ืฃ ืึท ืงืึธืžืคึผื™ื•ื˜ืขืจ ืึธื“ืขืจ ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ ืžื™ื˜ ื•ื‘ื•ื ื˜ื• ื˜ื•ื˜ ื ื™ืฉื˜ ื“ืึทืจืคืŸ ืงื™ื™ืŸ ืกืคึผืขืฆื™ืขืœ ืกืงื™ืœื–. ื“ืึธ ืื•ืŸ ืื•ื ื˜ืŸ, ื“ืขืจ ืกื™ืžื‘ืึธืœ "$" ื•ื•ืขื˜ ืึธื ื•ื•ื™ื™ึทื–ืŸ ื“ื™ ืฉืึธืœ ืคึผื™ื ื˜ืœืขืš ืคึฟืึทืจ ืึทืจื™ื™ึทืŸ ืงืึทืžืึทื ื“ื–. ื™ืขื ืข. ืื•ื™ื‘ ืื™ืŸ ื“ื™ ืœื™ืกื˜ื™ื ื’ ืื™ืจ ื–ืขืŸ ื“ืขื ืกื™ืžื‘ืึธืœ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ืึท ืฉื•ืจื”, ื“ืึธืก ืžื™ื˜ืœ ืึทื– ื“ืึธืก ืื™ื– ืึท ืฉื•ืจื” ื•ื•ืึธืก ื•ื•ื™ื™ึทื–ืŸ ืงืึทืžืึทื ื“ื– ืฆื• ื–ื™ื™ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืื™ืŸ ื“ื™ ื•ื•ืึธืงื–ืึทืœ.

ืขืก ืื™ื– ืื ื’ืขื ื•ืžืขืŸ ืึทื– ื‘ืฉืขืช ืื™ืจ ื“ื•ืจื›ืคื™ืจืŸ ื“ื™ ืกื˜ืขืคึผืก ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ื“ื™ื™ืŸ ืงืึธืžืคึผื™ื•ื˜ืขืจ ื”ืื˜ ืึทืงืกืขืก ืฆื• ื“ื™ ืื™ื ื˜ืขืจื ืขื˜.

ื™ื ืกื˜ืึธืœื™ื ื’ ื“ื™ libmediastromer-dev ืคึผืขืงืœ

ืงืึทื˜ืขืจ ื“ืขื ื•ื•ืึธืงื–ืึทืœ ืื•ืŸ ื˜ื™ืคึผ ื“ื™ ื‘ืึทืคึฟืขืœ:

$ sudo apt-get update

ืื™ืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื‘ืขื˜ืŸ ืคึฟืึทืจ ืึท ืคึผืึทืจืึธืœ ืฆื• ืžืึทื›ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ; ืึทืจื™ื™ึทืŸ ืขืก ืื•ืŸ ื“ืขืจ ืคึผืขืงืœ ืคืึทืจื•ื•ืึทืœื˜ืขืจ ื•ื•ืขื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื–ื™ื™ึทืŸ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–. ื ืึธืš ื“ืขื ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื˜ืึธืŸ:

$ sudo apt-get install libmediastreamer-dev

ื“ื™ ื ื•ื™ื˜ื™ืง ื“ืขืคึผืขื ื“ืขื ืกื™ ืคึผืึทืงืึทื“ื–ืฉืึทื– ืื•ืŸ ื“ื™ ืžื™ื“ื™ืึท ืกื˜ืจื™ืžืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื–ื™ืš ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื“ืึทื•ื ืœืึธื•ื“ื™ื“ ืื•ืŸ ืื™ื ืกื˜ืึทืœื™ืจืŸ.

ื“ื™ ื’ืึทื ืฅ ื’ืจื™ื™ืก ืคื•ืŸ ื“ืึทื•ื ืœืึธื•ื“ื™ื“ ื“ืขื‘ ื“ืขืคึผืขื ื“ืขื ืกื™ ืคึผืึทืงืึทื“ื–ืฉืึทื– ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืขืขืจืขืš 35 ืžืขื’ืื‘ื™ื™ื˜ืŸ. ื“ืขื˜ืึทื™ืœืก ื•ื•ืขื’ืŸ ื“ืขื ืื™ื ืกื˜ืึทืœื™ืจืŸ ืคึผืขืงืœ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ืžื™ื˜ ื“ืขื ื‘ืึทืคึฟืขืœ:

$ 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