広告を衚瀺せずに自瀟サむトでHDビデオ攟送甚のUstream.tvを飌いならす





私は、以䞋の機胜のためにあなたの興味を匕くかもしれないサむトでラむブHDビデオ攟送を敎理する私の経隓を提䟛したす





それずもちょっずしたハックがあるからです。 説明されおいる機胜が少なくずも盞互に排他的であるず思われる堎合は、カットをお願いしたす



そもそも、䞀般的なサむトでのラむブビデオのブロヌドキャストに関するいく぀かの玹介的な蚀葉ですこのトピックに慣れおいない堎合は、お気軜にスキップしおください。



サむトペヌゞのカメラから「写真」を芋るには、いく぀かの方法がありたす。

最初の最も簡単な方法は、内蔵Webサヌバヌず「ホワむト」IPアドレスを備えたIPカメラを䜿甚するこずです。







次に、サむトペヌゞで、ゲストがIPカメラのラむブビデオを衚瀺するためのペヌゞを含むiframeを挿入する必芁がありたす。



利点は非垞に「おいしい」です。



しかし、そのような゜リュヌションの範囲は非垞に狭いたたであるずいう欠点がありたす。



独自のビデオサヌバヌを䜿甚した゜リュヌションは、柔軟性ず信頌性が向䞊しおいたす。 任意の゜ヌスからのビデオを゚ンコヌドし、ストリヌムをメディアサヌバヌに転送したす。メディアサヌバヌでは、特別な゜フトりェアAdobe Flash Streaming Server、Wowza、Erlyvideo、Red5などがビデオを党員に配信したす。 回路は次のようなものです。







いく぀かの利点



...欠点による盞殺以䞊



...ラむブビデオの遅延を最小限に抑える必芁があり、耇雑さずコストの問題が背景に消え぀぀ある、このような゜リュヌションのプロフェッショナルビデオブロヌドキャストのニッチを決定したす。



䞀般的なサむトで最も興味深い゜リュヌションは、メディアサヌバヌが倧芏暡なデヌタセンタヌの斜蚭にあり、ビデオブロヌドキャストがサヌビスずしお提䟛されおいる堎合です。 スキヌム







利点



䞻な欠点は1぀です。このようなサヌビスでは、ビデオブロヌドキャストは二次的なタスクです。 プラむマリ-利益を䞊げる。 したがっお、可胜な堎合はい぀でも「ホむヌルのスティック」が挿入されたす。HD品質が必芁な堎合-有料、広告なし-远加料金。 りェブサむトにブロヌドキャストを挿入し、プレヌダヌをカスタマむズする機胜も有料サヌビスパッケヌゞに含たれおいるこずがよくありたす。



すべおのサヌビス業界ず同様に、新興䌁業サヌビスは定期的に登堎し、すべおを無料で/安䟡にのみ提䟛しおいるこずに蚀及する䟡倀がありたす。 私の意芋では、このようなダンプサヌビスは蚈算なしで䜜成されたもので、すぐには負荷に察応せず、 stickamのように考慮されるのを埅っおいたす。 たたはその逆明確な蚈算があり、最初のダンピングは芖聎者を匕き付けるために無料安いサヌビスで実行され、その埌、厳栌な収益化ポリシヌが远求され、すべおが突然支払われおバナヌになりたす。 したがっお、私は長幎にわたっお運甚されおいるサヌビスのみを考慮し、「そのような機胜は珟圚支払われおいたす」たたは「改善䞭です」ずいう驚きのメヌルを送信したせん 最も適切でない瞬間にサむトのコヌドを曎新しおください。



無料で手頃な䟡栌の安䟡な攟送サヌビスパッケヌゞを考慮しお、ustream.tvに決めたした。 サヌビスの無料パッケヌゞであっおも、圌は次のような玠晎らしい品質を兌ね備えおいたす。



唯䞀の欠点-無料パッケヌゞでビデオの䞊に広告を衚瀺する-は簡単に回避できたす。



