广东卫视 | 体育频道 · 技术方案
GDTV · 2026-05-31
客户案例 · 体育赛事 AI 剪辑

体育赛事
精彩集锦智能剪辑方案

面向某省级广电体育频道的端到端 AI 剪辑工作流:腾讯云 MPS 大模型版高光检测 + 本地 FFmpeg 流复制保画质 + 音频响度反推法二次筛选 + 一键配乐拼接,把 2 小时全场赛事的人工剪辑从 3~5 小时压缩到 50 分钟

原片时长
2:23小时
AI 检测
22分钟
最终成片
1:16
效率提升
5

核心技术名词

GLOSSARY · 上手前先看这一页

方案中频繁出现的专业术语集中说明。本套工作流由云端 AI 检测 + 本地视频处理 + 对象存储中转三部分协作完成,每个环节由不同组件担当。

MPS Media Processing Service
腾讯云媒体处理服务

腾讯云的视频 AI 处理云服务,提供精彩集锦、视频转码、智能审核、智能字幕、人脸识别等几十种能力。本方案核心使用其「精彩集锦-高级版」(Definition=26),输入一段长视频,云端用大模型分析画面+音频,输出每个精彩片段的起止时间戳和置信度。

角色 · 云端 AI 检测
FFmpeg F-Fast / Forward MPEG
开源音视频处理全能工具

业界事实标准的视频处理命令行工具,一行命令即可完成切片、转码、混音、加字幕、淡入淡出、抽帧等操作。本方案用它做本地切片(流复制保画质)+ 拼接 + 字幕 + BGM 混音 + 响度分析,所有不需要 AI 推理的工序都交给它。

角色 · 本地视频处理
COS Cloud Object Storage
腾讯云对象存储

类似 AWS S3 的云端文件仓库。MPS 任务不接受本地文件,必须先把原片传到 COS,MPS 再以 CosFileInfo 引用。同地域桶可避免跨区流量费,VPC 私网上传可达 100 MB/s。

角色 · 云端中转仓库
force_cls Forced Classification
MPS 高光检测分类参数

告诉 MPS 用哪种"算法分支"做检测:4001 = 足球专用模型(识别黄牌/换人/进球等具体事件,给出标签),10020 = 大模型版(综合精彩瞬间,召回更高但只给 confidence 不给具体标签)。本方案最终选 10020 + 二次细筛。

角色 · MPS 调参字段
流复制 -c copy / Stream Copy
FFmpeg 无损切片模式

FFmpeg 有两种切片模式:重新转码会损失画质,流复制则只是从原文件里"剪刀剪"出一段,不解码不重编码,0 画质损失 + 速度极快(1 小时素材切完只需几秒)。代价是切点必须落在关键帧(GOP 边界),偶有几帧时间戳偏差,但对 1 秒级精度的高光集锦完全够用。

角色 · 切片核心技术
volumedetect FFmpeg Audio Filter
音频响度分析滤镜

FFmpeg 自带的音频分析滤镜,输出片段的平均响度(mean_volume)峰值响度(max_volume),单位 dBFS(满刻度分贝,0 是顶满,-20 是较安静)。本方案用 mean_volume 阈值反推"观众是否在欢呼",进而判断是否进球。

角色 · 进球细筛信号
concat demuxer FFmpeg Concat
FFmpeg 拼接模式

FFmpeg 有两种拼接:concat filter(重转码,参数随便)和 concat demuxer + -c copy(无损拼接,所有片段必须分辨率/fps/采样率/PixFmt 完全一致)。本方案用后者,速度快画质零损失,但需要先把每段显式归一化。

角色 · 拼接核心技术
alimiter Audio Limiter
FFmpeg 限幅器

音频限幅器,强制把信号峰值压在某个上限(本方案 0.89 ≈ -1 dBFS),防止 BGM + 现场声混合后触顶削波(破音)。这是广电播出标准的标配处理,保证最终响度符合 mean -16~-18、max 不超 -1 的播出规范。

角色 · 混音末端处理

方案总览

OVERVIEW · 三段式流水线设计

