实例介绍
TinyPilot将您的Raspberry Pi变成基于浏览器的KVM。
功能:
视频捕获(HDMI/DVI/VGA)
键盘转发
鼠标转发
全屏模式
从剪贴板粘贴文本
HDMI转USB转接器
USB-C到USB-A电缆
HDMI到HDMI电缆
或者根据您的目标机器显示输出的方式选择[其他]到HDMI。
(可选)USB-C OTG分配器:在目标计算机关闭时支持持续电源。
需要两根额外的USB-A到microUSB电缆
【实例截图】

【核心代码】
文件清单
└── tinypilot-7a31d856a6c2e5d8da3ef9c7f067a11f1b7a7e77
├── app
│ ├── api.py
│ ├── atomic_file.py
│ ├── atomic_file_test.py
│ ├── cli.py
│ ├── db
│ │ ├── __init__.py
│ │ ├── licenses.py
│ │ ├── migrations
│ │ │ ├── 001-users-create.sql
│ │ │ ├── 002-licenses-create.sql
│ │ │ ├── 003-settings-create.sql
│ │ │ ├── 004-wake-on-lan-create.sql
│ │ │ ├── 005-users-add-col-creds-changed.sql
│ │ │ ├── 006-settings-remove-non-null.sql
│ │ │ └── 007-settings-streaming-col.sql
│ │ ├── settings.py
│ │ ├── settings_test.py
│ │ ├── store.py
│ │ ├── store_test.py
│ │ ├── users.py
│ │ └── wake_on_lan.py
│ ├── db_connection.py
│ ├── debug_logs.py
│ ├── env.py
│ ├── env_test.py
│ ├── execute.py
│ ├── execute_test.py
│ ├── find_files
│ │ ├── find.py
│ │ └── __init__.py
│ ├── hid
│ │ ├── __init__.py
│ │ ├── keyboard.py
│ │ ├── keyboard_test.py
│ │ ├── keycodes.py
│ │ ├── mouse.py
│ │ ├── mouse_test.py
│ │ └── write.py
│ ├── hostname.py
│ ├── __init__.py
│ ├── iso8601.py
│ ├── json_response.py
│ ├── js_to_hid.py
│ ├── js_to_hid_test.py
│ ├── license_notice.py
│ ├── local_system.py
│ ├── log.py
│ ├── main.py
│ ├── request_parsers
│ │ ├── errors.py
│ │ ├── hostname.py
│ │ ├── hostname_test.py
│ │ ├── __init__.py
│ │ ├── json.py
│ │ ├── json_test.py
│ │ ├── keystroke.py
│ │ ├── keystroke_test.py
│ │ ├── mouse_event.py
│ │ ├── mouse_event_test.py
│ │ ├── paste.py
│ │ ├── paste_test.py
│ │ ├── video_settings.py
│ │ └── video_settings_test.py
│ ├── secret_key.py
│ ├── secret_key_test.py
│ ├── socket_api.py
│ ├── static
│ │ ├── 502.html
│ │ ├── apple-touch-icon.png
│ │ ├── css
│ │ │ ├── button.css
│ │ │ ├── cursors.css
│ │ │ ├── icons.css
│ │ │ ├── style.css
│ │ │ └── toggle.css
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon.ico
│ │ ├── img
│ │ │ ├── angle-down-icon.svg
│ │ │ ├── clipboard-icon.svg
│ │ │ ├── external-link-icon.svg
│ │ │ ├── logo.svg
│ │ │ ├── video-stream-icon.svg
│ │ │ └── warning-icon.svg
│ │ ├── js
│ │ │ ├── app.js
│ │ │ ├── clipboard.js
│ │ │ ├── controllers.js
│ │ │ ├── events.js
│ │ │ ├── hostname.js
│ │ │ ├── hostname.test.js
│ │ │ ├── keyboardstate.js
│ │ │ ├── keyboardstate.test.js
│ │ │ ├── keycodes.js
│ │ │ ├── keystrokes.js
│ │ │ ├── logs.js
│ │ │ ├── logs.test.js
│ │ │ ├── mouse.js
│ │ │ ├── overlays.js
│ │ │ ├── poll.js
│ │ │ ├── settings.js
│ │ │ ├── touch.js
│ │ │ ├── updatelogs.js
│ │ │ └── webrtc-video.js
│ │ ├── legal
│ │ │ └── privacy-policy.txt
│ │ └── third-party
│ │ ├── fonts
│ │ │ ├── fonts.css
│ │ │ ├── Overpass-License.txt
│ │ │ ├── overpass-light-italic.woff
│ │ │ ├── overpass-light-italic.woff2
│ │ │ ├── overpass-light.woff
│ │ │ ├── overpass-light.woff2
│ │ │ ├── overpass-mono-light.woff
│ │ │ ├── overpass-mono-light.woff2
│ │ │ ├── overpass-semibold-italic.woff
│ │ │ ├── overpass-semibold-italic.woff2
│ │ │ ├── overpass-semibold.woff
│ │ │ └── overpass-semibold.woff2
│ │ ├── janus-gateway
│ │ │ └── 1.0.0
│ │ │ └── janus.js
│ │ ├── socket.io
│ │ │ └── 4.7.1
│ │ │ ├── socket.io.min.js
│ │ │ └── socket.io.min.js.map
│ │ └── webrtc-adapter
│ │ └── 8.1.1
│ │ └── adapter.min.js
│ ├── templates
│ │ ├── custom-elements
│ │ │ ├── about-dialog.html
│ │ │ ├── button-dropdown.html
│ │ │ ├── change-hostname-dialog.html
│ │ │ ├── connection-indicator.html
│ │ │ ├── credit-entry.html
│ │ │ ├── debug-dialog.html
│ │ │ ├── error-dialog.html
│ │ │ ├── feature-pro-dialog.html
│ │ │ ├── inline-message.html
│ │ │ ├── key.html
│ │ │ ├── keystroke-history-event.html
│ │ │ ├── keystroke-history.html
│ │ │ ├── menu-bar.html
│ │ │ ├── on-screen-keyboard.html
│ │ │ ├── overlay-panel.html
│ │ │ ├── paste-dialog.html
│ │ │ ├── progress-spinner.html
│ │ │ ├── remote-screen.html
│ │ │ ├── share-logs-button.html
│ │ │ ├── shutdown-dialog.html
│ │ │ ├── status-bar.html
│ │ │ ├── update-dialog.html
│ │ │ ├── update-prompt-automatic.html
│ │ │ ├── video-settings-dialog.html
│ │ │ ├── video-settings-h264-stun.html
│ │ │ └── video-stream-indicator.html
│ │ ├── dedicated-window-placeholder.html
│ │ ├── index.html
│ │ └── styleguide.html
│ ├── testdata
│ │ └── test-remote-screen.jpg
│ ├── text_to_hid.py
│ ├── text_to_hid_test.py
│ ├── threads.py
│ ├── update
│ │ ├── __init__.py
│ │ ├── launcher.py
│ │ ├── launcher_test.py
│ │ ├── result.py
│ │ ├── result_store.py
│ │ ├── result_store_test.py
│ │ ├── result_test.py
│ │ ├── settings.py
│ │ ├── settings_test.py
│ │ ├── status.py
│ │ └── status_test.py
│ ├── update_logs.py
│ ├── update_logs_test.py
│ ├── utc.py
│ ├── version.py
│ ├── version_test.py
│ ├── video_service.py
│ └── views.py
├── ARCHITECTURE.md
├── bundler
│ ├── bundle
│ │ └── install
│ ├── create-bundle
│ ├── README.md
│ ├── setup-b2-linux
│ └── verify-bundle
├── CONTRIBUTING.md
├── COPYRIGHT
├── debian-pkg
│ ├── debian
│ │ ├── compat
│ │ ├── rules
│ │ ├── tinypilot.install
│ │ ├── tinypilot.lintian-overrides
│ │ ├── tinypilot.load-tc358743-edid.service
│ │ ├── tinypilot.postinst
│ │ ├── tinypilot.preinst
│ │ ├── tinypilot.prerm
│ │ ├── tinypilot.service
│ │ ├── tinypilot.tinypilot-updater.service
│ │ ├── tinypilot.triggers
│ │ ├── tinypilot.usb-gadget.service
│ │ └── tinypilot.ustreamer.service
│ ├── Dockerfile
│ ├── etc
│ │ └── sudoers.d
│ │ └── tinypilot
│ ├── opt
│ │ ├── tinypilot-privileged
│ │ │ ├── collect-debug-logs
│ │ │ ├── init-usb-gadget
│ │ │ ├── lib
│ │ │ │ └── usb-gadget.sh
│ │ │ ├── README.md
│ │ │ ├── remove-usb-gadget
│ │ │ └── scripts
│ │ │ ├── apply-static-ip
│ │ │ ├── change-hostname
│ │ │ ├── collect-debug-logs
│ │ │ ├── configure-janus
│ │ │ ├── disable-wifi-ap
│ │ │ ├── enable-wifi-ap
│ │ │ ├── lib
│ │ │ │ └── markers.sh
│ │ │ ├── read-update-log
│ │ │ ├── set-static-ip
│ │ │ ├── strip-marker-sections
│ │ │ ├── strip-marker-sections.bats
│ │ │ ├── unset-static-ip
│ │ │ └── update
│ │ └── ustreamer-launcher
│ │ ├── config-library
│ │ │ ├── hdmi-to-usb.yml
│ │ │ └── tc358743.yml
│ │ └── launch
│ └── usr
│ └── share
│ └── tinypilot
│ ├── janus.service
│ ├── janus.transport.websockets.jcfg
│ ├── nginx.conf
│ └── templates
│ ├── janus.jcfg.j2
│ └── tinypilot.conf.j2
├── dev_app_settings.cfg
├── dev_requirements.txt
├── dev-scripts
│ ├── build-debian-pkg
│ ├── check-all
│ ├── check-bash
│ ├── check-debian-pkg
│ ├── check-for-init-py-files
│ ├── check-javascript
│ ├── check-privilege-guard
│ ├── check-python
│ ├── check-sql
│ ├── check-style
│ ├── check-trailing-newline
│ ├── check-trailing-whitespace
│ ├── decode-edid
│ ├── device
│ │ ├── install-bundle
│ │ └── install-from-source
│ ├── dump-logs
│ ├── enable-git-hooks
│ ├── enable-mock-scripts
│ ├── enable-multiarch-docker
│ ├── enable-passwordless-sudo
│ ├── fix-style
│ ├── git-hooks
│ │ └── pre-commit
│ ├── mock-scripts
│ │ ├── change-hostname
│ │ ├── collect-debug-logs
│ │ └── README.md
│ ├── run-e2e-tests
│ └── serve-dev
├── docs
│ ├── usb-gadget-driver.md
│ └── user-configurable-settings.md
├── e2e
│ ├── about.spec.js
│ └── debug-logs.spec.js
├── get-tinypilot.sh
├── __init__.py
├── LICENSE
├── MANIFEST.in
├── package.json
├── package-lock.json
├── playwright.config.js
├── quick-install
├── readme-assets
│ ├── demo-800w.gif
│ ├── demo.gif
│ └── voyager2a-600px.webp
├── README.md
├── requirements.txt
├── scripts
│ ├── is-ssh-enabled
│ ├── render-template
│ ├── streaming-mode
│ └── update-service
└── setup.py
49 directories, 264 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论