mycrl / mirror

🚧 (Under development)Cross-platform casting SDK, support Android, Windows, Linux.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mirror

Cross-platform casting SDK, support Android, Windows, Linux


Pure software screen projection is different from Miracast, AirPlay, etc., which need to rely on hardware support. This project was not designed to work on a wide area network, but works well in a local area network environment.

Features

  • Audio is transmitted using OPUS raw streaming.
  • Video encoding uses H264, supports QSV, NVENC hardware accelerated encoding and decoding.
  • Supports UDP multicast and SRT, and can dynamically switch the transport layer.
  • Work in an unstable network environment (such as high-QOS WIFI).

Build Instructions

Requirements

Git | Rust | CMake | Python3 | Node.js

  • C++20 or above compliant compiler.
  • Rust stable toolchain.
  • CMake 3.16 or above as a build system.
  • Node.js 16 or above as a auto build script.
  • Python3 is optional and required for Android Studio projects.
Linux (Ubuntu/Debian)

For Linux, you need to install additional dependencies to build SRT and other.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install tclsh pkg-config cmake libssl-dev build-essential libasound2-dev

Build

Examples and SDK library files can be automatically packaged by running an automatic compilation script.

npm run build

The Debug version is compiled by default. If you need the Release version, just run npm run build:release.
For android, there is no need to manually call compilation. You can directly use Android Studio to open ./examples/android.

If you don't need to build the examples, just build the dynamic library:

cargo build --release

For the required header files: frame.h | mirror.h | renderer.h

License

GPL Copyright (c) 2022 Mr.Panda.

About

🚧 (Under development)Cross-platform casting SDK, support Android, Windows, Linux.

License:GNU General Public License v3.0


Languages

Language:Rust 70.6%Language:C++ 10.8%Language:Kotlin 7.0%Language:JavaScript 4.1%Language:C 2.4%Language:HTML 2.1%Language:CSS 1.5%Language:CMake 1.0%Language:Python 0.3%