2024年1月18日 星期四

haskell server framework Hackage stream rtp RTSP over UDP RTSP over rtsp RTSP over UDP RTSP over TCP RTP and RTSP Cornerstones of Real-Time Streaming RTMP AAC QUIC

 haskell server framework Hackage stream rtp RTSP over UDP  RTSP over  rtsp RTSP over UDP  RTSP over TCP RTP and RTSP Cornerstones of Real-Time Streaming RTMP AAC QUIC
Control.RTSP
https://hackage.haskell.org/package/Dflow-0.0.1/docs/Control-RTSP.html


Real Time Stream Processors are used to describe pipelines that process events in real time. An event is described as a (Time, Value) pair. When an RTSP receives an event it can respond by emitting zero or more events at any time at or after the receipt of the original event. Further incoming events may influence the stream of emitted events.

Piplelines of RTSPs can be built up using the '(.)' operator from the Category instance, or alternatively the '(>>>)' operator (which is merely dot with its arguments swapped). RTSPs can be run in parallel with their outputs merged using mappend from the Monoid instance.

Within the RTSP implementation all notions of "delay" and "time" merely refer to the time component of events, and are used for event ordering. Only the execRTSP function, which runs in the IO monad, executes any actual real-time delay.

The main data types for the application programmer are:

Event
    A value that occurs at a certain time. For instance an Event Char might represent a key press.
RTSP
    The Real Time Stream Processor. A value of type RTSP x y takes in events of type x and emits events of type y. RTSPs can be strung together into pipelines using (.) (or (>>>) if you prefer your data to flow left-to-right). RTSPs are also monoids, so you can fork your data through two parallel RTSPs and then merge the results.
RTA
    A monad for building stateful RTSPs. Convert an RTA into an RTSP using execRTA or accumulateRTA depending what you want to do with pending output events when a new input event arrives.

You can test an RTSP in "fast time" (that is, without waiting for real-time delays) by using simulateRTSP. Then you can execute the RTSP in real time using execRTSP and be confident that the real time behaviour will match the fast-time behaviour.

Simultaneous Events

https://p.codekk.com/detail/Android/mutaphore/RTSP-Client-Server
https://hackage.haskell.org/package/Dflow-0.0.1/docs/doc-index.html
https://hackage.haskell.org/package/Dflow-0.0.1

Dflow: Processing Real-time event streams

https://hackage.haskell.org/packages/tag/reactivity
https://hackage.haskell.org/packages/tag/network
https://hackage.haskell.org/packages/tag/streaming

沒有留言: