# 抖音视频「去片尾」处理报告

- 生成时间：2026-09-14 21:16
- 源目录：`/home/zyw/Downloads/dl-hub/用户上传/`（原文件未做任何修改）
- 产出目录：`/home/zyw/Downloads/dl-hub/37-抖音视频去片尾/`（28 个文件）
- 下载页：http://192.168.31.76:8899/37-%E6%8A%96%E9%9F%B3%E8%A7%86%E9%A2%91%E5%8E%BB%E7%89%87%E5%B0%BE/

## 处理方式

抖音分享下载的视频，末尾都固定带一段约 **3.0 秒**的抖音账号引导片尾卡（头像 + 抖音号 + 搜索框 + 二维码）。
本次没有统一「砍掉最后 3 秒」，而是**逐条精确检测片尾的起始帧**：
把整条视频逐帧与「最后一帧（片尾卡）」做灰度差分，片尾卡是静止画面，与卡片差异骤降的那一帧即片尾起点。
实测 27 条源视频的片尾长度均为 **2.999～3.062 秒**，与固定 3 秒片尾吻合。

裁剪采用 **`ffmpeg -c copy` 流复制（不重编码、画质无损）**，只丢掉片尾的包；
唯一例外：2 条变帧率（VFR）视频因 B 帧解码顺序早于显示顺序，为保证不重编码又完整去掉片尾，末尾多丢 2 帧（≈0.03s）。

## 逐条结果

| 输出文件 | 原始时长 | 片尾起点 | 去掉片尾 | 处理后时长 | 大小 | 说明 |
|---|---:|---:|---:|---:|---:|---|
| `share_0324b8de92e002a5ffcb534a96c81b311789332909743-无片尾.mp4` | 16.833s | 13.833s | 3.0s | 13.833s | 4.84MB |  |
| `share_2100c77a52beae2c9577b914d6d1745f1789334035897-无片尾.mp4` | 29.999s | 27.0s | 2.999s | 26.983s | 3.91MB |  |
| `share_278aba181407c1158da44a946fe9e7af1789334826315-无片尾.mp4` | 12.119s | 9.1s | 3.019s | 9.067s | 2.13MB | 末尾多丢2帧(≈0.03s，VFR) |
| `share_2a30277bc8884d9f6b1e816d3137d38d1788576331539-无片尾.mp4` | 18.553s | 15.533s | 3.02s | 15.517s | 5.97MB |  |
| `share_2eaa8ed00016625ad98080bb429d369e1789335166720-无片尾.mp4` | 38.333s | 35.333s | 3.0s | 35.333s | 4.82MB |  |
| `share_45b935cc9ad9dca8cd24a36a13a1dfca1789332682579-无片尾.mp4` | 18.692s | 15.667s | 3.025s | 15.65s | 8.43MB |  |
| `share_5d4cbf907e21f2506e405d6cc23f922c1789334726197-无片尾.mp4` | 10.889s | 7.867s | 3.022s | 7.867s | 2.39MB |  |
| `share_5d64c5a9110c8b0768ea4df0a135427a1789334839229-无片尾.mp4` | 8.451s | 5.45s | 3.001s | 5.45s | 2.16MB |  |
| `share_7569a003456230bf8c01b6563efcb6171789333060845-无片尾.mp4` | 8.172s | 5.133s | 3.039s | 5.133s | 2.56MB |  |
| `share_75f1d97cbc01acf37d5310393a9f6f201789334941275-无片尾.mp4` | 13.633s | 10.633s | 3.0s | 10.633s | 4.3MB |  |
| `share_7c95bae39c9e9bce9cc00bc8c3cf52331788448715062-原样(无片尾).mp4` | Nones | — | 0s | 16.67s | 2.0MB | 源文件无片尾，未裁剪 |
| `share_81b2e11b15815c5d937e792a5b2795bd1789335493099-无片尾.mp4` | 17.762s | 14.7s | 3.062s | 14.7s | 5.68MB |  |
| `share_83259a6d31bb1c11cf76466d30bba5da1789334546317-无片尾.mp4` | 10.006s | 6.967s | 3.039s | 6.967s | 2.29MB |  |
| `share_8407dd053f3f7b29f8d6eee8c5ae92781789333308848-无片尾.mp4` | 11.029s | 8.0s | 3.029s | 8.0s | 1.9MB |  |
| `share_8547753db3c719e4c436f594a829c7411789333383778-无片尾.mp4` | 14.176s | 11.167s | 3.009s | 11.167s | 1.93MB |  |
| `share_93e5d5fc2dc0eac728abda226f95c5431788950922652-无片尾.mp4` | 39.242s | 36.2s | 3.042s | 36.2s | 7.4MB |  |
| `share_9a194274e1b3ac966e9227efae163a831789334455246-无片尾.mp4` | 19.735s | 16.717s | 3.018s | 16.683s | 9.11MB | 末尾多丢2帧(≈0.03s，VFR) |
| `share_a0265214f750f0336dd1c223e1b3e9011789332171494-无片尾.mp4` | 13.838s | 10.8s | 3.038s | 10.8s | 2.21MB |  |
| `share_a19be536da972c2c91d674785d2ab8831789332817795-无片尾.mp4` | 17.504s | 14.467s | 3.037s | 14.467s | 7.79MB |  |
| `share_ab662bc9323956edb927531a0a11dc111789333820410-无片尾.mp4` | 20.618s | 17.567s | 3.051s | 17.567s | 5.12MB |  |
| `share_b87189ae14252a89a66ecbe7f17ebf081789334733045-无片尾.mp4` | 22.359s | 19.35s | 3.009s | 19.35s | 4.13MB |  |
| `share_beafb098e51b1d7c7acfc13c04d4d2951789334782288-无片尾.mp4` | 16.509s | 13.467s | 3.042s | 13.467s | 6.77MB |  |
| `share_bf02fc3bc2844426c31a764174810ff81789335253016-无片尾.mp4` | 16.158s | 13.12s | 3.038s | 13.12s | 3.19MB |  |
| `share_cedacdcc402899bf213ea0026ec1d4e01789335210471-无片尾.mp4` | 32.367s | 29.36s | 3.007s | 29.36s | 6.87MB |  |
| `share_d619cabe3511a986fa2f74442590b17b1789335701434-无片尾.mp4` | 8.474s | 5.467s | 3.007s | 5.467s | 2.3MB |  |
| `share_db860e3c47c54745962946910a0b31131789333292055-无片尾.mp4` | 32.867s | 29.867s | 3.0s | 29.867s | 5.84MB |  |
| `share_ddded25caac9dd411992c2e9c99c27fd1789334688259-无片尾.mp4` | 10.912s | 7.9s | 3.012s | 7.9s | 3.03MB |  |
| `share_f1a203649bbce25e832fe3037a694cfa1789333195364-无片尾.mp4` | 24.217s | 21.2s | 3.017s | 21.2s | 5.05MB |  |

