Skip to content
This repository has been archived by the owner on Jan 11, 2022. It is now read-only.

amphineko/mooncake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AtomicAkarin.Mooncake

libav/libswscale-based RTSP client for .NET Core

This project is still under development, you may check out other branches for latest progress.

Modules

  • Lotus(Core/Shim): Handles libav/libswscale invocations and manages related structures
  • Mooncake: Initializes FFmpegShim and/or hosts frame handler plugins
  • Bakery: WebM chunks in-memory (planned) server

Goals and Roadmap

  • FrameReader: Open supported media files or urls (e.g rtsp://) via avformat

  • FrameReader: Receive and decode frames via avcodec


  • FrameScaler: Convert frames into different pixel formats (e.g YUV420P to RGB24) via swscale

  • Dump AVFrame into SixLabors.ImageSharp.Image (feature not longer required)

  • AVPacketStream: Encapulse AVPacket as System.IO.Stream (read-only)

Individual packets can be dumped out (e.g re-encode frames as JPEG and dump into .NET) as simple as Stream.CopyTo().

  • StreamIOContext: Encapsule System.IO.Stream (read-only) as AVIOContext
  • StreamIOContext: Write support

FileStream and MemoryStream can be provided to AVFormat as input source or output destination, which enables in-memory re-muxing.


  • Re-encode and mux into VP9 WebM

  • Serve output WebM (cached in in-memory) chunks over HTTP

License

MIT

Releases

No releases published

Packages

No packages published

Languages