电视台体育频道每场比赛产生 90~120 分钟原片,传统人工剪辑需 3~5 人时。本方案通过「AI 粗筛 + 客观信号细筛 + 一键合成」三段式流水线,把全片处理时间压缩到 50 分钟以内,且全程可工程化复用。下场比赛只需 1 条命令即可重跑。

六阶段工作流

1
素材准备
~5 min
2
AI 高光检测
~22 min
3
本地切片
~2 min
4
细筛进球
~3 min
5
拼接成片
~1 min
6
配乐混音
~1 min

关键技术指标

原片时长
2h 23m
AI 检测耗时
22 分钟
本地切片
2 分钟
最终成片
1m 16s
分辨率
1280×720@25
混音响度
−15 dB
1

素材准备 STAGE 01

PREPARATION · 上传到对象存储

原片上传到腾讯云 COS,作为后续 MPS 处理的输入。COS 同地域桶可避免跨区流量费,且 MPS 任务能直接以 CosFileInfo 引用,无需重复下载。

资源规格说明
COS 桶test-1433610541ap-guangzhou,与 MPS 同地域
SDKcos-python-sdk-v5分块上传 + 断点续传
对象 Keyfootball/粤超.mp42 GB / 2h23m / h264+aac
关键要点

所有公网传输环节都建议加 SHA256 校验。电视台局域网可走 VPC 私网上传,速度从 ~30 MB/s 提升到 ~100 MB/s,2GB 原片约 20 秒上传完成。

2

AI 高光检测 STAGE 02

DETECTION · 腾讯云 MPS 大模型版

调用 MPS 的 ProcessMedia 接口,触发精彩集锦-高级版(Definition=26)。MPS 内部用大模型分析画面运动 + 音频强度 + 场景切换,输出每个精彩片段的起止时间戳和置信度。

关键参数选型

force_cls含义适用场景
4001足球专用(黄牌/换人/进球)赛前测试调通链路
10020大模型版(综合精彩瞬间)✅ 全片生产用
实测踩坑

大模型版返回的 TagSet 字段为空,仅给 Confidence(1~5)。无法依赖标签直接区分"进球/射门/越位",必须叠加二次筛选(见 Stage 4)。

调用片段

# 提交任务
client = MpsClient(cred, "ap-guangzhou")
req = ProcessMediaRequest()
req.from_json_string(json.dumps({
  "InputInfo": {"Type": "COS", "CosInputInfo": {...}},
  "AiAnalysisTask": {"Definition": 26,
    "ExtendedParameter": '{"hht":{"force_cls":10020}}'
  }
}))
task_id = client.ProcessMedia(req).TaskId

# 容错轮询(60s timeout,连续失败 20 次才退出)
while True:
    status = describe_task(task_id, timeout=60)
    if status.Status == "FINISH": break
    sleep(30)
3

本地切片 STAGE 03

SLICING · FFmpeg 流复制保画质

MPS 返回时间戳后,不让 MPS 直接出片,而是回到本地用 FFmpeg 按时间戳切片。这是本方案的核心成本优化点。

为什么要混合方案
  • MPS 出片会重新转码,画质不可控(CRF/码率/profile 都是平台默认值)
  • 本地 -c copy 流复制 0 损失原画质,1 小时切完只需 ~2 分钟
  • MPS 计费按时长收,纯检测远比"检测+转码"便宜约 60%
# 关键命令:流复制不重编码
ffmpeg -ss $start -i 粤超.mp4 -t $dur \
       -c copy -avoid_negative_ts make_zero \
       output/highlight_$N_$starts_$ends.mp4

13 个片段从 142 分钟原片中切出,总耗时 87 秒(M2 Mac),原画质 1:1 保留。

4

细筛进球射门 STAGE 04

FILTERING · 音频响度反推法(核心创新)

大模型版只给 confidence 不给标签,13 个片段中既有真进球也有常规对抗。用音频响度作为客观信号——进球瞬间观众爆发欢呼,是体育视频里最廉价、最高准的进球指代信号。

# 用 ffmpeg volumedetect 测每段平均/峰值响度
ffmpeg -i clip.mp4 -af volumedetect -f null /dev/null 2>&1 \
  | grep -E "(mean_volume|max_volume)"