それで、あなたのサむトで高品質のビデオ攟送を埗るために䜕をする必芁がありたすか



ustream.tvに登録したら 、ナヌザヌメニュヌで[ダッシュボヌド]を遞択したす







次に、「 その他 」ボタンでリストを開き、「 リモヌト 」を遞択したす



「RTMP URL」ず「Stream Key」を芚えおおいおください。







次に、Adobe Flash Media Live EncoderをダりンロヌドしおむンストヌルしたすAdobe Webサむトでの登録が必芁です。



Adobe Flash Mediaラむブ゚ンコヌダヌのメむンりィンドりで、コピヌしたアドレス「RTMP URL」を「FMS URL」フィヌルドに貌り付け、「Stream key」を「Stream」に貌り付けたす







ブロヌドキャストする前に構成する必芁がある䞻なパラメヌタヌ



デバむスはビデオ゜ヌスです。 ゜ヌスは、Webカメラだけでなく、他のDirectShow互換デバむスTVチュヌナヌ、ビデオキャプチャカヌド、デバむスの゜フトりェア゚ミュレヌションなどでもかたいたせん。 「仮想りェブカメラ」のリク゚ストに応じお、システムに仮想りェブカメラを衚瀺するプログラム「ManyCam」などを遞択できたす。ビデオ゜ヌスは、ビデオファむル、実際のりェブカメラ、画像、デスクトップなど、䜕でもかたいたせん。 n。 「オンザフラむ」で切り替えたす。 たた、゜ヌスは、RTSP、MJPEG、およびその他の皮類のビデオストリヌムをWebカメラから仮想DirectShowデバむスに倉換するIPカメラドラむバヌを遞択できたす。 このようなドラむバヌは、たずえば、webcam 7プログラムのWebサむトで入手できたす。



圢匏 -圧瞮のタむプh.264 / VP6。 VP6の䜿甚をお勧めしたす-これにより、サむトはより高いビットレヌトを受け入れたす。



フレヌムレヌト -1秒あたりのフレヌム数。



ビットレヌト - ビットレヌト 圧瞮率。 より高いビットレヌト-より良い画像-リアルタむムからのより倚くの遅延。 256から2048の倀をお勧めしたす。それ以䞊では、ブロヌドキャストが行われない堎合がありたす。



[ スタヌト]をクリックしたす-ブロヌドキャストが実行されおいたす ustream Webサむトで、「 Go to Channel 」 リンクを䜿甚しお、ブロヌドキャストペヌゞに移動し、「Share」、「<>」、「Copy to Clipboard」をクリックしたす。 これで、サむトのペヌゞに挿入するコヌドができたした。



<iframe width="480" height="302" src="http://www.ustream.tv/embed/123456?v=3&wmode=direct" scrolling="no" frameborder="0" style="border: 0px none transparent;"> </iframe> <br /><a href="http://www.ustream.tv/" style="padding: 2px 0px 4px; width: 400px; background: #ffffff; display: block; color: #000000; font-weight: normal; font-size: 10px; text-decoration: underline; text-align: center;" target="_blank">Broadcasting live with Ustream</a>
      
      





終了タグの埌の郚分をすぐに砎棄し、 autoplay=true



キヌを远加しおブロヌドキャストを自動的に開始し、 iframe



タグのwidth



幅ずheight



高さの倀を必芁な倀に倉曎しお、必芁なビデオサむズを蚭定したす。 次のようになりたす



 <iframe width="1920" height="1080" src="http://www.ustream.tv/embed/123456?v=3&wmode=direct&autoplay=true" scrolling="no" frameborder="0" style="border: 0px none transparent;"></iframe>
      
      





コピヌしたコヌドをサむトのペヌゞに貌り付けるず、既に有効なビデオブロヌドキャストを受信したすが、ブロヌドキャストが開かれたずきに最倧22秒の広告の圢でボヌナスが提䟛されたす。







およびポップアップビデオバナヌ







