# 直播及视频处理

ffmpeg 2pass 命令（x264）：

```javascript
ffmpeg  -i C:\Users\yinmi\Downloads\春日影练习-mix.mp4 -c:v libx264 -c:a copy -pass 1 -tune film -preset veryslow -profile:v high -crf 17 crj1p.mp4
ffmpeg  -i C:\Users\yinmi\Downloads\春日影练习-mix.mp4 -c:v libx264 -c:a copy -pass 2 -tune film -preset veryslow -profile:v high -b:v 1000K crj2p.mp4
```

说明：先用 `crf=17` 进行一次压制，如果对体积满意，就无需二压；否则用第二条命令进行二压。

crf=17 接近视觉无损，如果想要更小的体积，可以以 crf=21\~25 开始

限制峰值码率：

```none
ffmpeg -i .\audio.m4a -an -i .\Ultimate.mkv -c:a copy -c:v libx264 -preset veryslow -tune animation -pass 2 -profile:v high -b:v 30M -maxrate:v 35000K -bufsize:v 10000K -pix_fmt yuv420p -r 60 LL4K-2pass.mp4
```

**ffmpeg 使用苹果 AAC**


:::info
苹果 AAC 仅支持 macOS 平台

:::

```bash
ffmpeg -i ichiban.flac -c:a aac_at -aac_at_mode vbr ichiban-mix.m4a
```

**HEVC**

```bash
ffmpeg -i .\ext.mp4 -c:a copy -c:v libx265 -preset medium -pix_fmt yuv420p10le -profile:v main10 -crf 28 -r 60 encode.mp4
```

把 `-crf 28` 改为想要的视频质量，x264 的 CRF=23 大约相当于 x265 的 CRF 28。

把 `-r 60` 改为视频帧率（如果原视频帧率不稳定的话），或者删除此参数。

码率参考：

CS2 HEVC medium 4K60 CRF=28: \~11Mbps

弹琴 HEVC medium 1080p60 CRF=28: \~700Kbps

弹琴 HEVC medium 1080p60 CRF=23: \~2000Kbps

弹琴 HEVC medium 1080p60 CRF=18: \~5300Kbps

## 剪辑

```powershell
ffmpeg -an -i .\mtdd2.mp4 -ss 0.2 -i .\mtdd2.wav -c:v copy -c:a pcm_s16le 1.new.mkv

ffmpeg -ss 6:09 -t 1:29 -i .\1.new.mkv -c:v rawvideo -c:a pcm_s16le 2.part1.mkv
ffmpeg -ss 27:04.5 -t 0:33.5 -i .\1.new.mkv -c:v rawvideo -c:a pcm_s16le 2.part2.mkv
ffmpeg -ss 30:14.1 -t 1:32.9 -i .\1.new.mkv -c:v rawvideo -c:a pcm_s16le 2.part3.mkv

ffmpeg -f concat -i .\concat.txt -c:a flac -c:v libx265 -preset medium -pix_fmt yuv420p10le -profile:v main10 -crf 28 -r 60 3.clip-cfr.mp4

# 只要是指定帧率重编码，就用mp4，这样之后重新灌装时不会变成VFR（just for 强迫症）。

ffmpeg -an -i .\3.clip-cfr.mp4 -i .\3.clip-cfr.m4a -c:a copy -c:v copy 4.mutongduandi-v2-final-cfr.mp4
```

---

**Documents**

- [SRS](https://notes.bleatingsheep.org/s/livestreaming/doc/srs-iJL6gP9wH0)
- [OBS AMF](https://notes.bleatingsheep.org/s/livestreaming/doc/obs-amf-RTy6RcDDc1)