site stats

Facebook retools VR, streaming for video boom

<!–Fb retools VR, streaming for video boom Credit Score:<span></p> <p> Thinkstock<br /> </span></p> </figcaption> </figure> <section class="deck"> <h2>New infrastructure, developed encoding techniques, and machine learning will handle Facebook’s huge increase in video extent</h2> </section> <div class="modal eml-friend-wrapper" id="emailModal"> <div class="eml-ty eml-friend-success"> <i class="ss-icon ss-delete" /></p> <h3>Thanks</h3> <p class="msg-sent">Your message has been despatched.</p> </p></div> <div class="eml-friend-error"> <i class="ss-icon ss-delete" /></p> <h3>Sorry</h3> <p class="msg-sent">There was once an error emailing this web page.</p> </p></div> </div> <section class="bodee"> <p>$(‘#” + slotName + “‘).responsiveAd(screenSize:’971 1115’, scriptTags: []);”;<br /> var adDivString = “</p> <p>” + adString + “</p> <p>“;</p> <p> placementDiff = applyInsert($(this), adDivString);<br /> if (debug)<br /> console.log(“Simply positioned an Ad and the placementDiff is: ” + placementDiff);</p> <p> placementTarget = cumulativeHeight + placementDiff + interModuleHeight + adHeightBuffer;</p> <p> else<br /> var moduleDivString = “”;<br /> var elementId = “drr-mod-“+moduleCounter;<br /> moduleDivString = “”;<br /> modules.push(elementId);</p> <p> placementDiff = applyInsert($(this), moduleDivString);<br /> if (debug)<br /> console.log(“Simply placed a module and the placementDiff is: ” + placementDiff);</p> <p> placementTarget = cumulativeHeight + placementDiff + interModuleHeight + moduleHeightBuffer;<br /> moduleCounter++;</p> <p> loopCounter++;</p> <p> // Avoid placing Components too soon due to non-Massive figures inflating the cumulative Top<br /> if ($(this).is(“Determine”) && !$(this).is(“Determine.Large”))<br /> cumulativeHeight += grafHeight;</p> <p> else<br /> cumulativeHeight += $(this).Height() + grafHeight;</p> <p> );</p> <p> // clone Related Tales module to come in after eighth para in article physique for Cellular breakpoint show<br /> var $relatedStories = $(‘.Associated-promo-wrapper’);<br /> if ($relatedStories.size)<br /> var $relatedStoriesClone = $relatedStories.clone();<br /> $relatedStoriesClone.insertAfter( “#drr-container > p:eq(7)”); </p> <p> // For Cell handiest, Location Ad after second paragraph.<br /> if (firstMobileAdHtml)<br /> $(firstMobileAdHtml).insertAfter(“#drr-container > p:eq(1)”);</p> <p> var $insiderPromo = $(‘.insider-promo-wrapper’);<br /> if ($insiderPromo.size)<br /> var $insiderPromoClone = $insiderPromo.clone();<br /> $insiderPromoClone.insertAfter( “#drr-container > p:eq(1)”);</p> <p> //Place left aspect Part<br /> cumulativeHeight = 0;<br /> var leftPlacementTarget = tagHeight = leftPlacementTarget)<br /> if (debug)<br /> console.log(“congratulations… now we have handed the initial Begin level”);</p> <p> if (leftPlacementIndex == null)<br /> //it’s Now Not excellent enough to No Longer be a left Keep Away From – it Additionally isn’t a </p> <p> with an instantly preceding small or medium picture left Steer Clear Of.<br /> if (!isLeftAvoid($(this)) && noPrevFigures($(this)) )<br /> leftPlacementIndex = $(this).index();<br /> $leftPlacementElement = $(this);<br /> leftPlacementLookaheadStart = cumulativeHeight;<br /> if (debug)<br /> console.log(“is just not a left Keep Away From and no prev figures. ########## set placementIndex (“+leftPlacementIndex+”) and lookaheadStart (“+leftPlacementLookaheadStart+”) ##########”);</p> <p> else<br /> if (debug)<br /> console.log(“is a left Keep Away From or has previous figures. continue”);</p> <p> else<br /> if (debug)<br /> console.log(“#### leftPlacementIndex already set to “+leftPlacementIndex+”. looking AHEAD…”);</p> <p> //Now Not null; has been set<br /> if ((cumulativeHeight – leftPlacementLookaheadStart) > leftIntervalHeight)<br /> if (debug)<br /> console.log(“###### THRESHOLD REACHED. LOOKAHEAD COMPLETE. Finish ###### (cumulativeHeight – leftPlacementLookaheadStart) (“+(cumulativeHeight-leftPlacementLookaheadStart)+”) > leftIntervalHeight (“+leftIntervalHeight+”).”);</p> <p> return false;<br /> else<br /> if (debug) $(this).hasClass(‘inline-small’)<br /> );</p> <p> if (leftPlacementIndex != null && elementNotNearEnd($leftPlacementElement, leftPixelWindow))<br /> if (debug)<br /> console.log(” insert into index “+leftPlacementIndex);</p> <p> $(“#drr-container”).children().eq(leftPlacementIndex).before(“</p> <p>“);</p> <p> IDG.GPT.trackOmniture();</p> <p> // Add Right rail module content material<br /> for (var i=Zero; i” + adString + “</section> </article> </section> </div> <p>“;</p> <p> operate getEpoParams() report.referrer.indexOf(“bing”) >= Zero)<br /> var categories = [3712, 3777, 3547];<br /> if (classes instanceof Array && classes.size > Zero)<br /> var primaryCatId = categories[0];<br /> epoParams += “&catId=” + primaryCatId + “&referrer=search”;</p> <p> else<br /> epoParams += “&typeId=” + defaultTypeId + “&referrer=home”; // default is ‘dwelling’ behavior</p> <p> // Default is to show like coming from homepage<br /> else </p> <p> epoParams += “&typeId=” + defaultTypeId + “&referrer=dwelling”;<br /> // default is ‘dwelling’ behavior</p> <p> return epoParams;</p> <p> /**<br /> * @param jqo Unique jquery object Target<br /> * @param divString The div to be inserted.<br /> * @return Difference in Height between Authentic placement Goal and closing Goal.<br /> * Checks first 6 Parts for an allowable placement (600 pixel window).<br /> * If none, Check local for Components that aren’t Right avoids.<br /> * If none, Position Element earlier than current Target.<br /> */<br /> perform applyInsert(jqo, divString)<br /> if (debug)<br /> console.log(“applyInsert at prime and jqo index is: ” + jqo.index());</p> <p> for (var i=Zero; i 0)<br /> children = $(“#drr-container”).children().slice(jqo.index(), allowElement.index() );</p> <p> else<br /> children = $(“#drr-container”).youngsters().slice(allowElement.index(), jqo.index());</p> <p> if (children != null)<br /> kids.EVERY(perform(i)<br /> if (debug)<br /> console.log(“About To Add this Part’s Top to heigh diff offset”);<br /> console.log($(this));</p> <p> Peak += $(this).Peak() + grafHeight;<br /> );</p> <p> if (offset 300)<br /> if (debug)<br /> console.log(“isRightAvoid: found pre. return proper”);</p> <p> return actual;</p> <p> if (“Determine”) && jqo.hasClass(‘Huge’))<br /> if (debug)<br /> console.log(“isRightAvoid: found Figure.Massive return authentic”);</p> <p> return real;</p> <p> if (“Determine”) && jqo.hasClass(‘medium’) && jqo.hasClass(‘inline’))<br /> if (debug)<br /> console.log(“isRightAvoid: found Figure has Category medium and inline.”);</p> <p> return actual;</p> <p> if (‘div’) && jqo.hasClass(‘Desk-wrapper’))<br /> if (debug)<br /> console.log(“isRightAvoid: discovered div with Class Desk-wrapper”);</p> <p> return genuine;</p> <p> if (‘aside’))<br /> if (jqo.hasClass(‘sidebar’) && !jqo.hasClass(‘medium’))<br /> if (debug)<br /> console.log(“isRightAvoid: discovered aside with Class sidebar, with out Category medium”);</p> <p> return true;</p> <p> if (jqo.hasClass(‘statsTable’))<br /> if (debug)<br /> console.log(“isRightAvoid: found aside with Type statsTable”);</p> <p> return proper;</p> <p> if (jqo.hasClass(‘download-asset’))<br /> if (debug)<br /> console.log(“isRightAvoid: discovered Category download-asset return real”);</p> <p> return actual;</p> <p> if (jqo.hasClass(‘tableLarge’))<br /> if (debug)<br /> console.log(“isRightAvoid: found Classification tableLarge return actual”);</p> <p> return real;</p> <p> if (jqo.hasClass(‘reject’))<br /> if (debug)<br /> console.log(“isRightAvoid: found Classification reject. return genuine”);</p> <p> return genuine;</p> <p> if (‘Desk’) && jqo.hasClass(‘scorecard’))<br /> if (debug)<br /> console.log(“isRightAvoid: found div with Type scorecard”);</p> <p> return genuine;</p> <p> return false;</p> <p> // Return true if Component has Classification ‘reject’: won’t Position drr modules/commercials subsequent to these Components<br /> function isRightReject(jqo)<br /> console.log(“in isRightReject”);<br /> if (jqo != null)<br /> if (jqo.hasClass(“reject”))<br /> if (debug)<br /> console.log(“isRightReject: found ‘reject’ Type”);</p> <p> return real;</p> <p> return false;</p> <p> return false;</p> <p> // Returns genuine if Top of all Elements after this one is more than 500; false otherwise<br /> operate elementNotNearEnd(Component, pixelWindow)<br /> if (pixelWindow == null)<br /> pixelWindow = 500;</p> <p> if (Part == null)<br /> return false;</p> <p> var remainingHeight = 0;<br /> var children = $(“#drr-container”).youngsters().slice(Component.index());<br /> if (children == null)<br /> return false;</p> <p> children.EACH AND EVERY(function(i)<br /> remainingHeight += $(this).Top();<br /> );<br /> if ( remainingHeight > pixelWindow)<br /> return authentic;</p> <p> else<br /> if (debug)<br /> console.log(“Element too close to End. Final Top is: ” + remainingHeight + ” and window is ” + pixelWindow); </p> <p> return false;</p> <p> /**<br /> * Return true if want to Steer Clear Of this Element when inserting left module.<br /> */<br /> operate isLeftAvoid(jqo)<br /> if (“Figure”))<br /> if (debug)<br /> console.log(“isLeftAvoid: found Determine. return actual”);</p> <p> return genuine;</p> <p> if (“apart.pullquote”))<br /> if (debug)<br /> console.log(“isLeftAvoid: found pullquote. return genuine”);</p> <p> return actual;</p> <p> if (“pre”))<br /> if (debug)<br /> console.log(“isLeftAvoid: found pre. return real”);</p> <p> return genuine;</p> <p> if (“div.gist”))<br /> if (debug)<br /> console.log(“isLeftAvoid: found github code block. return proper”);</p> <p> return real;</p> <p> if (“apart”) && jqo.hasClass(“sidebar”) && jqo.hasClass(“medium”))<br /> if (debug)<br /> console.log(“isLeftAvoid: discovered medium sidebar. return genuine”);</p> <p> return real;</p> <p> if (jqo.hasClass(“statsTable”))<br /> if (debug)<br /> console.log(“isLeftAvoid: discovered Class statsTable. return genuine”);</p> <p> return actual;</p> <p> return false;</p> <p> /**<br /> * return proper if there are no figures before the Goal placement that may bleed down into placement Element<br /> */<br /> function noPrevFigures($originalTarget)<br /> var targetIndex = $originalTarget.index();<br /> var numElementsLookBack = 5;<br /> var figureIndex = null;<br /> var figureHeight = null;<br /> var startIndex = targetIndex – numElementsLookBack </p> <div id="drr-container"> <p> With video becoming increasingly popular on Facebook, the social networking giant has made a sequence of technology updates involving 360-level video, VR (virtual reality), and streaming video. </p> <p> The improvements, introduced at the Video@Scale convention Thursday at Fb offices in Menlo Park, Calif., are being made to Fb itself, however somebody can access the 360 transformation code on GitHub. </p> <p> Managing the growth of video and scaling required retooling throughout the stack, starting from new infrastructure to handle bigger loads to encoding ways for better streaming to machine studying to raised Take Into Account video content material, Fb stated. </p> <p> “Each 360 video and VR create immersive environments that engender a way of related-ness, element, and intimacy,” said Fb’s Evgeny Kuzayakov and David Pio, in a blog post. “Of Course, all this richness creates a brand new and troublesome set of engineering challenges. The file sizes are so Large they can be an impediment to turning in 360 video or VR in a quality method at scale.” </p> <aside class="nativo-promo smartphone" id="" /> <p> To Handle this, Fb created 360 video and VR encoding optimizations, shifting from equirectangular layouts to a dice layout to reduce file Measurement. With 360-stage video for VR comes a singular set of challenges, Facebook said, including even larger file sizes and streaming with out ready for buffering. Encoding 360 video with pyramid geometry reduces file Size by means of 80 %, The Company stated. Also, view-based adaptive bitrate streaming now allows Fb to optimize the VR expertise. Facebook introduced 360 video ultimate September. </p> <p> To give a boost to streaming video, Facebook has developed a geometry for encoding 360 videos in VR to circulate high-resolution movies without ready for buffering. The Corporate Additionally constructed a SVE (streaming video engine) for transcoding video and migrated video visitors from its OLD system. Reasonably than deal with a video as a single file, SVE splits video into segments, allowing parallel processing of videos and leading to lower latency. </p> <p> Fb mentioned it built SVE because the site was experiencing boom from 1 billion to 8 billion video views per day, without any provider interruption. SVE offers a tenfold development in processing time between video uploading and playback, and it now serves all new Facebook video and videos on the Facebook Messenger provider. </p> <p> Fb’s Imaginative And Prescient Figuring Out crew, in the meantime, is investigating how you can Understand video with unsupervised learning fashions. As An Alternative of labeling objects, scenes, and movements, these networks label voxels, or individual video pixels over time, Facebook said. The Usage Of unlabeled data, the work gifts an AI architecture that may be a seat toward unsupervised Figuring Out of what is happening in a video and predicting what occurs subsequent. </p> <aside class="nativo-promo tablet desktop" id="" /></div> <div class="byline vcard author end-byline"> <p><img class="bylineImage imgId100356327 " src="" alt="Paul Krill" /></p> <div class="author-info with-image"> <p class="author-name"> Paul Krill — <span class="author-title">Editor at Large</span></p> <p class="bio">Paul Krill is an editor at Large at InfoWorld, whose coverage focuses on utility development.</p> </p></div> <p><!-- end .author-info --></p> </div> <p><!-- blx4 #1218 blox4.html --></p> <div class="article-intercept"> <a href=""><br /> <i class="ss-icon ss-navigateright" /><em> From CIO:</em> 8 Free On-line Lessons to Develop Your Tech Skills<br /> </a></p> </div> <p> <!-- /.bodee --></p> <section id="funnel"> <section class="popular-brand-cols"> <section class="popular-col"><!-- /.promo --><br /> <!-- ./promo newsletter --></p> </section> <section class="brand-col"> </section> </section> <section class="featured-col"><!-- blx4 #937 blox4.simple --></p> </section> </section> <p> <!-- /role=main --><!-- /#page-wrapper --></p> <footer> <section class="brand"><span class="logo">InfoWorld</span><br /> <span class="tagline"> </span></p> <p> <span class="follow"><br /> <label>Practice us</label><br /> </span></p> </section> <section class="topics"> <nav id="ft1" /> <nav id="ft2" /></section> <section class="about"> </section> <section class="copyright"> <div class="wrapper"> <p>Copyright © 1994 – 2016 InfoWorld, Inc. All rights reserved.</p> <div class="network"> <div id="network-selector"> <p>Explore the IDG Community <i class="ss-icon tick">descend</i></p> </p></div> <p><!-- /#network-selector --> </div> <p><!-- /.network --> </div> <p><!-- /.wrapper --><br /> </section> </footer> <p><!-- Begin welcome ad overlay - gpt-overlay position --><br /> <!-- End welcome ad overlay - gpt-overlay position --></p> <p> <!-- Begin gpt-skin/gpt-pin/inread --></p> <p> <!-- End gpt-skin/gpt-pin/inread --> </p> <p><!-- Begin BlueKai Tag --></p> <p><!-- CryptoJS --></p> <p><!-- End BlueKai Tag --></p> <p><!-- BEGIN Krux Control Tag for InfoWorld --></p> <p><!-- END Krux Controltag --></p> <p><!-- START Nielsen Online SiteCensus? V6.0 --><br /> <!-- COPYRIGHT 2010 Nielsen Online --></p> <p><!-- END Nielsen Online SiteCensus? V6.0 --></p> <p><!-- SiteCatalyst code version: H.26.2. Copyright 1996-2013 Adobe, Inc. All Rights Reserved More info available at --></p> <p><img src="" height="1" width="1" border="0" alt="" /><!--/DO NOT REMOVE/--><br /> <!-- End SiteCatalyst code version: H.26.2. --></p></div> <p><br /> <br /><a href="">Supply hyperlink </a></p> <div class="clear"></div> </div><!-- /entry --> <div id="comments"> <p> You must be logged in to post a comment <a href=""> Login </a> </p> </div><!-- #comments --> </div><!-- /main --> <div id="sidebar"> <div class="sidebarinner"> </div><!-- .sidebarinner --> </div><!-- /sidebar --> </div><!-- /container --></div><!-- end of wrapper --> <div id="footer"> <div id="foo_widget1"> <div id="flickr-widget-3" class="widget flickr_widget"><div class="widgetinner"><h3 class="widgettitle">Flickr Photo Stream</h3> <script type="text/javascript" src=""></script><div class="clear"></div></div></div> </div> <div id="foo_widget2"> <div id="recent-posts-3" class="widget widget_recent_entries"><div class="widgetinner"> <h3 class="widgettitle">Recent Posts</h3> <ul> <li> <a href="">Goodell surprises terminally ill NY volunteer firefighter with Super Bowl tickets</a> </li> <li> <a href="">Pennsylvania Dem linked to gambling ring awaits sentencing</a> </li> <li> <a href="">Thornton Heath kidnap: Arrests made over 50-hour ordeal</a> </li> <li> <a href="">The Latest: Dry winds to persist in California fire areas</a> </li> <li> <a href="">A Voice for the Sport: The 10 Most Impactful People of 2017</a> </li> </ul> </div></div> </div> </div> <div id="footer_data"> <ul class="footerpages"> <li class="first"><a href="" title="Great Today News">Home</a></li> <li class="page_item page-item-6"><a href="">Privacy Policy</a></li> <li class="page_item page-item-195"><a href="">Contact Us</a></li> <li class="page_item page-item-198"><a href="">Video Gallery</a></li> <li class="page_item page-item-201"><a href="">Sitemap</a></li> <li><a rel="nofollow" href="">RSS</a></li> <li class="right"><a href="#top" title="Great Today News" rel="home"><strong>↑</strong> Great Today News</a></li> </ul> <div class="clear"></div> <p id="footer-left-side"> <a href="" title="Great Today News" rel="home">Great Today News</a> </p><!-- #site-info --> <p id="footer-right-side"> <a href="">Log in</a> - Designed by <a href="" title="Today News">Today News</a> <script type='text/javascript' src=''></script> <script type='text/javascript'> /* <![CDATA[ */ var wpcf7 = {"apiSettings":{"root":"http:\/\/\/wp-json\/contact-form-7\/v1","namespace":"contact-form-7\/v1"},"recaptcha":{"messages":{"empty":"Please verify that you are not a robot."}},"cached":"1"}; /* ]]> */ </script> <script type='text/javascript' src=''></script> <script type='text/javascript' src=''></script> </p> <!-- #footer-right-side --> </div><!-- /footer_data --> <div class="hide"> <div id="adv_here"> <h3 class="widgettitle">Widgetized Section</h3> <p>Go to Admin » appearance » Widgets » and move a widget into Advertise Widget Zone</p> </div> </div> <!-- Quantcast Tag --> <script type="text/javascript"> var _qevents = _qevents || []; (function() { var elem = document.createElement('script'); elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ""; elem.async = true; elem.type = "text/javascript"; var scpt = document.getElementsByTagName('script')[0]; scpt.parentNode.insertBefore(elem, scpt); })(); _qevents.push({ qacct:"p-XSTdT3wyH_FGD" }); </script> <noscript> <div style="display:none;"> <img src="//" border="0" height="1" width="1" alt="Quantcast"/> </div> </noscript> <!-- End Quantcast tag --> </body> </html> <!-- Performance optimized by W3 Total Cache. Learn more: Page Caching using disk: enhanced Served from: @ 2017-12-11 02:00:29 by W3 Total Cache -->