2024年1月17日 星期三

haskell rtp server RTP MPEG RTSP MPEG video streams

 haskell rtp server
 
 https://itecnote.com/tecnote/open-source-rtsp-rtp-stack-with-c-language/

(PDF) Real-time MPEG-2 delivery based on RTPAcademia.eduhttps://www.academia.edu › Real_time server system that uses RTP's payload for- have fallen to the same range as PCs ... Haskell, RTP payload Proceedings of the IEEE Visual Sign. Proc. And Comm ...

(3) WebRTC data channels implementation in Haskell? : haskell
    https://github.com/oherrala/haskell-stun
    https://hackage.haskell.org/package/socket-sctp
    https://github.com/rawrtc/rawrtc
    https://github.com/xhs/librtcdc
    https://webrtc.googlesource.com/src/
    https://github.com/EricssonResearch/openwebrtc
    https://datatracker.ietf.org/doc/draft-ietf-rtcweb-data-channel/

parsing an IP 4 header in Erlang:

 parse_ip4(<<4:4/integer,  % IP Version: this matches a literal '4' from the first 4 bits!!!!!!! HOw awesome is this!?
             HeaderLen:4/integer,    % 4 bits of header as integer
             Tos:8/integer,       
             PacketLen:16/big-integer,  
             FragmentId:16/big-integer,
             Flags:2/integer,           
             MoreFragments:1/integer,   
             Offset:13/big-integer,
             TTL:8/integer,         
             UpperLayerProtocol:8/integer,
             Checksum:16/big-integer,
             SrcIp:32/big-integer,
             DstIp:32/big-integer,
             Options/binary>>) ->
     AAC/MP4/DASH  RTP streams GADTs SCTP TLS/DTLS TFTP server HTTP/HTTPS using servant.GHC runtime
http://erlang.org/doc/programming_examples/bit_syntax.html
https://viinex.com/middleware-for-video-surveillance/streaming-video/

https://datatracker.ietf.org/doc/html/rfc2343
                  RTP Payload Format for Bundled MPEG
https://datatracker.ietf.org/doc/html/rfc2250
                RTP Payload Format for MPEG1/MPEG2 Video
https://datatracker.ietf.org/doc/html/rfc2038
                RTP Payload Format for MPEG1/MPEG2 Video

RTP Payload Format datatracker.ietf

RFC 7798 - RTP Payload Format for High Efficiency Video ...
IETF Datatracker https://datatracker.ietf.org › doc › rfc7...Standards Track [Page 31] RFC 7798 RTP Payload Format for HEVC March 2016 4.4.4. ... About IETF Datatracker Version 12.2.0 (release - 9e0d937) Report a bug ...

RFC 6184 - RTP Payload Format for H.264 Video
IETF Datatracker https://datatracker.ietf.org › doc › html RFC 6184 RTP Payload Format for H.264 Video May 2011 Macintosh file type ... Datatracker. RFC 6184. Proposed Standard. Info; Contents; Prefs. Document, Document ...

RTP Payload Format for Versatile Video Coding (VVC)
IETF Datatracker https://datatracker.ietf.org › rfc9328  Eleftheriadis, "RTP Payload Format for Scalable Video Coding", RFC ... About IETF Datatracker Version 12.2.0 (release - 9e0d937) Report a ...

https://haskell-language-server.readthedocs.io/en/latest/what-is-hls.html
https://haskell-language-server.readthedocs.io/en/latest/configuration.html
https://github.com/haskell/haskell-language-server/tree/master

mediabus-rtp :: Stackage Server
https://www.stackage.org/lts-9.21/package/mediabus-rtp-0.4.0.1
Data.MediaBus
        Data.MediaBus.Rtp
            Data.MediaBus.Rtp.AlawSource
            Data.MediaBus.Rtp.Packet
            Data.MediaBus.Rtp.Source
https://github.com/sheyll/mediabus-rtp
https://www.stackage.org/lts-9.0
LTS Haskell 9.0 (ghc-8.0.2) :: Stackage Server
https://www.stackage.org/lts-9.0/hoogle?q=+Haskell+

https://stackoverflow.com/questions/39233889/parse-pcm-audio-data-from-rtp-packet

c - Parse PCM audio data from RTP packet - Stack Overflow
https://en.wikipedia.org/wiki/Real-time_Transport_Protocol#Packet_header
https://trac.ffmpeg.org/wiki/Using%20libav*
https://stackoverflow.com/questions/10715170/receiving-rtsp-stream-using-ffmpeg-library

