# media-handler **Repository Path**: NeoCharming/media-handler ## Basic Information - **Project Name**: media-handler - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-02 - **Last Updated**: 2025-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Media Handler 一个用于处理各种媒体文件并提取内容的工具,支持分布式处理MP3文件。 ## 功能特性 - 支持处理多种文件格式: - 文本文件 (.txt) - Word文档 (.doc, .docx) - PDF文件 (.pdf) - MP3音频文件 (.mp3) - MP4视频文件 (.mp4) - MP3文件处理支持分布式队列系统 - 支持配置多个远程处理服务器 - 自动保存处理结果到PostgreSQL数据库 ## 系统要求 - Node.js 14+ - PostgreSQL 数据库 - OpenAI Whisper (用于MP3转录) - FFmpeg (用于MP4处理) ## 安装 1. 克隆仓库: ```bash git clone https://github.com/yourusername/media-handler.git cd media-handler ``` 2. 安装依赖: ```bash npm install ``` 3. 安装Whisper(如果尚未安装): ```bash # 使用pip安装 pip install -U openai-whisper # 安装FFmpeg(如果尚未安装) # macOS brew install ffmpeg # Ubuntu sudo apt update sudo apt install ffmpeg ``` ## 配置 编辑`config.js`文件以配置系统: ```javascript module.exports = { // 数据库配置 database: { host: 'localhost', port: 5432, user: 'your_username', password: 'your_password' }, // MP3处理队列配置 mp3Queue: { // 本地并发数量 localConcurrency: 1, // 最大队列长度 (0表示无限制) maxQueueSize: 0, // 远程服务器配置 servers: [ { url: 'http://server1.example.com:3000', concurrency: 2 }, { url: 'http://server2.example.com:3000', concurrency: 3 } ] }, // 临时文件目录 tmpDir: './tmp_files' }; ``` ## 使用方法 ### 处理本地文件 ```bash # 处理指定目录中的所有文件 node index.js /path/to/your/files [database_name] # 示例 node index.js ~/Documents/media postgres ``` ### 启动远程处理服务器 ```bash # 启动API服务器 node server.js # 使用自定义端口启动 PORT=4000 node server.js ``` ## 分布式处理 1. 在多台服务器上部署应用 2. 在每台服务器上启动API服务器:`node server.js` 3. 在主服务器上配置`config.js`中的`mp3Queue.servers`数组 4. 运行主程序:`node index.js /path/to/files` 系统会自动将MP3处理任务分配给可用的服务器,实现并行处理。 ## 工作原理 1. 主程序扫描指定目录中的所有文件 2. 对于MP3文件,将其添加到处理队列 3. 队列管理器根据配置的并发数量,将任务分配给本地或远程服务器 4. 处理完成后,结果会保存到数据库 ## 许可证 ISC