2016-01-18 12 views
13

現在のTwitch.tvライブストリームを見ることができるUnity3Dアプリケーションを作りたいと思います。Unity3Dアプリケーション内でTwitch.tvストリームを表示

私は、これは攣縮API(https://github.com/justintv/twitch-api

私はUnity3Dでビデオテクスチャについて知っていると私は、デフォルトの攣縮APIの基本を使用する方法を知っていると、例えば、可能な場合はわからないが、私にはありません実行中のツイッチストリームを自分のアプリケーションにどのように統合するか考えてください。

これが可能なら、誰かに私にヒントを与えてもらえますか?

どうもありがとうございましたとよろしく Meph

答えて

-1

これが行うには難しいものです。選択したAPIとの接続だけでなく、データストリームも確立できるプログラムであるTwitchのAPIキーが必要です。私は基本的なネットワークプログラミングをCのようなあまり特殊化されていない言語で学ぶことから始め、そこから作業することを提案します。基本を理解した後、さらに詳しい質問をしてください。

他のすべてと同様に、これは間違いなく可能ですが、多分C#ではないかもしれません。あなたのゲームのパフォーマンスを損なわないために、データを直接取り込むことなくゲームにデータを送る別のプログラムを書くことをお勧めします。あなたはネットワークプログラミングの理解を得るたら

、私は、APIの単収縮のdevのチャットにオーバーホップ

0

hereが、私はこの人が単収縮のAPIが実際に取得するかどうかではありません知って欲しいものを信じていますライブビデオフィードを生成し、そのデータをアプリケーションに渡します。短い答えは、そうではありません。 Twitch APIでは、ライブビデオフィードを取得することはできません。その情報は取得するだけです。

チャンネルの名前、ゲーム、リンクをチャンネルに表示する文字列を取得できます。また、チャンネルの背景やプレビューを画像ファイルとして取得することもできます。あなたができないことは、ビデオファイルを取得するか、ビデオデータをストリーミングすることです。あなたができる最善のことは、URLとそれらへのリンクを得ることです。

私はどのゲームでもライブストリームを取得するために私が考えることができるのは、それがプレイヤーのものであることだけです。基本的には、ゲーム自体の中でゲームをストリーミングし、ストリームデータを取り込んで、どこかの変数やクラスにコピーしてから、それをTwitchにアップロードするという方法でコードを作成することで、同時にデータを使用することができますそれは放送されています。しかし、あなたがランダムストリーマーのゲームプレイを取り出してゲームのコンピュータ画面に表示したいのであれば、それはできないのではないかと心配しています。とにかくUnityではない。

0
  • あなたはこれらのアイデアを組み合わせるのであれば、あなたはで団結して攣縮ストリームを表示することができますUnityのためのWebブラウザのプラグイン(see

がありますが、ウェブサイト

  • に単収縮ストリームを埋め込むことができますあなたが望むストリームを埋め込むカスタムWebページを実行するアプリ内ブラウザを実行します。私は、あなたがこれからどのようなパフォーマンスを出すのかはわかりませんが、それは簡単なことです。おそらく、ストリームをテクスチャに直接表示するのと同じくらい単純ではありませんが、C、ネットワークプログラミング、ビデオ処理などを学ぶことよりも簡単です。

  • 0

    最終的に、ツイッチからのストリームはMPEG-4(H264/M3U)です。ユニティでレンダリングすることができれば、繋ぎ目のストリームをレンダリングすることができます。

    要塞からリクエストされた正しいURLを取得するには、いくつかの手順がありますが、それは時間とともに変化します。ストリームが再生されている間に、現在のツイッチページを調べて、javascriptがリクエスト(URLとヘッダー)をどのように構築しているかを確認する必要があります。

    最後に、javascriptはアクセストークンを作成し、それを使ってtwitchエッジサーバーの1つからindex-live.m3u8というファイルを要求します。このファイルには、ライブストリームの最後の数秒間のファイル名のリスト(およびその他のメタデータ)が含まれています。これは、この

    https://video-edge-c61b44.lax01.hls.ttvnw.net/v0/[some-long-access-token]/index-live.m3u8

    #EXTM3U 
    #EXT-X-VERSION:3 
    #EXT-X-TARGETDURATION:5 
    #ID3-EQUIV-TDTG:2017-10-27T16:53:27 
    #EXT-X-MEDIA-SEQUENCE:8788 
    #EXT-X-TWITCH-ELAPSED-SECS:17576.000 
    #EXT-X-TWITCH-TOTAL-SECS:17589.870 
    #EXTINF:2.000, 
    index-0000008788-Y6OH.ts 
    #EXTINF:2.000, 
    index-0000008789-l0QY.ts 
    #EXTINF:2.000, 
    index-0000008790-gCUV.ts 
    #EXTINF:2.000, 
    index-0000008791-1ngg.ts 
    #EXTINF:2.000, 
    index-0000008792-wpQL.ts 
    #EXTINF:2.000, 
    index-0000008793-koO4.ts 
    

    あなたは、リスト内のファイルの名前でindex-live.m3u8を交換し、そのクリップを得るためにそれを要求するようになります。以下のような何か:

    https://video-edge-c61b44.lax01.hls.ttvnw.net/v0/[the-same-long-access-token]/index-0000008793-koO4.ts

    それは、約1秒の長MPEG-4ストリームになります。リストの長さは約6ファイルなので、すべて要求すると約6秒のバッファが得られます。

    index-live.m3u8が1秒おきに更新され、新しいファイルが最後に追加されると古いファイルがロールオフされます。バッファがなくなると、このファイルを数秒ごとに再要求し、再生中に新しいクリップを要求する必要があります。