|
5 | 5 | + #### Web protocols:
|
6 | 6 | + #### *UDP*(User Datagram Protocol) is a [transport layer](https://en.wikipedia.org/wiki/OSI_model#Layer_4:_Transport_layer) protocol using connectionless communication. See [here](https://www.imperva.com/learn/ddos/udp-user-datagram-protocol) for more details.
|
7 | 7 | + #### *TCP*(Transmission Control Protocol) is a [transport layer](https://en.wikipedia.org/wiki/OSI_model#Layer_4:_Transport_layer) protocol using connection-oriented communication. See [this explanation](https://www.khanacademy.org/computing/computers-and-internet/xcae6f4a7ff015e7d:the-internet/xcae6f4a7ff015e7d:transporting-packets/a/transmission-control-protocol--tcp) on how TCP works.
|
8 |
| - + #### *RTP*(Real-time Transport Protocol) is an [application layer](https://en.wikipedia.org/wiki/OSI_model#Layer_7:_Application_layer) protocol for delivering real-time audio and video over IP networks. RTP packet structure is described [here](https://en.wikipedia.org/wiki/Real-time_Transport_Protocol#Packet_header). There is an extension of RTP - [`SRTP`](https://developer.mozilla.org/en-US/docs/Glossary/RTP) (Secure RTP), which adds security features and is used by [WebRTC](/glossary/glossary#webrtc). |
| 8 | + + #### *RTP*(Real-time Transport Protocol) is an [application layer](https://en.wikipedia.org/wiki/OSI_model#Layer_7:_Application_layer) protocol for delivering real-time audio and video over IP networks. RTP packet structure is described [here](https://en.wikipedia.org/wiki/Real-time_Transport_Protocol#Packet_header). There is an extension of RTP - [SRTP](https://developer.mozilla.org/en-US/docs/Glossary/RTP) (Secure RTP), which adds security features and is used by [WebRTC](/glossary/glossary#webrtc). |
9 | 9 | + #### *HTTP*(Hypertext Transfer Protocol) is an [application layer](https://en.wikipedia.org/wiki/OSI_model#Layer_7:_Application_layer) protocol for fetching data from a server by a client. It is used by [HLS](https://en.wikipedia.org/wiki/HTTP_Live_Streaming) and [MPEG-DASH](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) for media streaming.
|
10 | 10 | + #### (HTTP) *Long Polling* is a technique of keeping an open connection after the client's request for as long as new data is not available. This is more efficient than naive repeated polling by a client until new data is received.
|
11 | 11 | + #### *WebRTC*(Web Real-Time Communication) is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC). WebRTC implements three APIs: **MediaStream** used for acquiring media from the browser, **RTCPeerConnection** handling stable and efficient communication of streaming data between peers, and **RTCDataChannel** enabling a peer-to-peer exchange of arbitrary data with low latency and high throughput. Learn more about WebRTC [here](https://www.html5rocks.com/en/tutorials/webrtc/basics/).
|
|
31 | 31 |
|
32 | 32 |
|
33 | 33 | # Membrane Framework
|
34 |
| -+ #### *Pad* is an input or output of an [elements](/glossary/glossary#element) or a [bin](/glossary/glossary#bin). Output pads of one element are connected to input pads of another element. |
| 34 | ++ #### *Pad* is an input or output of an [elements](/glossary/glossary#element) or a [bin](/glossary/glossary#bin). Output pads of one element are connected to input pads of another element or bin. |
35 | 35 | + #### *Caps*(abbr. from capabilities) define [pads](/glossary/glossary#pad) specification, allowing us to determine whether two elements are compatible with each other.
|
36 | 36 | + #### *Pipeline* is a chain of linked [elements](/glossary/glossary#element) or [bins](/glossary/glossary#bin) which together accomplish some media processing task.
|
37 |
| -+ #### *Bin* is a container for elements, which allows for creating reusable groups of [elements](/glossary/glossary#element). |
| 37 | ++ #### *Bin* is a container for elements, which allows for creating reusable groups of [elements](/glossary/glossary#element). Bin can incorporate elements and other bins as well. |
38 | 38 | + #### *Buffer* is a fundamental structure in Membrane used to send data between elements.
|
39 | 39 | + #### *Element* is the most basic entity responsible for processing multimedia. Each element is created to solve one problem. Elements can be divided into three categories:
|
40 | 40 | + #### *Source* is an element with only output pads, the first element of each pipeline. It is responsible for fetching the data and transmitting it through the output pad.
|
|
0 commit comments