判定阈值(实测定型)

mean_volume判定典型场景
≥ −17 dB✅ 确认进球观众爆发性欢呼,持续 3~5 秒
−21 ~ −17 dB⚠️ 可能射门明显欢呼但未爆发,含险情/扑救
≤ −21 dB❌ 非射门常规对抗,无明显情绪波动
KEY INSIGHT

优先用 mean 而不是 max。max 容易被解说员单点叫喊污染("哎呀这个球!"),mean 反映的是观众持续欢呼的能量积累,跟进球高度相关。这个洞察让我们用一个 ffmpeg 命令就完成了原本需要画面识别的工作。

13 段实测分布

总片段
13
确认进球
5
可能射门
2
非射门
6
5

拼接成片 STAGE 05

EDITING · 字幕 + 过渡 + 节目化包装

把人工 review 后保留的 6 段进球射门按比赛时间排序,添加片头/片尾 + 段头字幕 + 淡入淡出,无损拼接成长视频。

视觉设计规范

  • 片头卡 3s:深色底 + 主标题"粤超联赛 · 进球射门集锦" + 副标题,淡入淡出
  • 每段右上角:半透明黑底白字 #N/6 第MM分SS秒
  • 每段左下角:场次水印"粤超联赛 · 精彩瞬间"
  • 段间过渡:0.5s 视频+音频淡入淡出
  • 片尾卡 2s:"—— 全场结束 ——",淡入淡出
工程坑点

concat -c copy 要求所有输入参数完全一致(分辨率/fps/采样率/PixFmt)。处理片头/片尾卡时必须显式归一化

scale=1280:720,setsar=1,fps=25  # 视频归一化
aresample=44100,ac=2             # 音频归一化
6

配乐混音 STAGE 06

MIXING · 业内体育转播标准

BGM 必须做底(不能盖过现场欢呼),且末端要加限幅器防止削波,符合广电响度规范。

混音参数(已定型)

项目作用
BGM 音量−12 dB压低做底,约原响度的 25%
现场声−2 dB微降给 BGM 留 headroom
BGM 淡入/淡出1.5 s比片头淡入更长,自然引入
Limiter 限幅0.89 (−1 dBFS)防止 amix 触顶削波
实测响度mean −15 / max −0.5 dB✅ 符合广电播出标准
# 一键替换 BGM
python add_bgm.py /path/to/your-bgm.mp3
工程化收益

已封装通用脚本 add_bgm.py,支持任意 BGM 文件输入,混音参数自动套用。换 BGM 只跑 1 条命令,本次案例从合成 BGM 切到 Aeon - JJD.mp3 仅用 30 秒。

工程资产沉淀

DELIVERABLES · 下场比赛即用
文件位置作用
football_highlight.pyfootball-highlight/主流程(COS 上传→MPS 提交→轮询→切片)
poll_and_clip.pyfootball-highlight/容错轮询(60s timeout + 重试)
make_highlight_reel.pyfootball-highlight/多段拼接 + 字幕 + 淡入淡出
add_bgm.pyfootball-highlight/BGM 混音(aloop+amix+alimiter)
SKILL.md~/.workbuddy/skills/
tencent-mps-football-highlight/
方法论沉淀,下场比赛直接复用
Skill 包下载 · tencent-mps-football-highlight
完整工作流 Skill 包(SKILL.md + 6 个脚本 + 配置模板),解压到 ~/.workbuddy/skills/ 即可在 WorkBuddy 中直接调用。
17.5 KB ZIP SKILL.md + scripts/ + templates/
下载 Skill 包

视频成果展示

1
原始素材 · 全场
输入

粤超联赛全场录像,2 小时 23 分钟,1280×720@25fps,h264+aac,约 2 GB。

02:23:35 1280×720 2.0 GB
2
进球视频片段 · 6 段精彩瞬间
中间产物

比赛中的 6 个精彩进球 / 射门时刻,按时间顺序排列(素材 3 已移除)。

No.01⏱️ 进球 1
No.02⏱️ 进球 2
No.03⏱️ 进球 3
No.04⏱️ 进球 4
No.05⏱️ 进球 5
No.06⏱️ 进球 6