将 YouTube 作为存储空间

将 YouTube 作为存储空间

Hacker News 摘要

原标题:YouTube as Storage

yt-media-storage 是一个将 YouTube 作为存储空间使用的开源项目。它通过将文件编码为无损视频,并支持将这些视频重新解码还原为原始文件来实现这一目的。该工具同时提供了命令行界面(CLI)和图形用户界面(GUI)。

主要功能

文件编码与解码:能够将任何文件编码为无损视频(采用 FFV1 编码和 MKV 封装),并能将其完美还原。

喷泉码:利用 Wirehair 喷泉码技术进行数据冗余和修复。

可选加密:支持使用 libsodium 库提供的 XChaCha20-Poly1305 算法对文件进行密码加密。

批处理:在图形界面中支持将多个文件加入队列进行批量编码。

进度追踪:图形界面提供实时的进度条和状态更新。

系统要求

构建和运行该项目需要以下软件环境:

CMake 3.22 或更高版本。

• 支持 C++23 标准的编译器。

FFmpeg 库。

libsodium 库。

OpenMP 并行计算支持。

Qt6(包括 Core 和 Widgets 模块)。

安装与构建方法

在不同操作系统上,可以通过各自的包管理器安装依赖:

Ubuntu 或 Debian:使用 apt 安装 cmakebuild-essentialqt6-base-dev 以及 FFmpeg 和 libsodium 的开发库。

Fedora 或 CentOS:使用 dnf 安装 cmakegcc-c++qt6-qtbase-develffmpeg-devel 等。

Arch Linux:使用 pacman 安装相关组件。

macOS:通过 Homebrew 安装。

Windows:推荐通过 vcpkg 安装依赖库。

构建过程包括创建 build 文件夹,运行 cmake -B build 进行配置,随后执行 cmake --build build。这将生成两个程序:命令行工具 media_storage 和图形界面工具 media_storage_gui

使用方法

命令行界面

编码:使用 encode 参数,指定输入文件和输出路径。如果需要加密,可以使用 --encrypt--password 参数。

解码:使用 decode 参数,指定输入的视频文件和还原后的输出路径。

图形用户界面

单文件操作:通过点击 Browse 按钮选择输入和输出路径,点击对应的编码或解码按钮开始处理。

批处理操作:通过 Add Files 按钮将多个文件添加到队列,选择统一的输出目录后进行批量处理。

状态监控:通过进度条、状态标签和日志面板查看详细的操作信息。

技术细节

编码流程:文件被切分为数据块,使用喷泉码进行处理,最后嵌入到视频帧中。

解码流程:从视频帧中提取数据包并重构回原始文件。

视频格式:默认使用 MKV 容器和无损的 FFV1 编码器。

分辨率与帧率:采用 4K 分辨率(3840x2160)以及 30 FPS 的帧率。

多线程:所有操作都在独立的线程中运行,以保证界面响应流畅。

故障排除

构建问题:如果提示找不到 Qt6、FFmpeg 或 libsodium,请确保已安装对应的开发包。

运行问题:检查文件读写权限以及磁盘空间是否充足。

写入头部失败:如果要在 mp4 容器中使用 FFV1 编码器,需要 FFmpeg 8 或更高版本,否则建议直接使用 MKV 格式。

开源协议

该程序属于自由软件,遵循 GNU GPL-3.0 开源许可协议。用户可以根据协议条款进行分发或修改。


原文:https://github.com/PulseBeat02/yt-media-storage

评论:https://news.ycombinator.com/item?id=47012964

Report Page