## 质量校验（28/28 通过）

对每个产出文件逐条做了 4 项校验：
1. **首帧一致**：与源文件首帧逐字节相同 → 片头内容零损失；
2. **整条解码无报错**：`ffmpeg -f null -` 全解码无 error（流复制不会留下坏帧/悬空参考帧）；
3. **尾帧不是片尾**：产出文件最后 0.5 秒的每一帧与源文件片尾卡做图像差分，差异均很大（无残留卡片）；
4. **音视频完整**：h264 + aac 双流俱在，时长与画面长度一致。

唯一需要说明的一条：`share_8547753db3c719e4c436f594a829c7411789333383778-无片尾.mp4` 结尾是画面淡出到黑（带抖音号水印），
与深色片尾卡的灰度差异偏小（14.6），已人工逐帧确认该帧是**正片淡出**而非片尾卡；其视频流最大 PTS 11.133s < 片尾起点 11.167s。

## 未处理的相关文件

- `用户上传/25S任务/share_40f2b0588e2d4cf744ba3206f07522381788467373972.mp4`、`用户上传/25S任务/share_2a30277bc8884d9f6b1e816d3137d38d1788576331539.mp4`：
  属 2026-09-04/05 的旧任务目录，不在本次新上传批次内（其中 `2a30277…` 与本次新上传的同名文件内容相同），未处理。
- `share_7c95bae39c9e9bce9cc00bc8c3cf52331788448715062.mp4`（钢琴演奏）：
  源文件末尾**没有**抖音片尾卡（画面直接淡出到黑），已原样保留，文件名标注「源文件无片尾」。

## 复现命令（单条）

```bash
# 1) 找片尾起点：与最后一帧逐帧差分，diff 骤降处即片尾起点 T（秒）与帧号 N
# 2) 无损裁剪（N = 片尾首帧的帧序号）
ffmpeg -i 源.mp4 -frames:v N -t T -c copy -movflags +faststart 输出.mp4
```
