ビデオ放送番組(プレイヤーとSDK)

ビデオストリームの発生源である第1アンカー側は特定のデバイスを介してデータを収集します。たとえば、私たちは、車の端子を介してビデオストリームデータを取得することです。

 

演奏終了に続いて、プレイヤー側の機能は2つのレベルがあり、最初のレベルは重要なニーズであり、別のレベルは運用レベルです。このような要件を持っている多くのシーンでは、そのようなオープニング秒など、いくつかの非常に重要な指標を伴う、最初のレベルを見て、その後、いくつかの重要なコンテンツ著作権保護のために。より良い結果を達成するために、我々はいくつかのシーンで重要なニーズであるサーバーインテリジェント解像度、で行う必要があります。エンドプレイでは、社会的な製品のために生きる、のは、機能の運用レベルである第二のレベルを見てみましょう、観客はリアルタイムでビデオストリームのアンカー端部の上に押され、そして観客を参照し、いくつかのアンカーやその他のインタラクティブを持っていると思いますそれは、親指のように含まれており、より高度な贈り物アイテムである機能な弾幕を、チャットがあります。

ライブサーバーのコア機能は、ビデオプラグフローのアンカー端を収集するために設けられ、増幅されたすべての観客を終了するために押される。このコア機能に加えて、このような認証および承認、リアルタイムトランスコーディングおよびビデオの接続、自動カム・ウォン、マルチスクリーン、およびクラウドストレージやその他の機能を記録するなどの運用ニーズの多くのレベルは、あります。また、ビデオストリームの打ち上げのためのエンドアンカーは、劇の末、その監視の中央部分の品質に到達するために、ならびにこれらのインテリジェントなスケジューリングを監視するために、リンクの一部を通過する途中必要で、需要も非常に重要です。実際には、両方のプレイヤーは、彼らの要求だけでビデオを撮影し、簡単なことを、ビデオを再生されません、アンカーまたは終了を終了します。このコアの要求が満たされた後、多くのキーが要求されている満たす必要があります。例えば、生の消費者製品のために、これら三つのモジュールに加えて、我々は、ストリーム再生制御をプッシュするビジネスサービスの終了を実装し、すべての利用者の状態を維持する必要があります。このように、それは生きて利用できる消費者向けの製品を構成しています。

 

ライブビデオプログラム(含む APPが含まれています)

レコーディング - > コーディング- > ネットワーク伝送- > デコード- > プレイ

上記方法によれば、以下の技術的ポイントに分け、ライブ全体的なプロセスです。

どのようにライブ映像を記録することができますソースストリーミング/ コーディング/ パッケージリアルタイムのライブビデオをアップロードする方法ビデオのストリーミング

プッシュする方法 / プッシュする場所/ ストリーミングサーバーをプッシュするライブビデオを再生する方法読み取る方法:HLS / RTMP / FLV)彼らがどのように相互作用するか、ライブの間でユーザーを

完全なビデオ放送システムを構築するには?取得、前処理、符号化、伝送、復号及びレンダリング:完全なシステムは、一般に、いくつかのライブリンクを含みます。プラスのサーバ・プロセスは、伝送の過程で終了します。このモデルは、実質的に次のように:

 

プラグフローは、サーバプロセスに送信コンテンツ取得フェーズ良いパケットを指します。

次のようにプロセスは以下のとおりです。

出力装置(AVCaptureVideoDataOutput)後に元のサンプルデータを取得する - ビデオデータ(YUV)及びオーディオデータ(AAC)を、

(FFMPEG)は、圧縮オーディオおよびビデオ・データを符号化するためにハードコードされた(システムに対応するAPI)を使用して、またはソフト符号化され、それぞれ、H.264ビデオ符号化データ及びAACオーディオデータ。

異なるカプセル化フォーマット(例えば、FLV、TS、MPEG-TS)。

ストリーミング経由でサーバにアップロードこのステップ(HLSフラグメント生成戦略とM3U8インデックスファイル)と組み合わせるとHLSプロトコルを使用します。

配信サーバ関連のプロトコル主流プッシュプロトコル、並びにそれらの長所と短所次のように:

 

 

 

 RTMP

RTMP是Real Time Messaging Protocol(实时消息传输协议)的缩写,是Adobe公司为Flash/AIR平台和服务器之间音、视频及数据传输开发的实时消息传送协议。

RTMP协议基于TCP,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包。RTMP是目前最主流的流媒体传输协议,对CDN支持良好,实现难度较低,是大多数的直播平台的选择。

不过RTMP有着一个最大的不足——不支持浏览器,且Adobe已不再更新。因此直播服务要支持浏览器的话,需要另外的推送协议支持。

HLS

