谓智慧运动场,就是一套利用互联网科技、软硬件集成,实现体育场地升级的解决方案,它可以运用在篮球等一系列球类运动场中,通过摄像头实时捕捉运动员的技术动作以及跑位影像,可以实现场内屏幕直播以及场外网络直播,为草根运动者搭建一个可以展示自己的舞台。
而实质上,赛事直播便是智慧运动场中最不可或缺的一个组成部分。下面就是对体育赛事直播平台以及相关应用的详细介绍。
体育赛事直播平台系统架构
图 1
平台主要包含三大类服务,分别是:视频直播、视频点播以及赛事数据服务。图 1 是一个基本的系统架构图,它包含以下几个部分:
1、核心层
以重采集和轻采集为基础,构建了核心的引擎架构。
2、用户层
分为用户平台和内容开放平台。内容开放平台,开放内容和数据给一些第三方直播平台。
3、合作方
分为赛事开放平台和赛事工具开放两个部分,为合作赛事方提供赛事管理平台及视频加工软件包。
在赛事开放平台上可以做一系列的创建管理工作,如:球队创建、球队管理、赛事管理、联赛管理以及赛事组织内部工作管理。可以将赛事平台开放给全国各地的一些赛事组织,或者是一些比较优质的场馆主,并以城市合伙人的身份与他们进行合作。
赛事工具开放贯穿推流、直播、观看、赛后视频剪辑整个流程。直播过程中的视频处理尤为重要,包括直播画面上实时显示球队/比分贴片、自动剪辑精彩片段、显示球队/球员的技术统计贴片等。比如当比赛过程中某个人进球后,可以实现一分钟内将该精彩片段以及赛事详情(该球员名字、比分)进行显示,并且他的家人或朋友可以实时将该片段分享到微博或者微信。
4、内部平台
分为两部分,管理平台以及基础平台。
赛事直播各系统(平台)交互流程
图 2 是系统各模块间的交互流程图。其中,左边是生产端(左上角是视频采集端、左下角是数据生产端),中间部分对赛事数据和视频进行处理,右边是消费端,用户可通过 App 或第三方平台(比如:Hupu TV)观看加工好的比赛。下面将对流程图各个过程(视频直播、点播)进行详细介绍。
图 2.1
图 2.1 是重采集。指的是在场馆端部署海康摄像头(一个摄像头监控一个方向,需要人工在后台进行导播,切换镜头)、Pixllot 自动跟拍摄像头(自动跟踪篮球或足球轨迹,生成实时画面,无须导播)以及地面系统,用来捕捉视频,之后会分别在场内和场外进行传播。场内传播主要是,将现场的精彩剪辑以及比分数据的变化,放映在现场安装的一个安卓的屏幕上;场外传播主要是,将采集的数据推流到 CDN ,并分发到各个客户端进行直播。
图 2.2
图 2.2 是轻采集的相关流程。轻采集是指在没有相关设备部署及覆盖的场馆内,进行数据采集的一种方式。比如,当没有上述的设备进行数据采集时,可以利用手机进行数据采集,之后将数据流推送到 CDN ,用手机进行直播。
图 2.3
图 2.3 是数据生产过程,包括赛事平台和赛事工具(记分工具),比如说进球、犯规、换人等事件都会记录在云服务平台上。
图 2.4
图 2.4 是一个对视频做处理加工的过程,分为以下几个部分:
- 自动录制:将推流和加工过的流进行保存,以便在赛事结束之后给观众提供一个全程回放的视频。
- 自动剪辑:实时提供精彩片段剪辑(基本上在事件发生一分钟之后就可以制作出来)。
- 自动导播:推出的流是干净的,当中没有添加赛事数据,所以需要自动导播加流。从 CDN 拉流(拉取数据)并将一些赛事数据全部叠加到上面,再推流到 CDN ,提供给 App 访问。
- 人工导播:当使用两个海康摄像头做赛事采集时,需要进行人工切换,此时可以使用人工导播软件进行镜头切换,之后所做的工作内容与自动导播的工作内容一致,这里不做赘述。
- 人工剪辑:赛事结束之后,假如赛事组织方对赛事比较重视,需要提供视频剪辑的服务,那么此时,便会由专人对视频的精彩部分进行剪辑(如加背景音乐、慢镜头、精彩镜头拼接)。
图 2.4 右侧是消费端,当中包含 App、H5 以及一些第三方直播平台,用于给普通观众提供赛事内容的观看。
视频技术实践
下面将介绍视频直播中的实践和存在的问题。其中包含直播流绝对时戳、实时赛事贴片、实时自动剪辑、软件导播、视频剪辑几个部分。
1、直播流绝对时戳
视频流的采集传输系统以及赛事事件和比分的采集系统(由独立的 App 记录赛事数据,上传到云服务中)是两个完全独立的系统,所以当进行实时赛事贴片时,要保证这两个系统的同步,就一定要做一个参考点,即直播流的绝对时戳。
2、实时赛事贴片
- 视频与事件同步
视频与事件同步,指的是在实时自动剪辑、软件导播、离线视频剪辑这些场景下,所遇到的一些问题。首先,音视频时戳是不能复用的,因为从 CDN 拉的直播流,时戳都会被重写,因此需考虑采用别的方式。采取的方案是,通过 RTMP 协议的 0 x 12 数据包来发送绝对时戳, 8 是音频数据包,9 是视频数据包,0 x 12 是数据包,可传送文本数据。具体方法是每隔 1 秒发送一个绝对时戳数据包,且与同时刻的视频帧一起发送,这样就可以确定收到的视频帧的绝对时间,确定了绝对时间之后,就可以将其与 App 记录的现场事件,根据绝对时间进行同步。
图 3
- 比分及事件贴片
图 3 左上角是视频采集端,左下角是赛事采集。中间有一个贴片服务器,同时拉取视频流和赛事事件,根据绝对时间戳做对比(什么时候比分发生变化)更新贴片。
图 4
图 5
图 4 及图 5 是比分贴片的效果图,其中图 4 右下角是篮球赛的比分贴片,图 5 左上角是足球赛的比分贴片。贴片的位置是固定的,比分会根据赛况自动更新,这两个贴片是根据现场执行人员记录的数据(事件发生时间)所做的贴片。
图 6
- 统计贴片
当篮球小节结束,或者足球半场结束时,往往会弹出统计数据。图 6 与图 7 是实时统计贴片,记录的是在某个时间点前,所有球员的比分变化,帖片中各个球队的背景颜色与现场各队球服颜色一一对应,这样做的目的是为了优化用户体验,观众在观看比赛时,可以轻松将比分与队伍对应。
3、实时自动剪辑
对于实时自动剪辑,遇到的问题是事件之间间隔时间少,则会导致剪辑片段不完整。针对这种情况,采用的方法是,在剪辑之前先缓存部分实时视频(两分钟左右),进行剪辑时,实质上是对缓存的内容进行剪辑,然后随着时间的流动慢慢对数据进行更新(数据是一帧一帧进行更新的)。
图 8
图 8 是自动剪辑在 APP 当中的展示,可以实时观看。图下方的两个片段是较为简单的自动剪辑,整个过程大概在一分钟内可以完成;图上方的两个集锦片段是根据赛事结束后的统计所制作的,当某个球员的精彩片段超过三个时,系统会自动生成一个精彩集锦,并为其添加一个封面图(包括球员的名字、对阵双方、事件发生的时间点等),再编码成一段视频供观众观看,这个过程需要耗费两分钟左右的时间。
4、软件导播
- 切换花屏
软件导播时会遇见切换花屏的问题,比如要保证两种剪辑画面同步时,频繁切换就可能会导致花屏。从小时戳切换到大时戳,不会产生问题,反之则会花屏,所以一定要对音视频时戳进行处理,保持时戳线性单调递增。
- 多画面同步
软件导播往往会遇见多画面同步的问题。因为各个直播流彼此之间相互独立,所以要进行同步,没有其他手段,必须使用绝对时戳。
以当前直播流的绝对时戳为准,将当前绝对时戳与其他两路直播流做对比,如果直播流一领先,播放时间领先当前直播流,那么此时可以增加缓冲时间,以保证直播流同步;如果直播流二落后,播放时间落后当前直播流,那么此时可以减少缓冲时间,以保证直播流同步。做缓存增减的前提是在直播前必须要建立一段缓存,保证导播时会缓存十秒左右时间去做缓存增减,这样一来,就可以做到多镜头(画面)同步。
导播人员可以点击某个画面进行切换,而当中场休息或者小节休息时,也可以插播一些其他镜头。图 9 右上角是 APP 直播画面的预览。
5、视频剪辑(多格式拼接)
离线剪辑时会遇到一些问题,如多格式视频拼接等。一开始,编辑人员会将很多精彩片段剪辑并保存下来。在剪辑过程中,有两种方式,一种是利用产生的事件做自动剪辑,另一种是手动剪辑;之后会对这段视频按需添加片头、片尾以及转场,此时可以在电脑本地选择一些合适的视频进行添加,由于添加的这些视频片段与所需剪辑的视频的格式不一致,不能直接进行拼接,针对这种问题,解决方案是,编辑内核采用转码拼接方式,编码器不关闭,解码器轮换文件解码。
图 10 是进行离线剪辑时的编辑界面。
以上就是直播在体育直播草根运动场景中的应用实现。