Mediastreamer2 VoIP เดŽเดžเตเดšเดฟเตป เดชเดฐเตเดฏเดตเต‡เด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดญเดพเด—เด‚ 1

เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเตฝ เดŽเดจเตเดฑเต†เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดŸเตเดคเตเดคเดคเดพเดฃเต เดธเต†เตป เดšเดพเดจเตฝ.

เด†เดฎเตเด–เด‚

เดˆ เดฒเต‡เด–เดจเด‚ Mediastreamer2 เดŽเดžเตเดšเดฟเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดคเดคเตเดธเดฎเดฏ เดฎเต€เดกเดฟเดฏ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฒเต‡เด–เดจเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เดชเดฐเดฎเตเดชเดฐเดฏเตเดŸเต† เดคเตเดŸเด•เตเด•เดฎเดพเดฃเต. เด…เดตเดคเดฐเดฃเดคเตเดคเดฟเตฝ เดฒเดฟเดจเด•เตเดธเต เดŸเต†เตผเดฎเดฟเดจเดฒเดฟเตฝ เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เดธเดฟ เดญเดพเดทเดฏเดฟเตฝ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดžเตเดž เด•เดดเดฟเดตเตเด•เตพ เด‰เตพเดชเตเดชเต†เดŸเตเด‚.

เดฎเต€เดกเดฟเดฏเดธเตเดŸเตเดฐเต€เดฎเตผ2 เดŽเดจเตเดจเดคเต เดœเดจเดชเตเดฐเดฟเดฏ เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ voip เดซเต‹เตบ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเต เดชเดฟเดจเตเดจเดฟเดฒเต† VoIP เดŽเดžเตเดšเดฟเดจเดพเดฃเต. เดฒเดฟเตปเดซเต‹เตบ. Linphone Mediastreamer2 เดถเดฌเตเดฆเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹เดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดŽเดฒเตเดฒเดพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต. เดŽเดžเตเดšเดฟเตป เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเตเดŸเต† เดตเดฟเดถเดฆเดฎเดพเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต เดˆ เดฎเต€เดกเดฟเดฏเดธเตเดŸเตเดฐเต€เดฎเตผ เดชเต‡เดœเดฟเตฝ เด•เดพเดฃเดพเด‚. เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เด‡เดตเดฟเดŸเต†เดฏเตเดฃเตเดŸเต: GitLab.

เดตเดพเดšเด•เดคเตเดคเดฟเตฝ, เดธเต—เด•เดฐเตเดฏเดพเตผเดคเตเดฅเด‚, Mediastreamer2 เดŽเดจเตเดจ เดตเดพเด•เตเด•เดฟเดจเต เดชเด•เดฐเด‚ เดžเด™เตเด™เตพ เด…เดคเดฟเดจเตเดฑเต† เดฑเดทเตเดฏเตป เดจเตŠเดŸเตเดŸเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚: "เดฎเต€เดกเดฟเดฏ เดธเตเดŸเตเดฐเต€เดฎเตผ".

เด…เดคเดฟเดจเตเดฑเต† เดธเตƒเดทเตเดŸเดฟเดฏเตเดŸเต† เดšเดฐเดฟเดคเตเดฐเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด…เดคเดฟเดจเตเดฑเต† เดธเต‹เดดเตโ€Œเดธเต เด•เต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดฎเตเดชเต‹เตพ, เด…เดคเต เดฎเตเดฎเตเดชเต เดฒเตˆเดฌเตเดฐเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเตเดจเตเดจเต เด—เตเดฒเดฟเดฌเต, เด…เดคเต เดชเต‹เดฒเต†, เดธเดพเดงเตเดฏเดฎเดพเดฏ เด’เดฐเต เดตเดฟเดฆเต‚เดฐ เดฌเดจเตเดงเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดธเต‚เดšเดจ เดจเตฝเด•เตเดจเตเดจเต เดœเดฟเดธเตเดŸเตเดฐเต€เดฎเตผ. เด‡เดคเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตเดฎเตเดชเต‹เตพ เดฎเต€เดกเดฟเดฏ เดธเตเดŸเตเดฐเต€เดฎเตผ เด•เต‚เดŸเตเดคเตฝ เดญเดพเดฐเด‚ เด•เตเดฑเดžเตเดžเดคเดพเดฏเดฟ เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดฒเดฟเตปเดซเต‹เดฃเดฟเดจเตเดฑเต† เด†เดฆเตเดฏ เดชเดคเดฟเดชเตเดชเต 2001 เตฝ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต, เด…เดคเดฟเดจเดพเตฝ เด‡เดชเตเดชเต‹เตพ เดฎเต€เดกเดฟเดฏ เดธเตเดŸเตเดฐเต€เดฎเตผ เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต, เดเด•เดฆเต‡เดถเด‚ 20 เดตเตผเดทเดฎเดพเดฏเดฟ เดตเดฟเด•เดธเดฟเด•เตเด•เตเดจเตเดจเต.

