• Stars
    star
    151
  • Rank 244,807 (Top 5 %)
  • Language
    JavaScript
  • Created about 2 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Mobile remote display and control in browser page, audio support.浏览器远程投屏控制手机

imageDjango_scrcpy


手机web投屏和操控,支持音频,提供一个配置管理页用于配置各设备的投屏参数(帧率,尺寸等),支持多设备。
Android Device remote display and control in browser page.audio support
Provide manage site to configure display(frame-rate,screen-size,bit-rate), support multi devices.

QQ交流群: 696373448
image

  • web scrcpy
  • file manage
  • audio forward(Android>=11)
  • recording

image image image image

一.原理(Summary)

后端用scrcpy_server.jar获取手机h264流, 传输通过websocket(django高效异步),前端broardway,webcodecs播放视频流并捕获鼠标事件完成操控。 电脑先配置好adb,手机设备打开usb调试并连接项目所在的电脑主机, 经测试在usb2.0, 720X336分辨率,800k比特率,25帧,本地浏览器延迟大概为60ms左右。
Backend scrcpy_server.jar grab android-device screen-raw-h264 data.
Transmission based on websocket (Django efficiently asynchronous coroutine).
Frontend broardway.js play screen-raw-h264 data, capture mouse`s event to control. We test in local browser[usb2.0, 720x336, 800kbit/s, 25fps] delay average 60ms.

二.运行(Usage):

Make sure adb server started and android-device(in Developer Mode) has connected to adb server.
adb devices in command line can list connected device.
List of devices attached
ba406a9e0421 device

1.运行

  • download project
  • Install(项目升级时需要删除目录下db.sqlite文件,重新install)
    pip install -r requirements.txt
    python init.py
  • Run(Visit http://127.0.0.1:8000/admin)
    uvicorn django_scrcpy.asgi:application --host 0.0.0.0 --port 8000 --workers 4

2.docker运行

  • run

    • linux
      docker run -it --name django_scrcpy --net=host -v some_dir:/usr/src/app/media -e DJANGO_SCRCPY_PORT=8000 lim1942/django_scrcpy:1.0
    • macos/windows
      【ADB_SERVER_ADDR can be "docker.for.mac.localhost" "host.docker.internal" "192.168.."】
      docker run -it --name django_scrcpy -v some_dir:/usr/src/app/media -p 8000:8000 -e ADB_SERVER_ADDR=docker.for.mac.localhost -e ADB_SERVER_PORT=5037 -e DJANGO_SCRCPY_PORT=8000 lim1942/django_scrcpy:1.0
  • start
    docker start django_scrcpy

  • stop
    docker stop django_scrcpy

三.webcodecs

由于浏览器安全限制,VideoDecorder, AudioDecorder需要在https或者本地localhost访问才能使用。
webcodecs是浏览器的硬解码,解码速度和质量比broardway要好,但是兼容性不如broardway,很多浏览器不支持。

1.chrome关闭特定网址安全限制

浏览器输入 chrome://flags image 在Insecure origins treated as secure中加入需要关闭安全限制站点,逗号分隔,配置好点击Relauch.重启后该站点可用webcodecs播放器了。

四.recording

see recording support