ΠΠ°ΡΠ΅ΡΠΈΠ°Π»ΡΡ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° Π΅ Π²Π·Π΅Ρ ΠΎΡ ΠΌΠΎΡ
Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π’Π°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π΅ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΡΡΠ°ΡΠΈΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΡΠ»ΡΠΈΠΌΠ΅Π΄ΠΈΡ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Mediastreamer2. ΠΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡΡΠ° Π²ΠΊΠ»ΡΡΠ²Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΡΠΌΠ΅Π½ΠΈΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π² Linux ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° C.
Mediastreamer2 Π΅ VoIP ΠΌΠ°ΡΠΈΠ½Π°ΡΠ° Π·Π°Π΄ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ Π·Π° VoIP ΡΠ΅Π»Π΅ΡΠΎΠ½ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄.
ΠΠΎ-Π½Π°ΡΠ°ΡΡΠΊ Π² ΡΠ΅ΠΊΡΡΠ°, Π·Π° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ, Π²ΠΌΠ΅ΡΡΠΎ Π΄ΡΠΌΠ°ΡΠ° Mediastreamer2 ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΡΡΠΊΠ°ΡΠ° ΠΉ Π½ΠΎΡΠ°ΡΠΈΡ: βmedia streamerβ.
ΠΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ ΠΌΡ Π½Π΅ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠ½Π°, Π½ΠΎ ΡΡΠ΄Π΅ΠΉΠΊΠΈ ΠΏΠΎ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄, ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°
Π ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈΡ ΡΡΡΠΈΠΌΠ΅Ρ Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π½Π°ΡΠ΅ΡΠ΅Π½Π° "ΠΠΎΡΠΎΠΊ ΠΎΡ Π΄Π°Π½Π½ΠΈ" (ΠΏΠΎΡΠΎΠΊ ΠΎΡ Π΄Π°Π½Π½ΠΈ). ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠ°ΠΊΠ°Π²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΡΠΈΠ³ΡΡΠ°ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ.
Π ΡΠ°Π·ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΡΡ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π½Π΅ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Π½ ΠΊΠΎΠ΄, Π° ΠΎΡ ΡΡ Π΅ΠΌΠ° (Π³ΡΠ°ΡΠΈΠΊΠ°) Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΡΠ΅Π΄. Π’Π΅Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ Π½Π°ΡΠΈΡΠ°Ρ ββΡΠΈΠ»ΡΡΠΈ.
Π’Π°Π·ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΡΠ»ΡΠΈΠΌΠ΅Π΄ΠΈΡ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΈΠ»ΡΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΊΡΠΌ ΡΡ Π΅ΠΌΠ°ΡΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° VoIP ΡΠ΅Π»Π΅ΡΠΎΠ½ RTP.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΠ»ΡΡΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΡΡ Π΅ΠΌΠΈ, ΠΏΡΠΎΡΡΠΎΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ ΡΠΈΠ»ΡΡΠΈ, Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈΡ ΡΡΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΡΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΠΎΡΠ΄Π΅Π»Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΌΡ Π² Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π² ΠΎΠ±Π»Π°ΡΡΡΠ° Π½Π° 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
- Π€Π°ΠΉΠ»ΠΎΠ² ΠΏΠ»Π΅ΠΉΡΡ (raw/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 Sound (Windows)
ΠΡΠ΄ΠΈΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅/Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅
- G.711 a-Π·Π°ΠΊΠΎΠ½: 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
- ΠΡΠΌΡΠ½Π° Π½Π° Π΅Ρ ΠΎΡΠΎ (speex): MS_SPEEX_EC
- ΠΠΊΠ²Π°Π»Π°ΠΉΠ·Π΅Ρ: MS_EQUALIZER
- ΠΠΈΠΊΡΠ΅Ρ: MS_MIXER
- ΠΠΎΠΌΠΏΠ΅Π½ΡΠ°ΡΠΎΡ Π·Π° Π·Π°Π³ΡΠ±Π° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ (PLC): MS_GENERIC_PLC
- Resampler: MS_RESAMPLE
- Π’ΠΎΠ½ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡ: MS_TONE_DETECTOR
- ΠΠΎΠ½ΡΡΠΎΠ» Π½Π° ΡΠΈΠ»Π°ΡΠ° Π½Π° Π·Π²ΡΠΊΠ° ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΠΈΠ³Π½Π°Π»Π°: MS_VOLUME
ΠΠΈΠ΄Π΅ΠΎ ΡΠΈΠ»ΡΡΠΈ
ΠΠ°ΡΠ½Π΅ΠΌΠ°Π½Π΅ ΠΈ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ
- Π°Π½Π΄ΡΠΎΠΈΠ΄ Π·Π°ΡΠ½Π΅ΠΌΠ°Π½Π΅
- Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° android
- ΠΠ°ΡΠ½Π΅ΠΌΠ°Π½Π΅ Π½Π° AV Foundation (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) (Windows)
- XV Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ (Linux)
ΠΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅/Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅
- H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, ΡΠ½ΡΠ³: MS_MJPEG_DEC, MS_H263_ENC, MS_H263_DEC
- H.264 (ΡΠ°ΠΌΠΎ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ): MS_H264_DEC
- Theora: 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 Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ Π΅Π½ΠΊΠΎΠ΄Π΅Ρ/Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ
Π‘Π»Π΅Π΄ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΈΠ»ΡΡΡΠ° ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠΈΠΏΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ² Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° ΡΠΎΠ·ΠΈ ΡΠΈΠ»ΡΡΡ. ΠΠΎ-Π½Π°ΡΠ°ΡΡΠΊ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ·ΠΎΠ²Π°Π²Π°ΠΌΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΡΠΏΠΈΡΡΠΊ.
ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡ ΠΏΠΎΠ΄ Linux Ubuntu
Π‘Π΅Π³Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ ΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈΡ ΡΡΡΠΈΠΌΠ΅Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ° ΠΈ ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΡΡΠ²ΠΎΡΠΎ ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½Π΅Π³ΠΎ.
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Mediastremer2 Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, ΡΠ°Π±ΠΎΡΠ΅ΡΠ° Ρ Ubuntu, Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΡΠΌΠ΅Π½ΠΈΡ. Π’ΡΠΊ ΠΈ ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΡΡ "$" ΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΠΏΠΎΠ΄ΠΊΠ°Π½Π°ΡΠ° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. Π’Π΅Π·ΠΈ. Π°ΠΊΠΎ Π² ΡΠΏΠΈΡΡΠΊΠ° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠ·ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΠ΅Π΄Π°, ΡΠΎΠ²Π° Π΅ ΡΠ΅Π΄ΡΡ, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΡΠ΅, ΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΡΡΠΏΠΊΠΈΡΠ΅ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π²Π°ΡΠΈΡΡ ΠΊΠΎΠΌΠΏΡΡΡΡ ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ.
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° libmediastremer-dev
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΈ Π²ΡΠ²Π΅Π΄Π΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°:
$ sudo apt-get update
Π©Π΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠΌΠΎΠ»Π΅Π½ΠΈ Π·Π° ΠΏΠ°ΡΠΎΠ»Π°, Π·Π° Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π²ΡΠ²Π΅Π΄Π΅ΡΠ΅ Ρ ΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΡΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ²ΠΎΠΈΡΠ΅ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅:
$ sudo apt-get install libmediastreamer-dev
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΠ°ΠΌΠ°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΠΌΠ΅Π΄ΠΈΠ΅Π½ ΡΡΡΠΈΠΉΠΌΡΡ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ.
ΠΠ±ΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈΡΠ΅ 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 ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΠΈ ΠΏΡΠΈΠ΄ΡΡΠΆΠ°Π²Π°ΡΠΈΡΠ΅ Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ:
$ 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