A virtual camera module based on the Xposed framework suitable for Android 9.0 and above, written in Kotlin.
Support replacing virtual camera content with "live streaming or video," supported protocols include: http, rtsp, rtmp, rtp, etc.
You are responsible for all consequences arising from the use of this open-source project.
Virtual videos can be applied in the following areas:
- Bilibili preview, recording
- Douyin preview, recording, live broadcast
- Kuaishou preview, recording, live streaming [todo: Currently, the new version has compatibility issues and is prone to crashing, to be resolved]
- WeChat Video Account Preview, Recording
- Xiaomi native camera preview
- WhatsApp video call [New on Sep 18, 2024]
Other plugins are not effective in other places (because they have not been tested, they are disabled for compatibility), if you need to use them, please modify the source code and recompile.
You can use network video, video stream, or local video as the video source for the virtual camera.
-
- Please manually open the plugin in the Xposed Manager and select the scope APP.
-
- Please edit the network video address in
/storage/emulated/0/Android/data/[the package name of the app you want to use the virtual camera with]/cache/stream.txt
, making sure there are no extra blank lines.
- Please edit the network video address in
-
- When
stream.txt
does not exist or its content is empty, use/storage/emulated/0/Android/data/[package name]/cache/virtual.mp4
as the video source for the virtual camera.
- When
Network video supports streaming media protocols such as http, rtsp, rtmp, rtp, etc., while local video supports video formats such as mp4.
Recommended solution for streaming: OBS live streaming + Nginx reverse proxy (for specific tutorials, please search for the keywords "setting up live streaming service with OBS and Nginx"), then fill in stream.txt with: rtmp://local IP address:port number/name (for example: rtmp://172.20.10.6:1935/live). The delay is approximately 2 to 3 seconds.
For learning and communication purposes only, or to provide a way to upload videos. Please do not play any videos/works of others. All consequences arising from the use of this open-source project are to be borne by yourself.
The player can support multiple data sources because it is developed based on bilibili/ijkplayer.
This project is licensed under the GNU General Public Licence 3.0.
Maintaining it requires spending my spare time, and I hope you can provide some sponsorship~ I would be very grateful : )