Multimedia Over IP: RSVP, RTP, RTCP, RTSP
https://www.cse.wustl.edu/~jain/cis788-97/ftp/ip_multimedia/index.html


    RFC 2205,  Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification
    RFC 2206,  RSVP Management Information Base using SMIv2 (RFC 2206)
    RFC 2207,  RSVP Extensions for IPSEC Data Flows
    RFC 2208,  RSVP Version 1 Applicability Statement Some Guidelines on Deployment
    RFC 2209,  RSVP Version 1 Message Processing Rules

    RFC 1889, RTP: A Transport Protocol for Real-Time Applications
    RFC 1890, RTP Profile for Audio and Video Conferences with Minimal Control

https://en.wikipedia.org/wiki/Application-level_gateway

High quality IP video streaming with adaptive packet marking | Proceedings of the 3rd international conference on quality of future internet services and internet charging and QoS technologies 2nd international conference on From QoS provisioning to QoS charging
https://dl.acm.org/doi/abs/10.5555/1754656.1754666

https://itecnote.com/tecnote/open-source-rtsp-rtp-stack-with-c-language/
Open source RTSP/RTP stack with C language – iTecNote
http://www.live555.com/
https://itecnote.com/tecnote/r-how-to-initialize-a-struct-in-accordance-with-c-programming-language-standards/

https://gcc.gnu.org/onlinedocs/gcc/index.html#SEC_Contents
https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html

MPEG RTP Generation Module
https://www.cs.columbia.edu/~hgs/teaching/ais/1998/projects/mpegRTP/report.html
In this project, a software module that splits an MPEG file into
individual frames and wraps each into the necessary RTP payload and sets
the fields of fixed RTP header and extension header for MPEG stream
according to the packeting rules and header field format described in
RFC2038 was developed. This module can be intergrated to RTSP server or
any generic server that delivers MPEG video streams onto network. Simple
RTP player was also developed for dumping MPEG RTP packets and verifying
the RTP-packetized MPEG video stream that it received.
Background
    RTP
    MPEG
    RTSP
Internet RFCs
    RFC 1889
    RFC 1890
    RFC 2250
[1] H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson, "RTP: A Transport Protocol for
Real-Time Applications," RFC 1889, January, 1996.
[2] D. Hoffman, G. Fernando, V. Goyal and M. Civanlar, "RTP payload format for
MPEG1/MPEG2 video," RFC 2250, Internet Engineering Task Force, January , 1998.
[3] Barry G. Haskell, Atui Puri, and Arun N. Netravli, "Digital Video: An Introduction
To MPEG-2", 1997
[4] H. Schulzrinne, A. Rao, R. Lanphier, "Real Time Streaming Protocol (RTSP)", RFC 2326,
Internet Engineering Task Force,April 1998
[5] H. Schulzrinne, "RTP Profile for Audio and Video Conferences with Minimal Control",
RFC 1890, January 1996.
[6] RTP Resource http://www.cs.columbia.edu/~hgs/rtp/
[7] RTSP Resource http://www.cs.columbia.edu/~hgs/rtsp/



Wireplumber PipeWire  Helvum   qpwgraph Multimedia multimedia framework.
https://wiki.archlinuxcn.org/zh-tw/PipeWire
    PipeWire/Examples
    WirePlumber
PipeWire 是一個新的底層多媒體框架。 它旨在以最低的延遲為音頻和視頻提供錄製和播放功能,並支持基於 PulseAudio、JACK、ALSA 和 GStreamer 的應用程式。

基於該框架的守護進程可以配置為音頻伺服器(具有 PulseAudio 和 JACK 特性)和視頻錄製伺服器。

PipeWire 還支持像 Flatpak 這樣的容器,不依賴於 audio 和 video 用戶組。 相反,它採用了類似於 Polkit的安全模式,向 Flatpak 或 Wayland 請求許可以錄製屏幕或音頻。
Toolchain, GCC 12.1, Wireplumber 0.4.10, Haskell, Python
https://forum.manjaro.org/t/unstable-update-2022-05-11-toolchain-gcc-12-1-wireplumber-0-4-10-haskell-python/110501
Wireplumber PipeWire  Helvum   qpwgraph
https://github.com/mikeroyal/PipeWire-Guide
https://blogs.gnome.org/uraeus/category/pipewire/


webrtc server open source
Kurento WebRTC Media Server
Mediasoup
 Open WebRTC Toolkit (OWT)
Jitsi Video Bridge
Janus - General purpose WebRTC server
https://janus.conf.meetecho.com/docs/index.html
https://github.com/meetecho/janus-gateway

https://github.com/8xFF/atm0s-media-server?trk=article-ssr-frontend-pulse_x-social-details_comments-action_comment-text
https://sfu.mirotalk.com/?trk=article-ssr-frontend-pulse_x-social-details_comments-action_comment-text



沒有留言: