ACM ICPCラむブストリヌム仕組み





優勝に぀いお



ACM ICPC International Olympiadは、䞖界の孊生チヌムプログラミング競技䌚の䞭で最倧のむベントです。 オリンピアヌドは70幎代から開催され圓時はアメリカの倧孊間の競争のようでした、90幎代埌半から他の囜々が積極的に参加しおきたした。 2015幎のITMO倧孊は、ACM ICPCで6回受賞しおいたす。



圓然、オリンピックぞの関心は、参加しおいる倧孊自身だけでなく、䞖界䞭の䜕千人もの人々によっお瀺されおいたす。 そしお、ACM ICPCは参加者ずそのトレヌナヌにずっおの「䌚議宀」むベントではないため、オリンピアヌドファむナルのオンラむンブロヌドキャストがあり、むベントの終わりに「ラむブ」で芋るこずができたす2015ファむナルのブロヌドキャストはここで芋るこずができたす 。 攟送の線成方法、その実装プロセスで䜿甚される興味深い技術的゜リュヌションに぀いおは、本日䞻催者に代わっお「盎接」お䌝えしたす。



ACM ICPCブロヌドキャスト履歎



2009幎にストックホルムで初めおワヌルドカップ決勝のオンラむン攟送が行われたした。 2009幎から2012幎にかけお、王立技術研究所スりェヌデンの持続可胜なコミュニケヌションセンタヌのチヌムが攟送に埓事したした。 専門はリモヌトビデオ線集でしたが、撮圱ず送信はSDIカメラずビデオ線集ずいう埓来のビデオ方匏で行われたした。







スタゞオは2011幎に芋えたした



ただし、ACM ICPCはプログラミング競技であり、攟送甚のビデオを提䟛するサむトの暙準カメラに加えお、競技䞭にチヌムビデオをストリヌミングするりェブカメラが各チヌムコンピュヌタヌにむンストヌルされたす。 さらに、コマンドコンピュヌタヌのバックグラりンドで起動されたスクリプトは、各コマンドのスクリヌンキャストを蚘録し、同様にブロヌドキャストしたす。







2012幎のスタゞオ-䜜業は埓来の方法で行われおいたす



したがっお、ITMOナニバヌシティチヌムがチャンピオンシップのオンラむンブロヌドキャストの責任を負うようになったずき、暙準のビデオ制䜜テクノロゞヌからより興味深い゜リュヌションに切り替えるこずが決定されたした-YoutubeずTwitchでのストリヌミングブロヌドキャスト、ビデオ凊理および線集甚の匷力なコンピュヌタヌずVLC / ffmpegの䜿甚以前に䜿甚されたハヌドりェアずは察照的 Blackmagic゜リュヌション。



この決定は䞻に、ACM ICPCファむナルが毎幎さたざたな囜で開催されるため、賌入した機噚の茞送が䞻催者にずっお重倧な問題になる可胜性があるためです。 さらに、ブロヌドキャスト゜フトりェアは他の競技䌚でも䜿甚できたす。



ブロヌドキャストデバむス図コンテンツ取埗ステップ



技術ずハヌドりェア


コンテストのシステムは、りェブカメラのストリヌムず、コンテストに参加するすべおのチヌムの画面、参加者からの小包のフィヌド小包は怜蚌のために送られた問題の解決策を提䟛したす。



ホヌルの䞀般的なビュヌを撮圱するには、2台のAXIS V5915ネットワヌクPTZカメラを䜿甚したす。 このカメラを䜿甚するず、1080pの解像床でビデオを撮圱でき、Webむンタヌフェむスを䜿甚しお調敎できたす。 届きにくい堎所に蚭眮されたカメラに電力を䟛絊するために、PoEむンゞェクタヌを䜿甚したすこれはネットワヌクデバむスに電力を䟛絊する䟿利な方法です通垞の電源をPoEむンゞェクタヌに接続し、むンゞェクタヌ自䜓をむヌサネットケヌブルに接続しおから、2番目のアダプタヌからカメラを接続したす。電源はむヌサネットケヌブルを介しお送信されたす。











䞊蚘に加えお、4台のポヌタブルビデオカメラを䜿甚したす。信号は、 SWITバッテリヌで駆動される4台のTeradek Clipを䜿甚しお送信されたすコンテスト党䜓でこれらのバッテリヌを䜿甚できたす。











Clip'ovの1぀に基づいお、モバむルコンプレックスを組み立おたした。 バッテリヌ付きのバックパックで、そのストラップの1぀には、クリップずGoProが取り付けられたベルクロが付いおいたす。 チヌムにボヌルを配垃するボランティアにそれを眮くこずを蚈画しおいたす。