良くない。 サヌビスが広告を衚瀺しないようにするには、「貧しい芪relative」ずしお自己玹介する必芁がありたす。サヌビスを衚瀺するには、ビデオが非垞に小さく、広告を茉せるのも恥ずかしいです。 ビデオのサむズを、たずえば96x65ピクセルに倉曎したす。



 <iframe width="96" height="65" src="http://www.ustream.tv/embed/123456?v=3&wmode=direct&autoplay=true&adfree=1" scrolling="no" frameborder="0" style="border: 0px none transparent;"></iframe>
      
      





広告は奇跡的に消えたす ただし、攟送の意味はこの解像床で。 したがっお、少しだたされた盎埌に、「マスクをリセット」する必芁がありたす-ビデオサむズを通垞の倀に戻したす。 これは、javascriptに圹立ちたす。 iframe



を任意のid



䟋では「UstreamIframe」に割り圓お、小さなスクリプトでコヌドを補完したす。



 <iframe id="UstreamIframe" width="96" height="65" src="http://www.ustream.tv/embed/123456?v=3&wmode=direct&autoplay=true&adfree=1" scrolling="no" frameborder="0" style="border: 0px none transparent;"></iframe> <script> document.getElemetntById('UstreamIframe').style.cssText = "width:1920px;height:1080px;"; </script>
      
      





できた ビデオがあり、広告はありたせん。 しかし、テストによるず、他のタスクで負荷が䜎いか重い負荷のプロセッサで䜜業する堎合、フラッシュは小さなビデオサむズを修正できない堎合がありたすが、javascriptを䜿甚しお通垞の倀にすぐに拡倧したす。 「額に」解決策はタむマヌを远加するこずです。これにより、DOM芁玠が描画された埌にロヌラヌサむズが返されたすが、これは実甚的な解決策ですが「真」ではありたせん。 ustreamサヌバヌずのフラッシュ接続を初期化した盎埌にサむズを返すのが正しいでしょう。 これを行うには、ustream APIを䜿甚する必芁がありたす。これは、無料パッケヌゞでも利甚できるためです。 APIを接続するために必芁なのは、倖郚スクリプトをhead



セクションに远加するこずだけです。



  <script src="http://static.ustream.tv/js/libs/ustream-embedapi.js"></script>
      
      





たた、Flashが広告を衚瀺する必芁がないこずをustreamサヌバヌに通知するずきに呌び出される別の関数のサむズを倉曎したす。



 <iframe id="UstreamIframe" width="96" height="65" src="http://www.ustream.tv/embed/123456?v=3&wmode=direct&autoplay=true&adfree=1" scrolling="no" frameborder="0" style="border: 0px none transparent;"></iframe> <script> function restoreSize() { document.getElemetntById('UstreamIframe').style.cssText = "width:1920px;height:1080px;"; } //    API Ustream $ustreamAPI = UstreamEmbed('UstreamIframe'); $ustreamAPI.addListener('playing', restoreSize); </script>
      
      





これは広告ず戊うのに十分ですが、ロゎリンクずボタンを備えた「独自の」Ustreamコントロヌルパネルがあり、誰でもコヌドを取埗しお自分に貌り付けるこずができたす。 CSSツヌルず既に接続されおいるAPIを扱うのは簡単です。 iframe



をdiv



でラップし、意図的にiframe



の高さをdiv



の高さよりも倧きくしお、Ustreamの䞋郚パネルが正確に合わないようにしたす。 次に、CSS overflow



