# TikTok视频深度改编 — ffmpeg命令参考

## 核心原则（2026-06-16血泪教训）
- ✅ **可以做**：调色、镜像、裁水印、分屏、变速、字幕emoji、滤镜、加笑声/反应音效
- ❌ **绝对不要**：加配音解说（旁白）、AI图片slideshow、换脸
- 搞笑是看画面效果笑的，不是说出来的

## 基础改造（镜像+裁水印+调色+文字+无配音）

```bash
INPUT="input.mp4"
OUTPUT="output.mp4"

ffmpeg -y \
  -i "$INPUT" \
  -vf "trim=start=1:end=15,setpts=PTS-STARTPTS,\
hflip,\
crop=iw*0.92:ih:iw*0.04:0,\
scale=1080:1920:force_original_aspect_ratio=decrease,\
pad=1080:1920:(ow-iw)/2:(oh-ih)/2:color=black,\
eq=saturation=1.35:contrast=1.2:brightness=0.03,\
drawtext=enable='between(t,0,2)':text='EMOJI_TITLE':fontsize=80:fontcolor=yellow:x=(w-tw)/2:y=h*0.08:shadowcolor=black:shadowx=3:shadowy=3,\
drawtext=enable='between(t,0,99)':text='@CHANNEL_NAME':fontsize=22:fontcolor=white@0.6:x=w-text_w-12:y=h-35,\
drawtext=enable='between(t,2,5)':text='EMOJI_PUNCHLINE':fontsize=100:fontcolor=yellow:x=(w-tw)/2:y=h*0.7:shadowcolor=black:shadowx=4:shadowy=4" \
  -c:v libx264 -preset fast -crf 20 \
  -pix_fmt yuv420p \
  -movflags +faststart \
  -an \
  "$OUTPUT"
```

注意：`-an` = 不保留原声。如果要保留原声作为BGM，去掉`-an`并在结尾加`-c:a copy`或`-c:a aac -b:a 96k`。

## 分屏特效

```bash
ffmpeg -y \
  -i input.mp4 \
  -filter_complex "\
[0:v]trim=3:9,setpts=PTS-STARTPTS,hflip,crop=iw*0.92:ih:iw*0.04:0,scale=540:960,\
eq=saturation=1.3:contrast=1.1[slow];\
[0:v]trim=1:3,setpts=0.5*PTS,hflip,crop=iw*0.92:ih:iw*0.04:0,scale=540:960,\
eq=saturation=1.3:contrast=1.1[fast1];\
[0:v]trim=9:13,setpts=PTS-STARTPTS,hflip,crop=iw*0.92:ih:iw*0.04:0,scale=540:960,\
eq=saturation=1.3:contrast=1.1[fast2];\
[fast1][fast2]concat=n=2:v=1:a=0[concat];\
[concat][slow]overlay=x=540:y=0[comp];\
[comp]scale=1080:1920,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:color=black,\
drawtext=text='@CHANNEL':fontsize=22:fontcolor=white@0.6:x=w-text_w-12:y=h-35[vout]" \
  -map "[vout]" \
  -c:v libx264 -preset fast -crf 20 \
  -pix_fmt yuv420p \
  -movflags +faststart \
  -an \
  output.mp4
```

## 下载打包

```bash
# 此服务器没装zip！用tar打包
tar -czf funny_package.tar.gz *.mp4

# 启动文件服务器（无需密码，张哥直接下载）
cd /root/videos/ai_samples && python3 -m http.server 8899
# 后台启动（必须用background=true, 不能用nohup）
```

## 搞笑配音——笑声/反应音效（非解说！）

**2026-06-16：张哥明确否决配音解说，要的是笑声效果「哈哈哈哈」**。张哥说"配音就是要那种哈这么笑的"。

实战经验：音量要适中，`volume=3.0`可能太大（覆盖原声），建议先用`volume=1.5`测试，张哥反馈后再调整。笑声延迟时间（adelay）要配合画面笑点，通常在笑点发生后0.5-1秒出笑声最自然。

```bash
# 生成笑声（高音调+快速）
edge-tts --voice zh-CN-YunxiNeural --rate +50% --pitch +60Hz \
  --text "哈哈哈哈！我去！" --write-media /tmp/laugh1.mp3

# 不同节奏的笑声
edge-tts --voice zh-CN-YunxiNeural --rate +40% --pitch +40Hz \
  --text "哎呦哈哈哈！" --write-media /tmp/laugh2.mp3

edge-tts --voice zh-CN-YunxiNeural --rate +60% --pitch +80Hz \
  --text "啊哈哈哈哈！卧槽！" --write-media /tmp/laugh3.mp3
```

## 多音频混合（原声+BGM+笑声）

**关键参数：** `adelay`控制笑声出现时间（毫秒），`volume`控制音量比例。

```bash
INPUT="source.mp4"
OUTPUT="final.mp4"

# 先做无配音视频（调色+镜像+水印等效果）
ffmpeg -y -i "$INPUT" -vf "..." -c:v libx264 -preset fast -crf 20 -an novideo.mp4

# 混合：原声30% + BGM 12% + 笑声在不同时间出现
ffmpeg -y \
  -i novideo.mp4 \
  -i "$INPUT" `# 原声，atrim截取对应片段` \
  -i /tmp/bgm.mp4 \
  -i /tmp/laugh1.mp3 \
  -i /tmp/laugh2.mp3 \
  -filter_complex \
  "[1:a]atrim=start=1:end=12,volume=0.3[a_orig];\
   [2:a]volume=0.12[a_bgm];\
   [3:a]adelay=2000|2000,volume=3.0[a_h1];\  # 2秒后出笑声
   [4:a]adelay=5000|5000,volume=2.5[a_h2];\  # 5秒后出笑声
   [a_orig][a_bgm][a_h1][a_h2]amix=inputs=4:duration=first:dropout_transition=2[aout]" \
  -map "0:v:0" -map "[aout]" \
  -c:v copy -c:a aac -b:a 128k -shortest "$OUTPUT"
```

**注意：** `[0:a]` 在novideo.mp4是纯视频无音频时不可用。原声必须从原始视频文件提取（input index 1）。