3 个版本
0.1.2 | 2023 年 4 月 21 日 |
---|---|
0.1.1 | 2023 年 4 月 20 日 |
0.1.0 | 2023 年 4 月 18 日 |
#184 in 视频
每月 28 次下载
49KB
959 行
HDMI 文件传输器
本存储库是 Rust 实现的实验性证明,通过利用 HDMI(在第二台计算机上使用 USB)在两台计算机之间通过视频传输文件。发送信息的计算机可能处于一个安全环境,对互联网或可连接的 USB 设备的访问非常受限。然而,显示器很少成为安全攻击的目标。因此,该方案是通过 HDMI 发送文件,并在第二台计算机上使用带有 USB 的视频卡捕获文件,该计算机没有安全限制。
有关概念和代码的详细信息,请参阅以下文章
代码库的范围
代码库包含一个 Rust 脚本,该脚本将文件注入到视频文件中。它还执行另一部分:从视频文件到文件。
不包含的范围是 HDMI 部分。详细信息可以在所写的几篇文章中找到。
库用户信息
安装
cargo add hdmifiletransporter
CLI 用户信息
待办事项:我们可以与 CLI 一起使用的不同选项
存储库开发者信息
本节是为向本存储库做出贡献的开发人员准备的。其中包含一些关于如何执行开发任务的提示。
需要安装什么?
您需要安装正确的工具链
rustup toolchain install stable
rustup default stable
要执行测试覆盖率,您需要安装
cargo install grcov
rustup component add llvm-tools-preview
要生成基准图,您需要安装 GnuPlot
sudo apt update
sudo apt install gnuplot
# To confirm that it is properly installed:
which gnuplot
在 WSL 上使用 opencv
sudo su
apt install libopencv-dev clang libclang-dev
sudo apt install cmake
执行
使用 cargo run
获取所有选项
cargo run -- -help
测试
cargo test
测试覆盖率
在运行覆盖率之前,您必须安装一些组件
cargo install grcov
rustup component add llvm-tools-preview
然后,您可以运行
./coverage.sh
更多解释请参阅 Mozilla grcov 网站
文档
文档是从源代码使用
cargo doc --open -document-private-items
测试 CLI
所有命令都对用户有效,但使用
hdmifiletransporter -m inject -i testAssets/test1.zip -o out1.mp4
将文本注入到视频中
cargo run -- -m inject -i testAssets/text1.txt -o outputs/out1.avi --fps 30 --height 1080 --width 1920 --size 1
cargo run -- -m inject -i testAssets/text1.txt -o outputs/out1.avi --fps 30 --height 1080 --width 1920 --size 1 -a bw
从视频中提取文本
cargo run -- -m extract -i outputs/out1.avi -o outputs/text1.txt --fps 30 --height 1080 --width 1920 --size 1
cargo run -- -m extract -i outputs/out1.avi -o outputs/text1.txt --fps 30 --height 1080 --width 1920 --size 1 -a bw
基准
cargo bench
发布
测试 Cargo 内容
cargo package --allow-dirty
然后转到 hdmifiletransporter/target/package/
以查看内容
推送新的货物包
cargo login
cargo publish --dry-run
cargo publish
调试
如果您想使用VsCode设置断点,必须安装CodeLLDB。
依赖项
~19MB
~142K SLoC