# @xiping/node-utils

Node.js 通用工具库，提供目录树、路径、SRT→VTT 字幕转换、FFmpeg 视频处理、文件信息与图片处理等能力。

```bash
npm install @xiping/node-utils
```

## 命令行

包内提供可执行命令（需本机已安装 Node；部分命令依赖 FFmpeg，见各模块说明）：

| 命令 | 说明 |
|------|------|
| `video-thumbnail` | 为视频生成多帧合成缩略图（见 [src/ffmpeg/README.md](./src/ffmpeg/README.md) 中「缩略图生成」与「命令行」） |
| `translate-srt` | 字幕翻译教学相关 CLI（见 [src/subtitle-translation-teaching/README.md](./src/subtitle-translation-teaching/README.md)） |

**示例（临时执行、未安装依赖）：**

```bash
npx -p @xiping/node-utils@latest video-thumbnail --input /path/to/video.mp4
```

## 使用案例

```typescript
import {
  buildDirectoryTree,
  getParentDirectory,
  convertSrtFileToVttFile,
  getVideoInfo,
  getThumbnail,
  getFileConfig,
  convertImage,
  checkFFmpegAvailability,
} from '@xiping/node-utils';

// 目录树
const tree = buildDirectoryTree('/path/to/dir');

// 路径
const parent = getParentDirectory('/Users/documents/folder');

// SRT 转 VTT
convertSrtFileToVttFile('/path/to/subtitle.srt');

// 视频信息与缩略图（需系统安装 ffmpeg）
if (checkFFmpegAvailability()) {
  const info = getVideoInfo('/path/to/video.mp4');
  const thumb = await getThumbnail('/path/to/video.mp4', { frames: 30 });
}

// 文件配置（含视频元数据）
const config = getFileConfig('/path/to/file.mp4');

// 图片格式转换
await convertImage(inputPath, outputPath, 'webp', { quality: 80 });
```

更多说明见 [src/ffmpeg/README.md](./src/ffmpeg/README.md)、[src/image/README.md](./src/image/README.md)、[src/srt-to-vtt/README.md](./src/srt-to-vtt/README.md)。