バルヌンは、正しく解決されたタスクのためにチヌムに配垃されたす



ICPC分析


アナリストチヌムは、パッケヌゞのログだけでなく、参加者のコンピュヌタヌから定期的なバックアップも受け取るKatalyzerアプリケヌションを絶えず開発しおいたす。 圌らの分析により、チヌムが珟圚取り組んでいるタスクを理解するこずができたすたずえば、a.cppファむルがアクティブに倉曎されおいる堎合、おそらくタスクAを超えおいたす。 さらに、アナリストは䞻芁なチヌムの画面を監芖し、チヌムが誰をどのプログラミング蚀語で曞いおいるかを把握し、䜕が起こっおいるかを定期的に評䟡したす。



チヌム


オンラむン攟送䞭に占有されたビデオグルヌプは10人のビデオ撮圱者で構成され、順番に、チャンピオンシップ䌚堎ずラむブむンタビュヌのフラッシュゟヌンからビデオを提䟛し、タスクの分析を蚘録したす。







チャンピオンシップホヌル



分析チヌムは通垞、分析の準備ず蚘録に加えお、 自動分析装眮からの興味深いむベントを芋る15人で構成されたす AutoAnalystは、パッケヌゞ、コンピュヌタヌのバックアップ、参加者画面のリストを远跡するACM ICPCチャンピオンシップ専甚に開発されたアプリケヌションです、むベントログに興味深いニュヌスを远加したす手で。 さらに、アナリストは、各チヌムおよび各参加者に察しお、チヌムを玹介するずきに衚瀺するプロファむルを事前に準備したす。







北京倧孊チヌム。 チャンピオンシップ攟送フレヌム



ICPCLiveチヌムは、ディレクタヌ、ディレクタヌ、デザむナヌ、プログラマヌ、ビデオ線集者の15人で構成されおいたす。 すべおがうたくいけば、競技䞭、どのチヌムスクリヌンをどの瞬間に衚瀺するかを遞択し、新しいビデオをスケゞュヌルに远加し、時間内に最も興味深いカメラからのビュヌを接続するだけです。



さらにメディアサヌビスのビデオずビデオ


オンラむンブロヌドキャストでは、事前に録画されたビデオを䜿甚したす。 これには、ICPCNewsメディアサヌビスビデオこれらのビデオは、YouTubeチャンネルでさらに利甚可胜 、䞻芁な人々ずのむンタビュヌ、チャンピオンシップのお気に入り、スポンサヌが含たれたす。 これらのビデオのほずんどは事前に蚘録されおいたす。



ビデオ解析では、状況は異なりたす。 タスクの条件は機密性の向䞊の察象であるため、ビデオセッションの蚘録は、すべおのチヌムがサむトの倖の䞖界からすでに確実に隔離されおいる競技の開始ず同時に開始されたす。 アナリストが準備し、蚘録し、ICPCNewsず䞀緒に分析をマりントしおブロヌドキャストし、ディレクタヌはそれらを攟送するタむミングを決定したす。



コンテンツ凊理フェヌズ



技術ずハヌドりェア


ビデオストリヌムは、カメラからの画像ず、暙準のクロマキヌを䜿甚しお䞊郚に重ねられるむンフォグラフィックの2぀の完党に異なる郚分に分割できたす。 最も単玔な、぀たりカメラから始めたしょう。 それらからの情報の流れを制埡するための、私たちにずっお最も簡単で合理的な解決策は、倖郚Wirecast゜フトりェアでした。



Wirecastは、今埌のビデオのスケゞュヌルに䜿甚したAPIを䜿甚しお、事前に蚘録されたビデオをダりンロヌドするのに驚くほど䟿利であるこずが刀明したした。 同時に、Wirecastは比范的安䟡です。特に、攟送䞭に゜フトりェアのコストず請負業者サヌビスの支払いを比范する堎合はそうです。



プロゞェクトのすべおのむンフォグラフィックも、チヌムによっお瀟内で䜜成されたす。 Javaがプログラミング蚀語ずしお遞択されたした。 同時に、むンフォグラフィックを䜜成するずいう点で最もシンプルな゜リュヌションは、同時に最も゚レガントであるこずが刀明したした。すべおのグラフィックはキャンバスに描かれおいたす。 りィゞェットは1/25秒ごずに再描画されたす。 画面の隅にある小さなビデオブロックに぀いおは、vlcjラむブラリを䜿甚しお管理したした。vlcjラむブラリは、vlcプレヌダヌの関数をネむティブに呌び出すためのJavaシェルです。



ビデオストリヌムを操䜜する際の䞻な問題は、コンポヌネントを䜜成するこずではなく、それらを管理するこずです。 昚幎、管理は、むンフォグラフィックにtcp情報を提䟛する暙準Javaフォヌムを介しお行われたした。 同じ幎にさらに進んで、耇数のナヌザヌからの倉曎を同時にサポヌトし、むンフォグラフィックを描画するtcpコンピュヌタヌ䞊のすべおの情報衚瀺内容ず衚瀺方法を提䟛する特別なhttpサヌバヌを䜜成したした。







倖芳ビデオずむンフォグラフィック



Javaでhttpサヌバヌを䜜成するために利甚可胜なフレヌムワヌクを研究したので、 Vaadinを遞択したした 。 フレヌムワヌクを定期的に䜿甚するプロセスで、ストリヌムずネットワヌクに問題があるため、おそらくこの゜リュヌションは最適ではありたせんでした。 しかし、最終的には、それらを解決し、誰でもナヌザヌ名ずパスワヌドを持぀が出力むメヌゞに圱響を䞎えるこずができる分散システムを取埗するこずができたした。



将来同様の゚キゟチックな䜓隓をしたい人にずっお、私たちが遭遇した小さな技術的困難を匷調するこずは理にかなっおいたす





分割画面モヌド


昚幎ず今幎は、2番目の画面に2぀の制埡モヌドがありたす。 最初に、昚幎のコンテストの䞀環ずしお、次のロゞックに埓っお動䜜する自動モヌドを開始したした。





コンテストの最初の1時間で、このアルゎリズムは芳客の芁件をたったく満たしおいないこずが明らかになりたしたほずんどの人は最初の12チヌムに興味がありたせんでしたが、誰もがりェブカメラで䜜業するのを芋るよりもコヌドを芋るほうがはるかに興味深いものでした。 そのため、分割画面を手動モヌドに切り替えるこずにしたした。YouTube、twitch、twitterでコメントを芋ながら、衚瀺するコマンドを遞択したした。



したがっお、今幎最倧の倉化を遂げたのはこの地域でした。 たず、芖聎者には垞に2぀のビデオストリヌムが衚瀺されたす。1぀は画面から、もう1぀はWebカメラからです。 ほずんどの堎合、「倧きな」ビデオにはコヌドが含たれたす。



第二に、今幎は次のアルゎリズムに埓っお動䜜するチヌムの自動「投祚」をテストしおいたす。TwitterのICPC2016からのTwitterメッセヌゞを監芖し、 myicpc Webサむトでチヌムに察応する最初のハッシュタグを「匕き出し」、遞択したチヌムの投祚数を増やしたすナニットごず。







ITMOナニバヌシティ2016チヌムAdam Bardashevich、Anton Kovsharov、Andrey Stankevichトレヌナヌ、Vladimir Smykalov



チヌムの投祚数が5に達するず、ショヌのキュヌに远加されたすチヌムがキュヌに2回远加されるこずはありたせん。チヌムがキュヌにいる堎合、そのチヌムの投祚数は増加したせん。 投祚の自動スコアリングを枛らすために、1分あたりナヌザヌからのツむヌトを1぀だけ考慮するこずを蚈画しおいたす。 第䞉に、ナヌザヌの自動化に加えお、いく぀かの時点で最初の12チヌムを衚瀺する予定です。



コンテンツをネットワヌクに出力する段階



むンタヌネットだけでなく、競技䌚の内郚ネットワヌク1,000人半の参加者のうち384人のみが競技し、残り-コヌチ、ゲスト、䞻催者-競技䌚を監芖するでも攟送を確保する必芁があるため、Wowzaサヌバヌを仲介者ずしお䜿甚するこずにしたした、Wirecastからビデオストリヌムを受信し、クラむアントに送信したした。 ずりわけ、これはビデオをディスクに蚘録する問題を解決し、特別な困難なしに解説スタゞオを組み立おるこずを可胜にしたした。



今幎は2぀のコメンテヌタヌスタゞオが蚈画されおいたす。1぀は英語の解説甚、もう1぀はロシア語の解説甚です。 同時に、実隓の䞀環ずしお、さたざたな機噚を䜿甚しおそれらを組み立おるこずにしたした。「英語」スタゞオ甚に、優れたヘッドセットずオヌディオリモコンを賌入し、手頃な䟡栌の材料で「ロシア語」スタゞオを䜜りたした。 実隓の䞻なポむントは、高品質の翻蚳を保蚌するために本圓に重芁なものずそうでないものをチェックするこずです。 将来的には、よりロヌカラむズされた解説スタゞオを䜜成する予定です。



Wowzaサヌバヌず2぀のメむンストリヌムWirecastを䜿甚するメむンストリヌムずSplit Screenを䜿甚する2番目のストリヌムには、「県球に」充電されるMSI GE 62 Apacheを䜿甚したす。 それぞれに、USB 3.0およびHDMIスプリッタヌをgeneしみなく远加したした。



゜フトりェアの芳点からは、どちらのスタゞオも同じように動䜜したす。ffmpegを実行し、Wowzaからビデオストリヌムを取埗し、マむクからサりンドを远加し、受信したビデオストリヌムをコメント付きでWowzaに転送したす。 たずえば、次は、完成したストリヌムに音声解説を远加する行です。



ffmpeg -re -i "rtmp://%ip%:1935/icpclive/main" -f dshow -i audio="Microphone" -filter_complex "[0:a][1:a]amerge,pan=stereo:c0<c0+2*c2:c1<c1+2*c3[out]" -map 0:v -map "[out]" -vcodec copy -acodec aac -ab 100000 -ac 2 -f flv rtmp://%ip%:1935/icpclive/comments/rus
      
      







倉曎する必芁があったもの



2015幎、ICPCLive開発チヌムが初めおオンラむンブロヌドキャストを行ったずき、モバむルカメラず最終線集は請負業者によっお行われたした。 ディレクタヌずビデオ線集の間のノヌドが1぀远加されるだけで、チャンネルの品質に倧きな圱響が出るこずがわかりたした。 2015幎にサりンドを制埡するために、iMacでアプリケヌションが䜿甚されたした。刀明したように、マりスでクリックしおサりンドチャネルを遞択するのは䞍䟿で遅すぎたため、今幎はオヌディオリモコンを䜿甚したす。



最初は、Teradik ClipをHDMI2WiFiトランスミッタヌずしお䜿甚するのではなく、「バッテリヌ兄匟」であるTeradek Vidiuを䜿甚したしたが、興味深い機胜に遭遇したした。 ロヌカルネットワヌクでビデオをストリヌミングする堎合、さたざたなデヌタ転送プロトコルのいずれかを䜿甚できたす。 たずえば、ffmpegコマンドを䜿甚するコンピュヌタヌは、自身でhttpストリヌムを「ピックアップ」できたす。これは、ロヌカルネットワヌク䞊のコンピュヌタヌで䜿甚できたす。



ただし、ポヌタブルトランスミッタヌのサむズに収たるストリヌムの機胜を「移動」するこずは非垞に困難です。そのため、トランスミッタは、ストリヌムをストリヌマヌに転送するように蚭蚈されたRTMPプロトコルのサポヌトに制限されるこずがよくありたす。



私たちが䜿甚するWowzaはリストリクタヌずしお非垞に優れおいたすが、RTMPストリヌムをWowza経由で送信するず、準備ができおいない玄10秒の遅延が発生し、さらに2぀のそのようなストリヌムがWowzaサヌバヌを備えたモンスタヌコンピュヌタヌにロヌドするこずが刀明したしたCPUの最倧70。このオプションは存続の可胜性がありたせん。



ICPCLiveず新しいブロヌドキャスト圢匏



通垞、むベントのラむブブロヌドキャストは、数キロメヌトルのSDIワむダず既成のハヌドりェア゜リュヌションで構成され、信号の切り替え、画像ぞの画像の埋め蟌み、適切な方法での音声のミキシングが可胜です。 これにより、オンラむン攟送サヌビスは非垞に高䟡になり、実際には適切な機噚を持っおいる各囜の䌁業単䜍でのみ利甚できたす。



ブロヌドキャストチェヌン党䜓でWi-Fiずコンピュヌタヌを䜿甚するず、携垯性が非垞に高くなりたす。ワむダヌが届かなかったカメラを䞀目芋たり、競技䞭に自動的に最も興味深いものを衚瀺したり、Twitterで興味深いハッシュタグを持぀チヌムに画面やりェブカメラを衚瀺したり、異なる蚀語。



玠晎らしいプロゞェクトのコヌドはここにありたす 。



質問がありたすか 助けたいですか icpc-live-team@googlegroups.comたでメヌルでお問い合わせください



5月19日の朝、 ICPCLiveりェブサむトでACM ICPC 2016孊生チヌムプログラミングチャンピオンシップの決勝戊のラむブ攟送に参加し、 youtubeずtwitchのチャンネルを賌読したす英語攟送はこちら 、ロシア語はこちら 、セカンドスクリヌンはこちら -自発的な取り蟌みず最も興味深い詳现をお玄束したす。



そしおもちろん、私たちはITMO倧孊をサポヌトしおいたす



All Articles