Mediastreamer2 VoIP рдЗрдиреНрдЬрд┐рди рдЕрдиреНрд╡реЗрд╖рдг рдЧрд░реНрджреИред рднрд╛рдЧ рео

рд▓реЗрдЦрдХреЛ рд╕рд╛рдордЧреНрд░реА рдореЗрд░реЛ рдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ рд╣реЛ zen рдЪреНрдпрд╛рдирд▓.

рдкрд░рд┐рдЪрдп

рдпреЛ рд▓реЗрдЦ Mediastreamer2 рдЗрдиреНрдЬрд┐рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ-рд╕рдордп рдорд┐рдбрд┐рдпрд╛ рдкреНрд░рд╢реЛрдзрди рдмрд╛рд░реЗ рд▓реЗрдЦрд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛рдХреЛ рд╕реБрд░реБрд╡рд╛рдд рд╣реЛред рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрд▓реЗ рд▓рд┐рдирдХреНрд╕ рдЯрд░реНрдорд┐рдирд▓рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рд░ рд╕реА рднрд╛рд╖рд╛рдорд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рдЧрд░реНрдиреЗ рдиреНрдпреВрдирддрдо рд╕реАрдкрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗрдЫред

Mediastreamer2 рд▓реЛрдХрдкреНрд░рд┐рдп рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╡реАрдУрдЖрдИрдкреА рдлреЛрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрдЫрд╛рдбрд┐рдХреЛ VoIP рдЗрдиреНрдЬрд┐рди рд╣реЛред рд▓рд┐рдирдлреЛрдиред Linphone Mediastreamer2 рдорд╛ рдзреНрд╡рдирд┐ рд░ рднрд┐рдбрд┐рдпреЛ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдмреИ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред рдЗрдиреНрдЬрд┐рди рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдХреЛ рд╡рд┐рд╕реНрддреГрдд рд╕реВрдЪреА рдпрд╕ Mediastreamer рдкреГрд╖реНрдардорд╛ рджреЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫред рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдБ рдЫ: GitLab.

рдердк рдкрд╛рдардорд╛, рд╕реБрд╡рд┐рдзрд╛рдХреЛ рд▓рд╛рдЧрд┐, Mediastreamer2 рд╢рдмреНрджрдХреЛ рд╕рдЯреНрдЯрд╛ рд╣рд╛рдореА рдпрд╕рдХреЛ рд░реВрд╕реА рдиреЛрдЯреЗрд╢рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ: "рдорд┐рдбрд┐рдпрд╛ рд╕реНрдЯреНрд░рд┐рдорд░"ред

рдпрд╕рдХреЛ рд╕рд┐рд░реНрдЬрдирд╛рдХреЛ рдЗрддрд┐рд╣рд╛рд╕ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕реНрдкрд╖реНрдЯ рдЫреИрди, рддрд░ рдпрд╕рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдиреНрдпрд╛рдп рдЧрд░реНрджреИ, рдпрд╕рд▓реЗ рдкрд╣рд┐рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНтАНрдпреЛред Gibib, рдЬреБрди, рдпреЛ рдЬрд╕реНрддреЛ рдерд┐рдпреЛ, рд╕рдореНрднрд╛рд╡рд┐рдд рдЯрд╛рдврд╛рдХреЛ рд╕рдореНрдмрдиреНрдзрдорд╛ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫ GStreamerред рдЬрд╕рдХреЛ рддреБрд▓рдирд╛рдорд╛ рдорд┐рдбрд┐рдпрд╛ рд╕реНрдЯреНрд░рд┐рдорд░ рдмрдвреА рд╣рд▓реНрдХрд╛ рджреЗрдЦрд┐рдиреНрдЫред Linphone рдХреЛ рдкрд╣рд┐рд▓реЛ рд╕рдВрд╕реНрдХрд░рдг 2001 рдорд╛ рджреЗрдЦрд╛ рдкрд░реНтАНрдпреЛ, рддреНрдпрд╕реИрд▓реЗ рдЕрд╣рд┐рд▓реЗ рдорд┐рдбрд┐рдпрд╛ рд╕реНрдЯреНрд░рд┐рдорд░ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рд░ рд▓рдЧрднрдЧ 20 рд╡рд░реНрд╖рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рдХрд╕рд┐рдд рдЫред

рдорд┐рдбрд┐рдпрд╛ рд╕реНрдЯреНрд░рд┐рдорд░рдХреЛ рдореБрдЯреБрдорд╛ "рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣" (рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣) рднрдирд┐рдиреЗ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╣реЛред рдпрд╕реНрддреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рддрд▓ рдЪрд┐рддреНрд░ рдорд╛ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдЫред

Mediastreamer2 VoIP рдЗрдиреНрдЬрд┐рди рдЕрдиреНрд╡реЗрд╖рдг рдЧрд░реНрджреИред рднрд╛рдЧ рео

рдпрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдорд╛, рдбреЗрдЯрд╛ рдкреНрд░рд╢реЛрдзрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╣реЛрдЗрди, рддрд░ рдХреБрдиреИ рдкрдирд┐ рдХреНрд░рдордорд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рд╕рдХрд┐рдиреЗ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдЬрдбрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдпреЛрдЬрдирд╛ (рдЧреНрд░рд╛рдл) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫред рдпреА рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓рд╛рдИ рдлрд┐рд▓реНрдЯрд░ рднрдирд┐рдиреНрдЫред

рдпреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рд▓реЗ рд╡реАрдУрдЖрдИрдкреА рдлреЛрди рдЖрд░рдЯреАрдкреА рдЯреНрд░рд╛рдлрд┐рдХ рдкреНрд░рд╢реЛрдзрди рд░ рдкреНрд░рд╕рд╛рд░рдг рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЬрдбрд╛рди рднрдПрдХрд╛ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВрдХреЛ рд╕реЗрдЯрдХреЛ рд░реВрдкрдорд╛ рдорд┐рдбрд┐рдпрд╛ рдкреНрд░рд╢реЛрдзрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред

рдлрд┐рд▓реНрдЯрд░рд╣рд░реВрд▓рд╛рдИ рд╕реНрд╡реЗрдЪреНрдЫрд╛рдЪрд╛рд░реА рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛, рдирдпрд╛рдБ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВрдХреЛ рд╕рд░рд▓ рд╡рд┐рдХрд╛рд╕, рдорд┐рдбрд┐рдпрд╛ рд╕реНрдЯреНрд░рд┐рдорд░рд▓рд╛рдИ рд╕реНрд╡рддрдиреНрддреНрд░ рдЫреБрдЯреНрдЯреИ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ, рдпрд╕рд▓рд╛рдИ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпрд╕рдмрд╛рд╣реЗрдХ, рдкрд░рд┐рдпреЛрдЬрдирд╛ VoIP рдХреЛ рдХреНрд╖реЗрддреНрд░рдорд╛ рд╣реБрди рд╕рдХреНрдЫ, рдХрд┐рдирдХрд┐ рдпреЛ рдЖрдлреИрд▓реЗ рдмрдирд╛рдПрдХреЛ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдердкреНрди рд╕рдореНрднрд╡ рдЫред

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдлрд┐рд▓реНрдЯрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдзреЗрд░реИ рдзрдиреА рдЫ рд░, рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдбрд┐рдЬрд╛рдЗрдирдХрд╛ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВрд╕рдБрдЧ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рддрд░ рдкрд╣рд┐рд▓реЗ, рдорд┐рдбрд┐рдпрд╛ рд╕реНрдЯреНрд░рд┐рдорд░рдХреЛ рд╕рд╛рде рдЖрдЙрдиреЗ рд░реЗрдбреАрдореЗрдб рдлрд┐рд▓реНрдЯрд░рд╣рд░реВрдХреЛ рд╡рд░реНрдгрди рдЧрд░реМрдВред рдпрд╣рд╛рдБ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдЫ:

рдзреНрд╡рдирд┐ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ

рдЕрдбрд┐рдпреЛ рдХреНрдпрд╛рдкреНрдЪрд░ рд░ рдкреНрд▓реЗрдмреНрдпрд╛рдХ

  • Alsa (Linux): MS_ALSA_WRITE, MS_ALSA_READ
  • рдПрдиреНрдбреНрд░реЛрдЗрдб рдиреЗрдЯрд┐рдн рдзреНрд╡рдирд┐ (libmedia): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ
  • рдЕрдбрд┐рдпреЛ рд▓рд╛рдЗрди рд╕реЗрд╡рд╛ (Mac OS X): MS_AQ_WRITE, MS_AQ_READ
  • рдЕрдбрд┐рдпреЛ рдПрдХрд╛рдЗ рд╕реЗрд╡рд╛ (рдореНрдпрд╛рдХ рдУрдПрд╕ рдПрдХреНрд╕)
  • рдХрд▓рд╛ (Linux): MS_ARTS_WRITE, MS_ARTS_READ
  • DirectSound (Windows): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
  • рдлрд╛рдЗрд▓ рдкреНрд▓реЗрдпрд░ (рдХрдЪреНрдЪрд╛/wav/pcap рдлрд╛рдЗрд▓рд╣рд░реВ) (рд▓рд┐рдирдХреНрд╕): MS_FILE_PLAYER
  • рдлрд╛рдЗрд▓ рдкреНрд▓реЗрдпрд░ (рдХрдЪреНрдЪрд╛/рд╡рд╛рдн рдлрд╛рдЗрд▓рд╣рд░реВ) (рд╡рд┐рдиреНрдбреЛрдЬ): MS_WINSND_READ
  • рдлрд╛рдЗрд▓рдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН (wav рдлрд╛рдЗрд▓рд╣рд░реВ) (Linux): MS_FILE_REC
  • рдлрд╛рдЗрд▓рдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН (wav рдлрд╛рдЗрд▓рд╣рд░реВ) (Windows): MS_WINSND_WRITE
  • рдореНрдпрд╛рдХ рдЕрдбрд┐рдпреЛ рдПрдХрд╛рдЗ (рдореНрдпрд╛рдХ рдУрдПрд╕ рдПрдХреНрд╕)
  • MME (рд╡рд┐рдиреНрдбреЛрдЬ)
  • OSS (Linux): MS_OSS_WRITE, MS_OSS_READ
  • рдкреЛрд░реНрдЯрдЕрдбрд┐рдпреЛ (рдореНрдпрд╛рдХ рдУрдПрд╕ рдПрдХреНрд╕)
  • рдкрд▓реНрд╕ рдЕрдбрд┐рдпреЛ (рд▓рд┐рдирдХреНрд╕): MS_PULSE_WRITE, MS_PULSE_READ
  • рд╡рд┐рдиреНрдбреЛрдЬ рдзреНрд╡рдирд┐ (рд╡рд┐рдиреНрдбреЛрдЬ)

