# VCD 转录报告 — 《法国·朋友 France·Friends》附赠 VCD（9 首影音写真）

- 转录时间：2026-09-29 21:00–21:22
- 来源：DSH 机光驱 `/dev/sr0`，同套装里的 **VCD 面**（CD 面见 `68-CD转录/`）
- 产出：**9 段 MP4**（352×288 / 25fps PAL / 共 36:14）+ 无损 MPEG-PS 母版 + 整盘 raw 镜像
- 下载页：http://192.168.31.76:8899/69-CD套装VCD转录/

> 方法完全参照 `dl-hub/66-VCD转录/`：内核 sr 驱动读不了 VCD 的 Mode2 Form2 扇区（报 `Illegal mode for this track`），必须用 **SG_IO 的 READ CD(0xBE)** 原始抓取，再按 24 字节偏移取 2324 字节负载得到标准 MPEG-1 PS。

---

## 一、光盘识别

| 项目 | 值 |
|---|---|
| 卷标 | `VolumeLabel` · 系统标识 `CD-RTOS CD-BRIDGE`（标准 VCD） |
| 容量 | 167,684 扇区 = **394.4 MB raw**（343.4 MB 用户数据） |
| 可读性 | **全盘 167,684 扇区 0 坏扇区**（逐块扫描确认） |
| 视频段落 | `/MPEGAV/AVSEQ01.DAT` … `AVSEQ09.DAT`（9 段） |
| 画面 / 声音 | MPEG-1 **352×288 @25fps（PAL）** / MPEG-1 Layer II 44.1kHz 立体声 |
| 附带 | `/CDI`（CD-i 播放器）、`/VCD`（INFO/ENTRIES/LOT/PSD）、`/SEGMENT/ITEM0001.DAT`、`/EXT` |

⚠️ 这颗盘的 **TOC 已损坏**（读出来首轨 LBA 为负、跨度仅 233 扇区，明显不合理），但**数据区完好**。因此本次不依赖 TOC，改用 `disc_map.py` 全盘逐块扫描 + ISO9660 目录解析来定位内容。

---

## 二、产出

### 1) `03-MP4/`（9 段，按封底曲目命名）

命名规则沿用 66 目录：**`VCD-<序号>-<曲目名>-<时长>.mp4`**

| # | 曲目 | 时长 | 体积 |
|---|---|---|---|
| 01 | Ballade Pour Adeline 艾德琳的诗（广场） | 2:45 | 16.4 MB |
| 02 | Diva 迪娃 | 3:09 | 22.0 MB |
| 03 | Forgetting 遗忘 | 3:56 | 30.2 MB |
| 04 | **Friends 朋友** | **4:32** | 30.8 MB |
| 05 | Place De Sun Airport / Listen To The Sea 日光机场·听海 | 3:26 | 27.5 MB |
| 06 | Aquarello 水彩画 | 3:57 | 32.9 MB |
| 07 | Desperado 亡命之徒 | 4:53 | 51.7 MB |
| 08 | Piano Concerto No.1 Tchaikovsky 柴可夫斯基第一钢琴协奏曲 | 4:09 | 32.8 MB |
| 09 | Memory 记忆 | 5:16 | 73.6 MB |

`播放顺序.txt` 为播放清单。**9/9 完整解码校验通过**（无错误）。

### 2) `02-MPEG母版/`（无损母版，可直接再转码）
提取出的标准 MPEG-1 Program Stream（`avseq01.mpg` … `avseq09.mpg` + 附带段），**未经任何重编码**，是从光盘直接取的字节流。以后要换参数重转（比如换更快的编码器、做超分、切片段）都从这里出，不用再动光盘。

### 3) `VCD-disc.img`（394.4 MB）
整盘 raw 镜像（2352 B/扇区），`VCD-disc.err.json` 记录坏扇区清单（**0 个**）。留着可用于复核或换工具再提取。

---

## 三、关键发现：《朋友》MV 的**母盘**就在这里

**VCD-04 就是此前做高清修复的那支《朋友》MV**，且**是母盘**：

| | 本 VCD（母盘） | 此前网上下载的源 |
|---|---|---|
| 来源 | **原版光盘** | B站（转自优酷） |
| 分辨率 | **352×288**（PAL，25fps） | 320×240（15fps） |
| 时长 | **4:32** | 4:23 |
| 水印 | **无** | 右上角「优酷」+ 右下角「DivX」 |
| 画面 | 干净 | 有块状压缩痕迹 |

