เบเบฒเบ™เบชเบณเบซเบผเบงเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ Mediastreamer2 VoIP. เบžเบฒเบเบ—เบต 1

เป€เบญเบเบฐเบชเบฒเบ™เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเปเบกเปˆเบ™เป€เบญเบปเบฒเบกเบฒเบˆเบฒเบเบ‚เบญเบ‡เบ‚เป‰เบญเบ เบŠเปˆเบญเบ‡ zen.

เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต

เบšเบปเบ”เบ‚เบฝเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบŠเบธเบ”เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบชเบทเปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เป‚เบ”เบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ Mediastreamer2. เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบˆเบฐเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ—เบฑเบเบชเบฐเบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบˆเบธเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ Linux เปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเปƒเบ™เบžเบฒเบชเบฒ C.

Mediastreamer2 เปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ VoIP เบ—เบตเปˆเบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡เป‚เบ„เบ‡เบเบฒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบš voip เบŠเบญเบšเปเบงเป€เบ›เบตเบ”เปเบซเบผเปˆเบ‡เบ—เบตเปˆเบ™เบดเบเบปเบก. เป‚เบ—เบฅเบฐเบชเบฑเบš. เปƒเบ™ Linphone Mediastreamer2 เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบชเบฝเบ‡เปเบฅเบฐเบงเบดเบ”เบตเป‚เบญ. เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เปƒเบ™เบซเบ™เป‰เบฒ Mediastreamer เบ™เบตเป‰. เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เปเบกเปˆเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰: GitLab.

เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก, เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เปเบฒเบงเปˆเบฒ Mediastreamer2, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบ„เบงเบฒเบกเบซเบกเบฒเบเบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบเบ‚เบญเบ‡เบ•เบปเบ™: "เบชเบทเปˆเบกเบงเบ™เบŠเบปเบ™ streamer".

เบ›เบฐเบซเบงเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เปเบ•เปˆเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เป‚เบ”เบเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบกเบฑเบ™, เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบกเบฑเบ™เปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” เบเบฐเบžเบดเบš, เป€เบŠเบดเปˆเบ‡, เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เปเบกเปˆเบ™, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เบซเปˆเบฒเบ‡เป„เบเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบเบฑเบš GStreamer. เป€เบกเบทเปˆเบญเบชเบปเบกเบ—เบฝเบšเบเบฑเบšเบชเบทเปˆ streamer เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบกเบตเบ™เป‰เปเบฒเบซเบ™เบฑเบเป€เบšเบปเบฒเบเบงเปˆเบฒ. เบฎเบธเปˆเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡ Linphone เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™ 2001, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบทเปˆเบกเบงเบ™เบŠเบปเบ™ streamer เบกเบตเปเบฅเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบเบทเบญเบš 20 เบ›เบต.

เบซเบปเบงเปƒเบˆเบ‚เบญเบ‡ media streamer เปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ "Data flow" (เบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™). เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบเบฒเบ™เบชเบณเบซเบผเบงเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ Mediastreamer2 VoIP. เบžเบฒเบเบ—เบต 1

เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ™เบตเป‰, เบชเบนเบ”เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบเบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™, เปเบ•เปˆเป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™ (เบเบฒเบŸ) เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบฅเบฝเบ‡เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเปƒเบ”เป†. เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบ•เบปเบงเบเบญเบ‡.

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบชเบทเปˆเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบ•เบปเบงเบเบญเบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบฅเบฐเบชเบปเปˆเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ RTP เบ‚เบญเบ‡เป‚เบ—เบฅเบฐเบชเบฑเบš VoIP.

เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบœเบฐเบชเบปเบกเบœเบฐเบชเบฒเบ™เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ•เบปเบ™เป€เบญเบ‡เบกเบฑเบ, เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เปƒเบซเบกเปˆ, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ media streamer เป€เบ›เบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป€เบญเบเบฐเบฅเบฒเบ”, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบญเบทเปˆเบ™เป†. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เป‚เบ„เบ‡เบเบฒเบ™เบชเบฒเบกเบฒเบ”เบขเบนเปˆเปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ‚เบญเบ‡ VoIP, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบ”เป‰เบงเบเบ•เบปเบงเป€เบญเบ‡.

เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบญเบธเบ”เบปเบกเบชเบปเบกเบšเบนเบ™เปเบฅเบฐ, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเปเบฅเป‰เบง, เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบญเบญเบเปเบšเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡. เปเบ•เปˆเบ—เปเบฒเบญเบดเบ”, เปƒเบซเป‰เบญเบฐเบ—เบดเบšเบฒเบเบ•เบปเบงเบเบญเบ‡เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเบ—เบตเปˆเบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบ•เบปเบงเบ–เปˆเบฒเบเบ—เบญเบ”เบชเบทเปˆ. เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ:

เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบชเบฝเบ‡

เบšเบฑเบ™เบ—เบถเบเบชเบฝเบ‡ เปเบฅเบฐเบซเบผเบดเป‰เบ™เบ„เบทเบ™

  • Alsa (Linux): 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)
  • เบชเบดเบฅเบฐเบ›เบฐ (Linux): MS_ARTS_WRITE, MS_ARTS_READ
  • DirectSound (Windows): MS_WINSNDDS_WRITE, MS_WINSNDDS_READ
  • เบ•เบปเบงเบซเบผเบดเป‰เบ™เป„เบŸเบฅเปŒ (เป„เบŸเบฅเปŒ raw/wav/pcap) (Linux): MS_FILE_PLAYER
  • เบ•เบปเบงเบซเบผเบดเป‰เบ™เป„เบŸเบฅเปŒ (เป„เบŸเบฅเปŒเบ”เบดเบš/wav) (Windows): MS_WINSND_READ
  • เบ‚เบฝเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒ (เป„เบŸเบฅเปŒ wav) (Linux): MS_FILE_REC
  • เบ‚เบฝเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒ (เป„เบŸเบฅเปŒ wav) (Windows): MS_WINSND_WRITE
  • Mac Audio Unit (Mac OS X)
  • MME (Windows)
  • OSS (Linux): MS_OSS_WRITE, MS_OSS_READ
  • PortAudio (Mac OS X)
  • PulseAudio (Linux): MS_PULSE_WRITE, MS_PULSE_READ
  • เบชเบฝเบ‡ Windows (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
  • Linear 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
  • Equalizer: MS_EQUALIZER
  • เป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบชเบปเบก: MS_MIXER
  • Packet Loss Compensator (PLC): MS_GENERIC_PLC
  • เบ•เบปเบงเบ•เบปเบงเบขเปˆเบฒเบ‡: MS_RESAMPLE
  • เป€เบ„เบทเปˆเบญเบ‡เบเบงเบ”เบˆเบฑเบšเบชเบฝเบ‡: MS_TONE_DETECTOR
  • เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบฅเบฐเบ”เบฑเบšเบชเบฝเบ‡ เปเบฅเบฐเบเบฒเบ™เบงเบฑเบ”เปเบ—เบเบฅเบฐเบ”เบฑเบšเบชเบฑเบ™เบเบฒเบ™: MS_VOLUME

เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบงเบดเบ”เบตเป‚เบญ

เบšเบฑเบ™เบ—เบถเบเบงเบดเบ”เบตเป‚เบญ เปเบฅเบฐเบซเบผเบดเป‰เบ™เบ„เบทเบ™

  • Android capture
  • เบเบฒเบ™เบซเบผเบดเป‰เบ™ Android
  • AV Foundation capture (iOS)
  • เบเบฒเบ™เบซเบผเบดเป‰เบ™ AV Foundation (iOS)
  • DirectShow Capture (Windows)
  • เบเบฒเบ™เบซเบผเบดเป‰เบ™ DrawDib (Windows)
  • เบเบฒเบ™เบซเบผเบดเป‰เบ™เบžเบฒเบเบ™เบญเบ - เบเบฒเบ™เบชเบปเปˆเบ‡เบงเบดเบ”เบตเป‚เบญเป„เบ›เบซเบฒเบŠเบฑเป‰เบ™เป€เบ—เบดเบ‡
  • เบเบฒเบ™เบซเบผเบดเป‰เบ™ GLX (Linux): MS_GLXVIDEO
  • Mire - เบฎเบนเบšเป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเบชเบฑเบ‡เป€เบ„เบฒเบฐ: MS_MIRE
  • เบเบฒเบ™เบซเบผเบดเป‰เบ™ OpenGL (Mac OS X)
  • เบเบฒเบ™เบซเบผเบดเป‰เบ™ OpenGL ES2 (Android)
  • Quicktime Capture (Mac OS X)
  • เบเบฒเบ™เบซเบผเบดเป‰เบ™ SDL: MS_SDL_OUT
  • เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบฎเบนเบšเบžเบฒเบšเบ„เบปเบ‡เบ—เบตเปˆ: MS_STATIC_IMAGE
  • เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบงเบดเบ”เบตเป‚เบญเบชเบณเบฅเบฑเบš Linux (V4L) (Linux): MS_V4L
  • เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบงเบดเบ”เบตเป‚เบญเบชเบณเบฅเบฑเบš Linux 2 (V4L2) (Linux): MS_V4L2_CAPTURE
  • เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ Video4windows (DirectShow) (Windows)
  • เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ Video4windows (DirectShow) (Windows CE)
  • เบงเบดเบ”เบตเป‚เบญเบชเบณเบฅเบฑเบš Windows (vfw) capture (Windows)
  • เบเบฒเบ™เบซเบผเบดเป‰เบ™ 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_THEORA_ENC, MS_THEORA_DEC
  • VP8: MS_VP8_ENC, MS_VP8_DEC

เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบงเบดเบ”เบตเป‚เบญ

  • เบžเบฒเบšเบ–เปˆเบฒเบ jpeg
  • เบ•เบปเบงเปเบ›เบ‡เบฎเบนเบšเปเบšเบš Pixel: 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 เป€เบฅเบฑเปˆเบ‡เบ•เบปเบงเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”/เบ•เบปเบงเบ–เบญเบ”เบฅเบฐเบซเบฑเบ”

เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบชเบฑเป‰เบ™เป†เบ‚เบญเบ‡เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡, เบŠเบทเปˆเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ–เบทเบเบชเบฐเปเบ”เบ‡, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบซเบกเปˆเบ‚เบญเบ‡เบ•เบปเบงเบเบญเบ‡เบ™เบตเป‰. เปƒเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เปเปˆเป„เบ›เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบญเป‰เบฒเบ‡เป€เบ–เบดเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ™เบตเป‰.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบฒเบเปƒเบ•เป‰ Linux Ubuntu

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡ media streamer เปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเปเบฅเบฐเบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบšเบกเบฑเบ™.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Mediastremer2 เปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบซเบผเบทเป€เบ„เบทเปˆเบญเบ‡ virtual เปเบฅเปˆเบ™ Ubuntu เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบ—เบฑเบเบชเบฐเบžเบดเป€เบชเบ”เปƒเบ”เป†. เบ—เบตเปˆเบ™เบตเป‰เปเบฅเบฐเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰, เบชเบฑเบ™เบเบฒเบฅเบฑเบ "$" เบˆเบฐเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡ shell prompt เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เป‰เบญเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡. เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ–เป‰เบฒเบขเบนเปˆเปƒเบ™เบฅเบฒเบเบŠเบทเปˆเป€เบˆเบปเป‰เบฒเป€เบซเบฑเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ™เบตเป‰เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ™เบตเป‰เปเบกเปˆเบ™เป€เบชเบฑเป‰เบ™เบ—เบตเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡เบ–เบทเบเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™ terminal.

เบกเบฑเบ™เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเปƒเบ™เป„เบฅเบเบฐเบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”.

เบเบณเบฅเบฑเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบžเบฑเบเป€เบเบฑเบ” libmediastremer-dev

เป€เบ›เบตเบ”เปƒเบŠเป‰ terminal เปเบฅเบฐเบžเบดเบกเบ„เปเบฒเบชเบฑเปˆเบ‡:

$ sudo apt-get update

เบ—เปˆเบฒเบ™เบˆเบฐเบ–เบทเบเบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบกเบตเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡, เปƒเบชเปˆเบกเบฑเบ™เปเบฅเบฐเบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบŠเบธเบ”เบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบกเบฑเบ™. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™:

$ sudo apt-get install libmediastreamer-dev

เปเบžเบฑเบเป€เบเบ”เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™ เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” media streamer เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบˆเบฐเบ–เบทเบเบ”เบฒเบงเป‚เบซเบผเบ” เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

เบ‚เบฐเปœเบฒเบ”เบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ” dependency 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 compiler เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบกเบฑเบ™:

$ sudo apt-get install gcc

เบžเบงเบเป€เบฎเบปเบฒเบเบงเบ”เป€เบšเบดเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบชเบฐเบšเบฑเบš compiler:

$ 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 เบชเบฐเปเบ”เบ‡, เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบšเบฑเบ”เบชเบฝเบ‡. เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบชเบทเปˆเบกเบงเบ™เบŠเบปเบ™ streamer เบ•เบปเบ™เป€เบญเบ‡เป€เบŠเบทเปˆเบญเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เบ›เบปเบเบเบฐเบ•เบด. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰, เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบšเปเปˆโ€‹เป€เบ•เบฑเบกโ€‹เปƒเบˆโ€‹เป€เบซเบฑเบ™โ€‹เบ”เบตโ€‹เบเบฑเบšโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒ.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบ•เบฑเป‰เบ‡เปƒเบˆเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš media streamer. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” media streamer, เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบฎเบงเบšเบฎเบงเบก, เปเบฅเบฐเบ™เบณเปƒเบŠเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเปˆเบ™เบ—เบปเบ”เบฅเบญเบ‡, เบเบงเบ”เบชเบญเบšเบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ เปเบฅเบฐ media streamer เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบณเป€เบฅเบฑเบ”เปเบฅเป‰เบง.

เบ•เปเปˆเป„เบ› เบšเบปเบ”เบ„เบงเบฒเบก เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบˆเบฐเบ›เบฐเบเบญเบšเปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบชเบฑเบ™เบเบฒเบ™เบชเบฝเบ‡เปƒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ‚เบญเบ‡เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบซเบผเบฒเบ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com