рдЕрдбрд┐рдпреЛ рдПрдиреНрдХреЛрдбрд┐рдЩ/рдбрд┐рдХреЛрдбрд┐рдЩ

  • G.711 a-law: 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 рдкреНрд▓реЗрдмреНрдпрд╛рдХ (Linux): MS_GLXVIDEO
  • Mire - рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рддрд╕реНрд╡реАрд░: MS_MIRE
  • рдУрдкрдирдЬреАрдПрд▓ рдкреНрд▓реЗрдмреНрдпрд╛рдХ (рдореНрдпрд╛рдХ рдУрдПрд╕ рдПрдХреНрд╕)
  • OpenGL ES2 рдкреНрд▓реЗрдмреНрдпрд╛рдХ (рдПрдиреНрдбреНрд░реЛрдЗрдб)
  • рдХреНрд╡рд┐рдХрдЯрд╛рдЗрдо рдХреНрдпрд╛рдкреНрдЪрд░ (рдореНрдпрд╛рдХ рдУрдПрд╕ рдПрдХреНрд╕)
  • SDL рдкреНрд▓реЗрдмреНрдпрд╛рдХ: MS_SDL_OUT
  • рд╕реНрдерд┐рд░ рдЫрд╡рд┐ рдЖрдЙрдЯрдкреБрдЯ: MS_STATIC_IMAGE
  • рд▓рд┐рдирдХреНрд╕ (V4L) рдХреНрдпрд╛рдкреНрдЪрд░рдХреЛ рд▓рд╛рдЧрд┐ рднрд┐рдбрд┐рдпреЛ (Linux): MS_V4L
  • рд▓рд┐рдирдХреНрд╕ 2 (V4L2) рдХреНрдпрд╛рдкреНрдЪрд░ (рд▓рд┐рдирдХреНрд╕) рдХреЛ рд▓рд╛рдЧреА рднрд┐рдбрд┐рдпреЛ: MS_V4L2_CAPTURE
  • Video4windows (DirectShow) рдХреНрдпрд╛рдкреНрдЪрд░ (Windows)
  • Video4windows (DirectShow) рдХреНрдпрд╛рдкреНрдЪрд░ (Windows CE)
  • рд╡рд┐рдиреНрдбреЛрдЬрдХрд╛ рд▓рд╛рдЧрд┐ рднрд┐рдбрд┐рдпреЛ (vfw) рдХреНрдпрд╛рдкреНрдЪрд░ (рд╡рд┐рдиреНрдбреЛрдЬ)
  • XV рдкреНрд▓реЗрдмреНрдпрд╛рдХ (Linux)

рднрд┐рдбрд┐рдпреЛ рдЗрдиреНрдХреЛрдбрд┐рдЩ/рдбрд┐рдХреЛрдбрд┐рдЩ

  • H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, Snow: 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 рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрдХреНрд╕реЗрд▓реЗрд░реЗрдЯреЗрдб рдПрдиреНрдХреЛрдбрд░/рдбрд┐рдХреЛрдбрд░

рдлрд┐рд▓реНрдЯрд░рдХреЛ рдЫреЛрдЯреЛ рд╡рд┐рд╡рд░рдг рдкрдЫрд┐, рдкреНрд░рдХрд╛рд░рдХреЛ рдирд╛рдо рджреЗрдЦрд╛рдЗрдиреНрдЫ, рдЬреБрди рдпреЛ рдлрд┐рд▓реНрдЯрд░рдХреЛ рдирдпрд╛рдБ рдЙрджрд╛рд╣рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдирд┐рдореНрдирдорд╛, рд╣рд╛рдореА рдпреЛ рд╕реВрдЪреАрд▓рд╛рдИ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрдиреЗрдЫреМрдВред

рд▓рд┐рдирдХреНрд╕ Ubuntu рдЕрдиреНрддрд░реНрдЧрдд рд╕реНрдерд╛рдкрдирд╛

рдЕрдм рд╣рд╛рдореА рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛ рдорд┐рдбрд┐рдпрд╛ рд╕реНрдЯреНрд░рд┐рдорд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рдпрд╕рдХреЛ рд╕рд╛рде рд╣рд╛рдореНрд░реЛ рдкрд╣рд┐рд▓реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗрдЫреМрдВред

Ubuntu рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдХрдореНрдкреНрдпреБрдЯрд░ рд╡рд╛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдорд╛ 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