Http Live Streaming是由Apple公司定义的基于HTTP的流媒体实时传输协议。它的原理是将整个流分为多个小的文件来下载,每次只下载若干个。服务器端会将最新的直播数据生成新的小文件,客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。基本上,HLS是以点播的技术实现了直播的体验。因为每个小文件的时长很短,客户端可以很快地切换码率,以适应不同带宽条件下的播放。

分段推送的技术特点,决定了HLS的延迟一般会高于普通的流媒体直播协议。

传输内容包括两部分:一是M3U8描述文件,二是TS媒体文件。TS媒体文件中的视频必须是H264编码,音频必须是AAC或MP3编码。

由于数据通过HTTP协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,不过HLS的

WebRTC

WebRTC(Web Real-Time Communication),即“源自网页即时通信”。

WebRTC是一个支持浏览器进行实时语音、视频对话的开源协议。

WebRTC的支持者甚多,Google、Mozilla、Opera推动其成为W3C推荐标准。

WebRTC支持目前的主流浏览器,并且基于SRTP和UDP,即便在网络信号一般的情况下也具备较好的稳定性。

 

此外,WebRTC可以实现点对点通信,通信双方延时低,是实现“连麦”功能比较好的选择。 

拉流,指服务器已有直播内容,用指定地址进行拉取的过程。根据协议类型(如RTMP、RTP、RTSP、HTTP等),与服务器建立连接并接收数据;流程如下:

解析二进制数据,从中找到相关流信息;根据不同的封装格式(如FLV、TS)解复用(demux);

分别得到已编码的H.264视频数据和AAC音频数据;

使用硬解码(对应系统的API)或软解码(FFMpeg)来解压音视频数据;经过解码后得到原始的视频数据(YUV)和音频数据(AAC);

因为音频和视频解码是分开的,所以我们得把它们同步起来,否则会出现音视频不同步的现象,比如别人说话会跟口型对不上;

最后把同步的音频数据送到耳机或外放,视频数据送到屏幕上显示。

 

 

直播架构(包括APP)

  1. 采集端流程

            1)音视频采集

            2)视频处理

            3)音视频编码压缩

            4)把音视频封装成FLV.TS

       采集端;(常用框架)

              AVFoundation框架 数据

              FFmpeg 框架  音频压缩

              X264 框架   视频压缩

              Libremp 框架   推流

  1. 服务器流程

(1)数据分发 SDN

(2)展示画面

(3)录制视频

(4)实时转码

       常用服务器;

              SNSBMSnginx

                

  1. 播放端流程

(1)FLV.TS中获取音视频数据

(2)音视频编码

(3)播放

 

 

RTSP;实时流传输协议,是TCP/IP协议体系中的一个应用层协议.RTSP在体系结构上位于RTPRTCP之上,它使用TCPUDP完成数据传输。

RTMP;实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。

FLV中的TS;首先引入dtsdecode time-stamp)的概念,解码时间戳,标识数据送入解码器的时间,就是开始解码的时间,应该按时随着解码顺序而递增的。 flv格式在码流里有time-stamp位。由TimestampTimestampExtended组合得出TStime-stamp),单位是毫秒。

可见TS是递增的,又知道此码流有B帧,所以播放顺序一定是和解码顺序不同的。所以flv中的TS应该是DTS

HLSHttp Live Streaming是由Apple公司定义的基于HTTP的流媒体实时传输协议。它的原理是将整个流分为多个小的文件来下载,每次只下载若干个。服务器端会将最新的直播数据生成新的小文件,客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。基本上,HLS是以点播的技术实现了直播的体验。因为每个小文件的时长很短,客户端可以很快地切换码率,以适应不同带宽条件下的播放。

简单讲就是把整个流分成一个个小的,基于HTTP的文件来下载,每次只下载一些,前面提到了用于H5播放直播视频时引入的一个.m3u8(extended M3U playlist)的文件,这个文件就是基于HLS协议,存放视频流元数据的文件。

分段推送的技术特点,决定了HLS的延迟一般会高于普通的流媒体直播协议。

传输内容包括两部分:一是M3U8描述文件,二是TS媒体文件。TS媒体文件中的视频必须是H264编码,音频必须是AAC或MP3编码。

由于数据通过HTTP协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,不过HLS的WebRTCWebRTC(Web Real-Time Communication),即“源自网页即时通信”。

WebRTC是一个支持浏览器进行实时语音、视频对话的开源协议。WebRTC的支持者甚多,Google、Mozilla、Opera推动其成为W3C推荐标准。WebRTC支持目前的主流浏览器,并且基于SRTP和UDP,即便在网络信号一般的情况下也具备较好的稳定性。

 

おすすめ

転載: www.cnblogs.com/taluo2019/p/10942860.html