スクラッチチュートリアルの要約からライブ放送プラットフォームを開発して構築する
始める前に書く
また、オーディオとビデオ、画像処理、ストリーミングサービスなどに関連する技術を含む、多くの点在する技術記事も共有しました。ただし、これらはすべて、システムではなく特定の機能を実装するように作成されています。そのため、多くの読者は混乱して困惑しています。読者は、始める前に、ストリーミングメディア関連のアーキテクチャと知識をある程度理解している必要があります。
開発者にとって、これらはすべて言うのに良いです。しかし、開発者のための記事のこのシリーズはに入るためにして非技術的な読者のために、それは、直接、落胆しているということができるまでの技術と非技術的なために、それぞれ、チュートリアルの2種類を更新するために、チュートリアルのシリーズ「非技術的に」なりませんコードの記述が表示され、理解しやすくなるように努力します。開発者が「テクニカル」シリーズのチュートリアルを取得できるようにするには、コード開発と最適化のチュートリアルがたくさんあります。
この一連の記事では、具体的なアプリケーションシナリオを実践的なチュートリアルとして使用し、ライブブロードキャストプラットフォーム全体のアーキテクチャの設計方法と、これらのサブシステムまたはモジュール機能を開発して完全なライブブロードキャストプラットフォームを構築する方法を体系的に説明します。
補足:このチュートリアルは、ビデオ会議、ビデオ監視、その他のアプリケーションシナリオにも適用できます。ビデオ会議とライブブロードキャストにおけるLianmaiの原理は同じですが、ビデオ監視とライブブロードキャストプラットフォームの違いは、アクティブなプッシュエンドがなく、プルエンドまたは転送エンドが多いことです。
ライブ放送プラットフォームの構造
盲人が象に触れる問題を防ぐために。生放送プラットフォーム全体の構造を正面から理解し、この面を個々のサブシステムまたは特定のモジュール機能に分解して、生放送プラットフォーム下の各システムモジュールの機能を明確に理解できるようにします、それがどのように機能するか。
最も単純なライブブロードキャストプラットフォームの構造:
実際、ストリーミングサービスを構築している限り、最も単純なライブブロードキャストプラットフォームは完成しています。残りはライブUPのメインストリームを待ってから、ユーザーがそれを見ることができます。それは非常に簡単ですか。
もちろん、これだけでは不十分です。ユーザーは、ライブブロードキャストアドレスを取得して再生する方法を知りません。ライブUPホストは、ストリームをどこにプッシュするかわかりません。ライブブロードキャストプラットフォームは、ユーザーがライブUPホストの部屋を表示できるようにするもので、スクリーニングや表示に便利です。ユーザーがライブ放送しているメインホストと通信するのに便利です。ライブUPメインのプッシュストリーミングについては、ライブブロードキャストアドレスを知っており、OBSなどのプッシュツールを使用してストリームをプッシュしてからライブブロードキャストを実行する必要があります。
CDN配信:
なぜCDN配信が使用されるのですか?これは、ライブブロードキャストプラットフォームを使用してライブブロードキャストを視聴するユーザーが増えているためです。
例:1080P HDライブブロードキャストをプッシュしているライブUPマスターが1人だけいる場合、ビットレートは4Mbps /秒(512KB /秒)で、同時に1,000人のユーザーが同時に視聴し、各ユーザーも4Mbps /秒( 512KB /秒)、1,000人のユーザーには4000Mbp /秒(500MB /秒のリアルタイムトラフィック)の帯域幅も必要です。つまり、3,000未満のユーザーに10ギガビットの帯域幅が必要です。
どうする?帯域幅のハード抵抗のみに依存することは非現実的であると考えられます。そして、国内の帯域幅コストは安くはありません。そのため、現時点では、ストリーミングメディアセンターサーバーの帯域幅の負荷を軽減するためにCDNが必要であり、CDNの配布は通常、トラフィックに応じて課金され、世界には無料の昼食はありません。
このとき、ライブブロードキャストプラットフォームの構造は次のようになります。
プッシュエンド
プッシュ側で一般的に使用されるソフトウェアは、OBSプッシュツールです。このツールは詳細には触れませんが、広く使用されています。
もちろん、開発者にとってはFFmpegとopencvは間違いなく必要ですFFmpegはオーディオとビデオのエンコードとプッシュストリーミングを行うことです。もちろんOpencvは美しさを実現するために使用されます。
ストリーミングサービス
ストリーミングメディアサービスは、リアルタイムビデオの中継局です。
ストリーミングメディアサービスは、一般的に言えば、nginx、srs、red5などです。このシリーズのフォローアップチュートリアルでは、主にnginxとsrsを扱います。
プルストリームプレーヤー
PCエンド:VLC
Webエンド:videojs、flv.js、hls.js、ckplayerなど。
モバイルエンド:ijkplayer
WeChatアプレット:ペンギンクラウドを使用して再生することをお勧めします。そうでない場合、互換性の問題が発生し、ペンギン独自のWebページのみをテストします。プレーヤーは、QQ WeChatアプレットおよびパブリックアカウントと同時に互換性があります。
一連のチュートリアルのフォローアップでは、主にVLCを使用してプルストリームの再生をテストします。VLCには大きな遅延がありますが、互換性は最高です。Web側のテストでは、主にvideojsとflv.jsとペンギンプレーヤーを使用します。
CDN分布
多くのCDNサービスプロバイダーは、rtmp、flv、hlsなどのストリーミングメディアの配布をサポートしています。これらのプロバイダーは特定の製造元を含み、アドバタイズしないため、ここにはリストされていません。
次の章
スクラッチストリーミングメディアサービスからのライブブロードキャストプラットフォームの開発と構築1-nginxストリーミングメディアサービスビルドのビルド
スクラッチストリーミングメディアサービスからのライブブロードキャストプラットフォームの開発と構築2srsストリーミングメディアサービスのビルド
javacvシリーズ
プッシュストリームの終了の実装:https : //blog.csdn.net/eguid_1/article/details/52678775
プルストリームの終了の実装:https : //blog.csdn.net/eguid_1/article/details/52680802
以前に作成したストリーミングサービスの構築
nginx-rtmpサービスの構築:https : //blog.csdn.net/eguid_1/article/details/51749830
eguidオリジナル記事をサポートしてくれてありがとう。記事の転載を歓迎しますが、出典も明記してください。作成は簡単ではありません。どうもありがとうございました。