ΠΠ°ΡΠ΅ΡΠΈΠ°Π» ΡΡΠ°ΡΡΠΈ Π²Π·ΡΡ Ρ ΠΌΠΎΠ΅Π³ΠΎ
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΡΠ° ΡΡΠ°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠ΅ΡΠΈΠΈ ΡΡΠ°ΡΠ΅ΠΉ ΠΎ ΡΠ΅Π°Π»ΡΠ°ΠΉΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΠΈΠΆΠΊΠ° Mediastreamer2. Π Ρ ΠΎΠ΄Π΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Linux ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ.
Mediastreamer2 ΡΡΠΎ VoIP-Π΄Π²ΠΈΠΆΠΎΠΊ, Π»Π΅ΠΆΠ°ΡΠΈΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ open-source ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ voip-ΡΠ΅Π»Π΅ΡΠΎΠ½Π°
ΠΠ°Π»Π΅Π΅ Π² ΡΠ΅ΠΊΡΡΠ΅, Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°, Π²ΠΌΠ΅ΡΡΠΎ ΡΠ»ΠΎΠ²Π° Mediastreamer2 Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΡΡΡΠΊΡΡ Π½ΠΎΡΠ°ΡΠΈΡ: «ΠΌΠ΅Π΄ΠΈΠ°ΡΡΡΠΈΠΌΠ΅Ρ».
ΠΡΡΠΎΡΠΈΡ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΡΠ½Π°, Π½ΠΎ ΡΡΠ΄Ρ ΠΏΠΎ Π΅Π³ΠΎ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ, ΠΎΠ½ ΡΠ°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ
Π ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅Π΄ΠΈΠ°ΡΡΡΠΈΠΌΠ΅ΡΠ° Π»Π΅ΠΆΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ «Data flow» (ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ ). ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅.
Π ΡΡΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π·Π°Π΄Π°Π΅ΡΡΡ Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π° ΡΡ Π΅ΠΌΠΎΠΉ (Π³ΡΠ°ΡΠΎΠΌ) ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠΈΠ»ΡΡΡΠ°ΠΌΠΈ.
Π’Π°ΠΊΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠ΅Π΄ΠΈΠ° Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠ»ΡΡΡΠΎΠ², ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ Π² ΡΡ Π΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ RTP-ΡΡΠ°ΡΠΈΠΊΠ° VoIP-ΡΠ΅Π»Π΅ΡΠΎΠ½Π°.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡ ΡΠΈΠ»ΡΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΡ Π΅ΠΌΡ, ΠΏΡΠΎΡΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½ΠΎΠ²ΡΡ ΡΠΈΠ»ΡΡΡΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅Π΄ΠΈΠ°ΡΡΡΠΈΠΌΠ΅ΡΠ° Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ . ΠΡΠΈΡΡΠΌ, ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ VoIP, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠΈΠ»ΡΡΡΡ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΡΠΊΠ°ΠΌΠΈ.
ΠΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠ°Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΈΠ»ΡΡΡΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ³Π°ΡΠ° ΠΈ ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π° ΡΠΈΠ»ΡΡΡΠ°ΠΌΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠΏΠΈΡΠ΅ΠΌ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΌΠ΅Π΄ΠΈΠ°ΡΡΡΠΈΠΌΠ΅ΡΠΎΠΌ. ΠΠΎΡ ΠΈΡ ΡΠΏΠΈΡΠΎΠΊ:
ΠΠ²ΡΠΊΠΎΠ²ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ
ΠΠ°Ρ Π²Π°Ρ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π²ΡΠΊΠ°
- Alsa (Linux): MS_ALSA_WRITE, MS_ALSA_READ
- Android native sound (libmedia): MS_ANDROID_SOUND_WRITE, MS_ANDROID_SOUND_READ
- Audio Queue Service (Mac OS X): MS_AQ_WRITE, MS_AQ_READ
- Audio Unit Service (Mac OS X)
- Arts (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
- ΠΠΈΠ½Π΅ΠΉΠ½Π°Ρ ΠΠΠ: 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
- ΠΠΊΠ²Π°Π»Π°ΠΉΠ·Π΅Ρ: MS_EQUALIZER
- ΠΠΈΠΊΡΠ΅Ρ: MS_MIXER
- ΠΠΎΠΌΠΏΠ΅Π½ΡΠ°ΡΠΎΡ ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² (PLC): MS_GENERIC_PLC
- Π Π΅ΡΠ΅ΠΌΠΏΠ»Π΅Ρ: MS_RESAMPLE
- ΠΠ΅ΡΠ΅ΠΊΡΠΎΡ ΡΠΎΠ½ΠΎΠ²: MS_TONE_DETECTOR
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠΎΠΌΠΊΠΎΡΡΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Ρ ΡΠΈΠ³Π½Π°Π»Π°: MS_VOLUME
Π€ΠΈΠ»ΡΡΡΡ Π²ΠΈΠ΄Π΅ΠΎ
ΠΠ°Ρ Π²Π°Ρ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ
- Android Π·Π°Ρ Π²Π°Ρ
- Android Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅
- AV Foundation Π·Π°Ρ Π²Π°Ρ (iOS)
- AV Foundation Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ (iOS)
- DirectShow Π·Π°Ρ Π²Π°Ρ (Windows)
- DrawDib Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ (Windows)
- External Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ β ΠΡΠΏΡΠ°Π²ΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎ Π½Π° Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ
- GLX Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ (Linux): MS_GLXVIDEO
- Mire β Synthetic moving picture: MS_MIRE
- OpenGL Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ (Mac OS X)
- OpenGL ES2 Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ (Android)
- Quicktime Π·Π°Ρ Π²Π°Ρ (Mac OS X)
- SDL Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: MS_SDL_OUT
- ΠΡΠ²ΠΎΠ΄ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ: MS_STATIC_IMAGE
- Video For Linux (V4L) Π·Π°Ρ Π²Π°Ρ (Linux): MS_V4L
- Video For Linux 2 (V4L2) Π·Π°Ρ Π²Π°Ρ (Linux): MS_V4L2_CAPTURE
- Video4windows (DirectShow) Π·Π°Ρ Π²Π°Ρ (Windows)
- Video4windows (DirectShow) Π·Π°Ρ Π²Π°Ρ (Windows CE)
- Video For Windows (vfw) Π·Π°Ρ Π²Π°Ρ (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
- Theora: MS_THEORA_ENC, MS_THEORA_DEC
- VP8: MS_VP8_ENC, MS_VP8_DEC
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎ
- JPEG snapshot
- Pixel format converter: 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 Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠΎΠ±ΡΡ Π½Π°Π²ΡΠΊΠΎΠ². ΠΠ΄Π΅ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ «$» Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ shell Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄. Π’.Π΅. Π΅ΡΠ»ΠΈ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΎ Π·Π½Π°ΡΠΈΡ ΡΡΠΎ ΡΡΡΠΎΠΊΠ° Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅.
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠΈ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° libmediastremer-dev
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π½Π°Π±ΠΈΡΠ°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ sudo apt-get update
ΠΡΠ΄Π΅Ρ Π·Π°ΠΏΡΠΎΡΠ΅Π½ ΠΏΠ°ΡΠΎΠ»Ρ Π½Π° Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π²Π΅Π΄ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΠ±Π½ΠΎΠ²ΠΈΡ ΡΠ²ΠΎΠΈ Π±Π°Π·Ρ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ:
$ sudo apt-get install libmediastreamer-dev
ΠΡΠ΄ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ°ΡΠ°Π½Ρ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ ΡΠ°ΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΌΠ΅Π΄ΠΈΠ°ΡΡΡΠΈΠΌΠ΅ΡΠ°.
ΠΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΊΠ°ΡΠ°Π½Π½ΡΡ deb-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΡΠΎΡΡΠ°Π²ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 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/
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘ΠΈ ΠΈ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π΅ΠΌΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ:
$ 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.
Π‘Π±ΠΎΡΠΊΠ° ΠΈ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π² home ΠΏΠ°ΠΏΠΊΡ Π΄Π»Ρ Π½Π°ΡΠΈΡ ΡΡΠ΅Π±Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Ρ mstutorial:
$ mkdir ~/mstutorial
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ Π²Π°ΡΠΈΠΌ Π»ΡΠ±ΠΈΠΌΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Π‘ΠΈ-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ 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, ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΠΎΠΉ. Π‘Π°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠ΅Π΄ΠΈΠ°ΡΡΡΠΈΠΌΠ΅ΡΠ° ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎ Π½Π΅Π²ΠΎΠ»Π΅ ΡΠΎΠ³Π»Π°ΡΠΈΠΌΡΡ Ρ Π½ΠΈΠΌΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ΅Π΄ΠΈΠ°ΡΡΡΠΈΠΌΠ΅ΡΠΎΠΌ. ΠΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΌΠ΅Π΄ΠΈΠ°ΡΡΡΠΈΠΌΠ΅ΡΠ°, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ, Π° ΠΌΠ΅Π΄ΠΈΠ°ΡΡΡΠΈΠΌΠ΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com