**判定依据（两条独立证据）**：
1. **音频内容匹配**：用自相似/chroma 滑窗比对（`find_song_in_vcd.py`），视频取样在 **avseq04 的 ≈186s** 处取得最高相关（8.15，领先第二名 24%）；
2. **画面核对**：取 avseq04 的 186s / 200s 帧，能看到与 B 站版相同的**回廊庭院场地、同机位**（竖琴/大提琴手、吉他手安吉利斯、克莱德曼在钢琴前）+ 天使之音合唱团。

→ **这为后续的"高清修复"提供了更好的起点**：像素数是 320×240 的 1.32 倍（352×288），且没有二次转码与水印。建议后续用本 VCD 的 avseq04 重跑一遍修复。

> 注：VCD 与 B 站版的**剪辑节点不同**（4:32 vs 4:23），不是简单拉伸关系；B 站版应是当年从该 VCD 转录后再剪辑转码的。

---

## 四、内容总览

![九段总览](VCD九段内容总览.png)

`VCD九段内容总览.png` 为 9 段中间帧的 3×3 拼图：可见这是"达芬五大巨星影音写真"的**实拍演奏影像**（克莱德曼弹琴、安吉利斯弹吉他、狄亚哥吹排笛等），场地多为古堡/庭院/舞台。

![母盘对比](对比图-VCD母盘vsB站转码.png)

`对比图-VCD母盘vsB站转码.png`：左=本 VCD 原始（352×288，干净），右=B 站版（320×240，带「优酷」水印与硬字幕）。

---

## 五、技术要点与踩坑

1. **内核 sr 驱动读不了 VCD 数据**：`READ(10)` 报 `Illegal mode for this track`（ASC 0x64），因为数据在 **Mode2 Form2** 扇区（用户数据 2324 B）。必须用 `READ CD(0xBE)`，flags=0xF8（SYNC|HEADER|USERDATA|EDC/ECC）取 2352 B → 跳过 24 字节取 2324 字节负载。
2. **单次 SG_IO 传输上限 120 KB**（`/sys/block/sr0/queue/max_sectors_kb`）→ 每次最多 **52 扇区**（122,304 B）；53 扇区就报 EIO。
3. **抓取范围不能信 TOC**：本盘 TOC 损坏（首轨 LBA 为负）。改用**设备容量**（READ CAPACITY 0x25 = 167,684）作为末端，全盘抓取 0 个坏扇区。
4. **换盘后首次读取会失败**：用户换盘后我第一次扫描报 104 个扇区读不到、PVD 无效；**稍后重试即完全正常**——新盘插入后需给驱动器留出稳定时间，别急着判定坏盘。
5. **降速有利于救数据**：抓取用 4–8x（默认 24x 太快），本次 0 坏扇区。
6. **TOC 解析的字段布局**：SCSI READ TOC（0x43, format 0）每条描述符 8 字节 = `[session, ADR/CTRL, TNO, POINT, MIN, SEC, FRAME, 0]`，M/S/F 从**第 5 字节**（偏移 4）开始；我一开始按偏移 5 取导致 LBA 全错。
7. **`sudo` 与 `setsid` 组合会吃掉密码输入**：要写成 `echo pw | sudo -S bash -c '... setsid nohup ... &'`；另外被 root 创建的日志文件普通用户无法覆盖，日志路径要换新名。

---

## 六、复现

```bash
cd ~/Downloads/vcd-rip                      # 参照任务留存的完整工具集
sudo python3 disc_scan.py                   # 列目录树 + 建议抓取范围
sudo python3 ~/Downloads/disc_map.py --speed 4 --retries 2   # 全盘可读性扫描（可选但推荐）
sudo python3 -u rip_raw.py --out VCD-disc.img --maperr VCD-disc.err.json \
     --start 0 --end 167684 --chunk 52 --speed 8             # raw 抓取
python3 extract_vcd.py VCD-disc.img 02-MPEG母版               # 提取 MPEG-PS
bash 99-脚本/encode_vcd_set.sh 02-MPEG母版 03-MP4              # 转 MP4（命名+转码）
python3 99-脚本/find_song_in_vcd.py --video <已知MV> --seg-dir 02-MPEG母版   # 内容比对定位曲目
```

## 附：目录结构

```
69-CD套装VCD转录/
├── 03-MP4/                 9 段 MP4 + 播放顺序.txt（约 320 MB）
├── 02-MPEG母版/            无损 MPEG-1 PS 母版（可直接再转码）
├── 99-脚本/                encode_vcd_set.sh / vcd_toc.py / disc_map.py / find_song_in_vcd.py / toc_dump.py
├── VCD-disc.img            整盘 raw 镜像 394.4 MB（0 坏扇区）
├── VCD-disc.err.json
├── VCD九段内容总览.png
├── 对比图-VCD母盘vsB站转码.png
└── 本报告
```