เดฎเต€เดกเดฟเดฏ เดธเตเดŸเตเดฐเต€เดฎเดฑเดฟเดจเตเดฑเต† เดนเตƒเดฆเดฏเดญเดพเด—เดคเตเดคเต "เดกเดพเดฑเตเดฑ เดซเตเดฒเต‹" (เดกเดพเดฑเตเดฑ เดซเตเดฒเต‹) เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจ เด’เดฐเต เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏเดฏเดพเดฃเต. เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏเดฏเตเดŸเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

Mediastreamer2 VoIP เดŽเดžเตเดšเดฟเตป เดชเดฐเตเดฏเดตเต‡เด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดญเดพเด—เด‚ 1

เดˆ เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเดฟเตฝ, เดกเดพเดฑเตเดฑ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เด’เดฐเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด•เต‹เดกเต เดฎเตเด–เต‡เดจเดฏเดฒเตเดฒ, เดฎเดฑเดฟเดšเตเดšเต เดเดคเต เด•เตเดฐเดฎเดคเตเดคเดฟเดฒเตเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดซเด‚เด—เตเดทเดจเตเด•เตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดธเตเด•เต€เด‚ (เด—เตเดฐเดพเดซเต) เดตเดดเดฟเดฏเดพเดฃเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต. เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเต† เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต.

VoIP เดซเต‹เตบ RTP เดŸเตเดฐเดพเดซเดฟเด•เต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต, เดŸเตเดฐเดพเตปเดธเตเดฎเดฟเดทเตป เดธเตเด•เต€เดฎเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดณเตเดณ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เดณเตเดŸเต† เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดฎเต€เดกเดฟเดฏ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เดˆ เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ เดธเดพเดงเตเดฏเดฎเดพเด•เตเด•เตเดจเตเดจเต.

เดเด•เดชเด•เตเดทเต€เดฏเดฎเดพเดฏ เดธเตเด•เต€เดฎเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต, เดชเตเดคเดฟเดฏ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เดณเตเดŸเต† เดฒเดณเดฟเดคเดฎเดพเดฏ เดตเดฟเด•เดธเดจเด‚, เด’เดฐเต เดธเตเดตเดคเดจเตเดคเตเดฐ เดชเตเดฐเดคเตเดฏเต‡เด• เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดพเดฏเดฟ เดฎเต€เดกเดฟเดฏ เดธเตเดŸเตเดฐเต€เดฎเตผ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ, เดฎเดฑเตเดฑเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เดณเดฟเตฝ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดธเตเดตเดฏเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเต เดธเดพเดงเตเดฏเดฎเดพเดฏเดคเดฟเดจเดพเตฝ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต VoIP เดซเต€เตฝเดกเดฟเดฒเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚.

เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดซเดฟเตฝเดŸเตเดŸเตผ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดตเดณเดฐเต† เดธเดฎเตเดชเดจเตเดจเดฎเดพเดฃเต, เด‡เดคเดฟเดจเด•เด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต†, เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดกเดฟเดธเตˆเดจเดฟเดจเตเดฑเต† เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดชเตเดฒเต€เด•เดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เดŽเดจเตเดจเดพเตฝ เด†เดฆเตเดฏเด‚, เดฎเต€เดกเดฟเดฏ เดธเตเดŸเตเดฐเต€เดฎเดฑเดฟเดจเตŠเดชเตเดชเด‚ เดตเดฐเตเดจเตเดจ เดฑเต†เดกเดฟเดฎเต†เดฏเตเดกเต เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เดตเดฟเดตเดฐเดฟเด•เตเด•เดพเด‚. เด…เดตเดฐเตเดŸเต† เดชเดŸเตเดŸเดฟเด• เด‡เดคเดพ:

เดถเดฌเตเดฆ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ

เด“เดกเดฟเดฏเต‹ เด•เตเดฏเดพเดชเตโ€Œเดšเตผ, เดชเตเดฒเต‡เดฌเดพเด•เตเด•เต

  • เด…เตฝเดธ (เดฒเดฟเดจเด•เตเดธเต): MS_ALSA_WRITE, MS_ALSA_READ
  • Android เดจเต‡เดฑเตเดฑเต€เดตเต เดถเดฌเตโ€Œเดฆเด‚ (เดฒเดฟเดฌเตเดฎเต€เดกเดฟเดฏ): 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
  • เดซเดฏเตฝ เดชเตเดฒเต‡เดฏเตผ (เดฑเต‹/เดตเดพเดตเต เดซเดฏเดฒเตเด•เตพ) (เดตเดฟเตปเดกเต‹เดธเต): MS_WINSND_READ
  • เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดŽเดดเตเดคเตเด• (wav เดซเดฏเดฒเตเด•เตพ) (เดฒเดฟเดจเด•เตเดธเต): MS_FILE_REC
  • เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดŽเดดเตเดคเตเด• (wav เดซเดฏเดฒเตเด•เตพ) (Windows): MS_WINSND_WRITE
  • Mac เด“เดกเดฟเดฏเต‹ เดฏเต‚เดฃเดฟเดฑเตเดฑเต (Mac OS X)
  • MME (เดตเดฟเตปเดกเต‹เดธเต)
  • OSS (เดฒเดฟเดจเด•เตเดธเต): MS_OSS_WRITE, MS_OSS_READ
  • PortAudio (Mac OS X)
  • เดชเตพเดธเต เด“เดกเดฟเดฏเต‹ (เดฒเดฟเดจเด•เตเดธเต): 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

เดตเต€เดกเดฟเดฏเต‹ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ

เดตเต€เดกเดฟเดฏเต‹ เด•เตเดฏเดพเดชเตโ€Œเดšเตผ, เดชเตเดฒเต‡เดฌเดพเด•เตเด•เต

  • android เด•เตเดฏเดพเดชเตโ€Œเดšเตผ
  • android เดชเตเดฒเต‡เดฌเดพเด•เตเด•เต
  • AV เดซเต—เดฃเตเดŸเต‡เดทเตป เด•เตเดฏเดพเดชเตโ€Œเดšเตผ (iOS)
  • AV เดซเต—เดฃเตเดŸเต‡เดทเตป เดชเตเดฒเต‡เดฌเดพเด•เตเด•เต (iOS)
  • เดกเดฏเดฑเด•เตเดŸเต เดทเต‹ เด•เตเดฏเดพเดชเตเดšเตผ (เดตเดฟเตปเดกเต‹เดธเต)
  • DrawDib เดชเตเดฒเต‡เดฌเดพเด•เตเด•เต (เดตเดฟเตปเดกเต‹เดธเต)
  • เดฌเดพเดนเตเดฏ เดชเตเดฒเต‡เดฌเดพเด•เตเด•เต - เดฎเตเด•เดณเดฟเดฒเต† เดฒเต†เดฏเดฑเดฟเดฒเต‡เด•เตเด•เต เดตเต€เดกเดฟเดฏเต‹ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต
  • GLX เดชเตเดฒเต‡เดฌเดพเด•เตเด•เต (เดฒเดฟเดจเด•เตเดธเต): MS_GLXVIDEO
  • เดฎเดฟเดฏเตผ - เดธเดฟเดจเตเดคเดฑเตเดฑเดฟเด•เต เดšเดฒเดฟเด•เตเด•เตเดจเตเดจ เดšเดฟเดคเตเดฐเด‚: MS_MIRE
  • OpenGL เดชเตเดฒเต‡เดฌเดพเด•เตเด•เต (Mac OS X)
  • OpenGL ES2 เดชเตเดฒเต‡เดฌเดพเด•เตเด•เต (Android)
  • เด•เตเดตเดฟเด•เตโ€ŒเดŸเตˆเด‚ เด•เตเดฏเดพเดชเตโ€Œเดšเตผ (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)
  • เดตเดฟเตปเดกเต‹เดธเดฟเดจเดพเดฏเตเดณเตเดณ เดตเต€เดกเดฟเดฏเต‹ (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_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 เดŽเตปเด•เต‹เดกเตผ/เดกเต€เด•เต‹เดกเตผ
  • เดธเดฟเตฝเด•เตเด•เต เดŽเตปเด•เต‹เดกเตผ/เดกเต€เด•เต‹เดกเตผ

    เดตเต€เดกเดฟเดฏเต‹ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ

  • 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/

เดตเดฟเด•เดธเดจ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดธเดฟ เด•เดฎเตเดชเตˆเดฒเดฑเตเด‚ เด…เดคเดฟเดจเต‹เดŸเตŠเดชเตเดชเดฎเตเดณเตเดณ เดŸเต‚เดณเตเด•เดณเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•:

$ 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