在视频流媒体相关的项目中,我们经常遇到诸如“推流”、“拉流”、“转发”和“转码”等术语。这些名词究竟代表什么意思呢?它们在流媒体项目中又各自具有何种意义呢?特别是在当前视频融合的项目日益增多,视频资源愈发丰富的背景下,视频相关项目的应用流程也变得越来越复杂。搞清楚这些名词定义,对于我们理解项目和应用会有很大的帮助。
推流
让我们首先来了解一下推流。当我们提及视频时,通常将其称为流媒体,这是因为我们在观看视频时,视频流需要像流水一样实时保持畅通,经过我们的视线。
推流的最简单直观理解就是我们目前热门的视频直播。当我们打开摄像头,开始录制视频,我们需要将录制的视频实时上传到直播平台的服务器上,这个操作就被称为推流。例如,我们通过RTMP方式,将视频流进行封装推送到流媒体服务器,这是视频直播的第一步。
在一些行业项目中,推流也得到了非常广泛的应用。例如,我们可以将现场的无人机画面回传到指挥中心。在很多情况下,这都是采用推流的方式。无人机会将画面推送到一台流媒体服务器上,再由流媒体服务器将接收到的视频流进行二次的分发和处理。
拉流
此前我们以直播为例,但当开始直播时,我们需要将视频流推送至流媒体服务器。同样地,当希望观看直播时,便需从流媒体服务器上获取视频流以供观赏。这便是一种典型的拉流应用。
拉流是一种通用的技术,可以通过多种协议实现,如RTMP、RTSP、FLV、HLS以及WebRTC等,以适应不同的应用场景。在许多行业项目中,例如视频监控系统,我们通常通过视频接入网关将摄像头采集的视频数据传输到网关。当需要查看特定摄像头的实时视频时,我们可以在网关上针对该摄像头启动拉流流程,以便从指定的摄像头获取视频数据。
转发
在数据流的传输过程中,我们可能会采用不同的流媒体协议。比如在视频监控整合的项目中,我们会通过FLV的方式去拉取一个RTSP摄像头的数据流。这时候,我们需要部署一台视频网关,它的作用就是将RTSP摄像头的数据流转换为FLV格式进行播放,这种情形通常被称为转发。
通过思载科技的视频接入网关,在进行拉流操作时,可以采用多种方式如SIP、FLV、HLS和WebRTC等。网关在接收到指令后将拉取相应的摄像头。针对不同的视频流协议,视频接入网关具备流媒体协议的转换能力。在拉流过程中,可将摄像头的RTSP和GB/T28181等格式转换为可用播放方式。
转码
转码在视频项目中通常是必不可少的,特别是对于基于互联网的视频项目而言,例如我们当前观看的直播。实际上,转码占据了此类项目的大部分成本。由于转码涉及对视频流进行解码后再进行编码,因此需要大量的计算资源。为了实现高效的转码,通常会借助GPU,但这种方式成本较高。
那么,为什么我们一定要进行视频转码呢?以视频直播为例,虽然我们录制的视频只能采用一种分辨率,但观众的手机等播放设备的播放能力却各不相同。高端手机支持更高的分辨率,而廉价手机则只能支持较小的分辨率。当我们的视频源分辨率过高时,很多用户将无法播放视频。因此,直播平台在接收到直播推流后,会对其进行转码,转换成多种分辨率,以适应市面上的各种播放分辨率。
当然,转码不仅仅是对分辨率进行调整。大多数视频融合项目涉及到跨系统的互通,例如一个视频系统采用H.264编码,另一个系统采用H.265编码,这时就需要对视频的编码格式进行转码。
此外,视频转码服务器还可以对视频的帧率、码率进行调整,以适应各种环境下的视频传输保障。例如,当我们需要通过卫星网络召开一个视频会议时,我们需要调整视频的编码格式、帧率、码率等一系列参数,以确保在有限的带宽下获得更好的视频效果。
视频转码的方法多种多样,既可以利用CPU、GPU,也可以借助独立的视频转码服务器进行。根据项目的具体需求,我们可以进行相应的配置。思载科技的视频转码服务器提供一体化的视频转码方案,兼容多种协议,可通过WEB进行配置,能同时处理多路视频转码,并能适应多种视频系统和平台,在需要转码的环境中能轻松提升转码能力。