プロパティのおかげで、衚瀺されなくなりたす。



 <div> <iframe id="UstreamIframe" width="96" height="65" src="http://www.ustream.tv/embed/123456?v=3&wmode=direct&autoplay=true&adfree=1" scrolling="no" frameborder="0" style="margin-top: -96px;border: 0px none transparent;"></iframe> </div> <script> $videoW = 1920; //   $videoH = 1080; //   window.skipAd = function () { $extraH = 200; $barH = 32; //   Ustream $videoContainer.style.height = ($videoH+$extraH)+"px"; $videoContainer.style.width = $videoW+"px"; $videoContainer.style.marginTop = "-"+($extraH/2-$barH/2)+"px"; $videoContainer.parentNode.style.width = $videoW; $videoContainer.parentNode.style.height = $videoH; } $videoContainer = document.getElementById('UstreamIframe'); $videoContainer.parentNode.style.overflow = 'hidden'; //   CSS $ustreamAPI = UstreamEmbed('UstreamIframe'); $ustreamAPI.addListener('playing', skipAd); </script>
      
      





これで、「makeweights」のないきれいなビデオができたした。 良くないこず-ビデオを制埡する機胜がただ必芁です。 Ustream APIを䜿甚するず、必芁なアクション甚の独自のコントロヌルを簡単に䜜成できたす。 たずえば、ペヌゞコヌドに「䞀時停止」、「再生」、「ミュヌト/ミュヌト解陀」ボタンを远加したす。



 <button onclick="$ustreamAPI.callMethod('play')"> [ > ] Play </button> <button onclick="$ustreamAPI.callMethod('pause')"> [ || ] Pause </button> <button onclick="$ustreamAPI.callMethod('volume', 0)"> [ ? ] Mute </button> <button onclick="$ustreamAPI.callMethod('volume', 100)"> [ )) ] Unmute </button>
      
      





...そしおすぐに動䜜したす。 コマンドの完党なリストに぀いおは、Ustream Embed APIの公匏ドキュメントを参照しおください。



デモ



完党にコンパむルされたデモペヌゞクロスドメむンポリシヌのため、localhostでは動䜜したせん



 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Video stream demo</title> <script src="http://static.ustream.tv/js/libs/ustream-embedapi.js"></script> </head> <body> <div> <iframe id=UstreamIframe width="96" height="65" src="http://www.ustream.tv/embed/11435186?v=3&autoplay=true&wmode=direct&adfree=1" scrolling="no" frameborder="0" style="margin-top: -96px;border : 0px none transparent;"></iframe> </div> <button onclick="$ustreamAPI.callMethod('play')">[ > ] Play</button> <button onclick="$ustreamAPI.callMethod('pause')">[ || ] Pause</button> <button onclick="$ustreamAPI.callMethod('volume', 0)">[ ? ] Mute</button> <button onclick="$ustreamAPI.callMethod('volume', 100)">[ )) ] Unmute</button> <script> $videoW = 1920; //   $videoH = 1080; //   window.restoreSize = function () { $extraH = 200; $barH = 32; $videoContainer.style.height = ($videoH+$extraH)+"px"; $videoContainer.style.width = $videoW+"px"; $videoContainer.style.marginTop = "-"+($extraH/2-$barH/2)+"px"; $videoContainer.parentNode.style.width = $videoW; $videoContainer.parentNode.style.height = $videoH; } $videoContainer = document.getElementById('UstreamIframe'); $videoContainer.parentNode.style.overflow = 'hidden'; $ustreamAPI = UstreamEmbed('UstreamIframe'); $ustreamAPI.addListener('playing', restoreSize); </script> </body> </html>
      
      





サむトでSSLを䜿甚しおいる堎合は、ustreamのビデオアドレスにhttpsを远加する必芁もありたすhttps//www.ustream.tv/embed/123 ...



私はもう2幎間Ustream.tvサヌビスを䜿甚しおいたすが、奇劙なこずに、条件を厳しくしおいたせん。 おそらく、負荷が増加したため、サヌバヌが2.5 Mbit / sを超えるストリヌムを受信するこずはほずんどなかったため、信頌性のために、2 Mbit / sを超えないストリヌムを䜿甚したす。



提瀺された経隓が、あなたのりェブサむトたたは゜ヌシャルネットワヌクのペヌゞで高品質のビデオ攟送を䜜成するのに圹立぀こずを願っおいたす



All Articles