Technical details of Netflix
Netflix is an American-based company that offers a service for streaming movies and TV series over the Internet. Several technical innovations were required to provide it.
User interface
In April 2017, the star rating system was retired in favor of thumbs up/thumbs down buttons.[1] In April 2022, a "two thumbs up" button was added to allow users to recommend higher approval of content.[2]
Streaming
Initial DVD discs sent to customers via US mail were often criticized for being scratched and not fully playable. Netflix's popularity dramatically increased with the addition of streaming through an online queue. This led to the majority of Netflix users reliably streaming movies and television shows rather than receiving physical discs by mail.
Streaming started in 2007, solely using Microsoft technologies and codecs such as VC-1 for video and Windows Media Audio (WMA) for audio. The rapid expansion and diversification of Netflix-capable devices necessitated encoding into many different formats—including H.264 (AVC), VC-1, H.263 and H.265 (HEVC) for video, and Dolby Digital, Dolby Digital Plus, Advanced Audio Coding (AAC) and Ogg Vorbis for audio.[3] According to Netflix, the vast number of codec and bitrate combinations can mean having to encode the same title 120 different ways to deliver it to all streaming platforms.[4] (As of 2016), Netflix's most common video coding format is the discrete cosine transform (DCT) based Advanced Video Coding (AVC), also known as the H.264 format, as it is the most widely supported format in web browsers, televisions, mobile devices, and other consumer devices.[5]
Netflix uses adaptive bitrate streaming technology to adjust video and audio quality to match broadband connection speed and network conditions.
In 2015, BT's YouView launched Ultra HD channels and a 4K box to watch it on in the UK.[6] As of December 2015, Netflix's 4K catalogue can be watched on BT's Ultra HD box. Users need the top-tier subscription option to view this content.[7] In 2016, Netflix standardized two DCT-based video coding formats for its mobile services: AVCHi-Mobile, based on AVC; and VP9-Mobile, based on VP9.[5]
Netflix lets users choose their video download quality on its website.
Encoding profiles
Netflix creates several encoding profiles for each title, tailored for different devices, consisting of video and audio codecs in specific file formats with specific DRM:[8]
Profile name | Media container | DRM | Video codec | Audio codec | Comments |
---|---|---|---|---|---|
CE1 | Muxed ASF | Windows Media | VC-1 | WMA | Internet Explorer ActiveX plugin hosted on Windows Media Player. Deprecated. |
Silverlight | Unmuxed ASF | PlayReady | VC-1 | WMA | For Silverlight plugin. Deprecated. |
CE2 | Unmuxed ASF | Windows Media | VC-1 | WMA | For Adobe Flash plugin. Deprecated. |
Vega | Unmuxed M2TS | AACS | H.264 AVC | AC3 | For PS3. Deprecated. |
Link | Unmuxed ASF | Widevine | H.263 | Ogg Vorbis | For Wii. Deprecated. |
CE3-DASH | Unmuxed FMP4 | PlayReady / Widevine | H.264 AVC | HE-AAC, Ogg Vorbis, Dolby Digital Plus | For Android devices, Roku 2, Xbox, PS3, Wii, Wii U |
Kirby-PIFF | Unmuxed FMP4 | PlayReady | H.263 | Ogg Vorbis | For Wii (v2). Deprecated. |
iOS1 | Muxed M2TS | PlayReady / NFKE | H.264 AVC | HE-AAC, Dolby Digital | For iPhone and iPad. |
iOS2 | Unmuxed M2TS | PlayReady / NFKE | H.264 AVC | HE-AAC, Dolby Digital | For iPhone and iPad. |
CE4-DASH | Unmuxed FMP4 | PlayReady / Widevine | HEVC, VP9 | HE-AAC, Dolby Digital Plus | For devices supporting UltraHD. |
Netflix API
On October 1, 2008, Netflix offered access to its service via a public application programming interface (API).[9] It allows access to data for all Netflix titles, and allows users to manage their movie queues. The API was free and allowed commercial use.[10] A developer network included a forum for asking and answering questions.[11]
Examples of the API's use included Rotten Tomatoes and The New York Times , which allowed users to click to add titles to their Netflix queues or begin watching them on "Watch Instantly" from their pages;[11] and Jinni, which let users search in Watch Instantly and import some user information, such as reviews.[12]
The API allowed developers to release Netflix applications for mobile devices. For example, on November 16, 2009, Netflix released an official Nokia app that allowed some trailer streaming,[13] and on August 26, 2010, they released an official iPhone app.[14]
In June 2012, Netflix began to restrict the availability of its public API.[15] They instead focused on a small number of known partners using private interfaces, since most traffic came from those private interfaces.[16] In June 2014, Netflix announced they would be retiring the public API; it became effective November 14, 2014.[17] They then partnered with the developers of eight services deemed the most valuable, including Instant Watcher, Fanhattan, Yidio and Nextguide.[18]
Information technology
In 2010, Netflix moved to using Amazon EC2 for its information technology (IT) resources. Master copies of digital films from movie studios are stored on Amazon S3, and each film is encoded into over 50 different versions based on video resolution and audio quality, using machines on the cloud. Netflix has over 1 petabyte of data stored on Amazon,[when?] which is sent to content delivery networks (including Akamai Technologies, Limelight Networks and Level 3 Communications) that feed the content to local ISPs. Netflix uses a variety of open-source software in its backend, including Java, MySQL, Gluster, Apache Tomcat, Hive, Chukwa, Cassandra and Hadoop.[19]
In June, 2012, a storm in the eastern US caused power outages in a major Amazon data center. This caused a three-hour downtime in Netflix services, and resulted in some improvements to the Netflix recovery software.[20] Another outage occurred on December 24, 2012.[21]
Netflix developed several technologies to help manage its IT systems, an area known as DevOps. One tool is called the "simian army", which includes the "Chaos Monkey".[22] By intentionally creating different failures in test environments, the ability to recover from them can be assessed. The technology is claimed under at least one patent, filed in 2010 with inventors Gregory S. Orzell and Yury Izrailevsky.[23] Similar approaches were taken in the GameDay software by Jesse Robbins at Amazon.com, "DIRT" created by Google, and other projects.[24][25] The software was made available on GitHub in 2012.[26] This approach has been used for case studies,[27] and as the title of a 2016 memoir on a life in Silicon Valley, Chaos Monkeys.[28][29]
Netflix developed Conductor to help orchestrate microservices at scale, which was later open sourced and is available on GitHub in 2016.
Open Connect
Netflix settlement freely peers with Internet service providers (ISPs) directly and at common Internet exchange points. In June 2012, a custom content delivery network, Open Connect, was announced.[30] For larger ISPs with over 100,000 subscribers, Netflix offers free Netflix Open Connect server appliances that cache their content within the ISPs' data centers or networks to further reduce Internet transit costs.[31][32] Open Connect uses purpose-built servers that focus on low power and high storage density, and run the FreeBSD operating system, nginx and the Bird Internet routing daemon.[33] By August 2016, Netflix closed its last physical data center, but continued to develop its Open Connect technology.[34]
A 2016 study at the University of London detected 233 individual Open Connect locations on over six continents, with the largest amount of traffic in the USA, followed by Mexico.[35][36]
References
- ↑ Wattles, Jackie (2017-04-05). "Netflix ditches star rating system for 'thumbs up, thumbs down'". https://money.cnn.com/2017/04/05/technology/netflix-rating-stars-thumbs/index.html.
- ↑ Frank Pallotta. "Double Thumbs Up: Netflix introduces a new way to recommend content you love". https://www.cnn.com/2022/04/12/media/netflix-double-thumbs-up-button/index.html.
- ↑ David Ronca (May 31, 2013). "A Brief History of Netflix Streaming". http://blog.streamingmedia.com/wp-content/uploads/2013/07/2013SMEast-C101.pdf.
- ↑ McEntee, Kevin (December 17, 2012). "Complexity In The Digital Supply Chain". http://techblog.netflix.com/2012/12/complexity-in-digital-supply-chain.html.
- ↑ 5.0 5.1 Blog, Netflix Technology (19 April 2017). "More Efficient Mobile Encodes for Netflix Downloads". Medium.com (Netflix). https://medium.com/netflix-techblog/more-efficient-mobile-encodes-for-netflix-downloads-625d7b082909.
- ↑ "4K Netflix comes to YouView thanks to BT: Watch Ultra HD shows and films on your box – Pocket-lint". http://www.pocket-lint.com/news/136230-4k-netflix-comes-to-youview-thanks-to-bt-watch-ultra-hd-shows-and-films-on-your-box.
- ↑ "BT's Ultra HD box can now stream Netflix in 4K". https://www.engadget.com/2015/12/21/bt-box-netflix-4k/.
- ↑ A Brief History of Netflix Streaming - May 2013 - David Ronca, Manager Encoding Tools
- ↑ "Netflix API Launches Tomorrow". ReadWriteWeb. http://www.readwriteweb.com/archives/netflix_api_launches_tomorrow.php.
- ↑ "Netflix API Management Solution". http://www.mashery.com/customers/netflix.
- ↑ 11.0 11.1 "New York Times & Rotten Tomatoes Add Netflix "Add" & "Watch" Links". HackingNetflix. http://www.hackingnetflix.com/2009/02/ny-times-rotten-tomatoes-add-netflix-add-play-links.html.
- ↑ "Jinni Searches Netflix better than Netflix". CNET. http://news.cnet.com/8301-17939_109-10199106-2.html.
- ↑ Hart, Michael (November 16, 2009). "Netflix for Nokia Phones". Netflix. http://blog.netflix.com/2009/11/netflix-for-nokia-phones.html.
- ↑ "Netflix on iPhone?". Netflix. April 2, 2010. http://blog.netflix.com/2010/04/netflix-on-iphone.html.
- ↑ "Upcoming Changes to the Netflix API Program". Netflix. June 15, 2012. http://developer.netflix.com/blog/read/Upcoming_Changes_to_the_Netflix_API_Program.
- ↑ Daniel Jacobson and Sangeeta Narayanan (July 24, 2014). "Netflix API: Top 10 Lessons Learned (so far)". http://www.slideshare.net/danieljacobson/top-10-lessons-learned-from-the-netflix-api-oscon-2014.
- ↑ Janko Roettgers (November 14, 2014). "Netflix is shutting down its public API today". GigaOm. https://gigaom.com/2014/11/14/netflix-is-shutting-down-its-public-api-today/.
- ↑ Jacobson, Daniel (June 13, 2014). "Retiring the Netflix Public API". Netflix. http://developer.netflix.com/blog/read/Retiring_the_Netflix_Public_API.
- ↑ OSCON Data 2011, Adrian Cockcroft, "Data Flow at Netflix" on YouTube
- ↑ Yevgeniy Sverdlik (July 6, 2012). "Netflix uncovers its own system faults following Amazon cloud outage". Data Center Dynamics. http://www.datacenterdynamics.com/content-tracks/colo-cloud/netflix-uncovers-its-own-system-faults-following-amazon-cloud-outage/66596.article.
- ↑ Bryan Bishop (December 24, 2012). "Netflix streaming down on some devices due to Amazon issues". The Verge. https://www.theverge.com/2012/12/24/3801978/netflix-streaming-down-on-some-devices-thanks-to-amazon-issues.
- ↑ "What is Simian Army?". Git Hub. https://github.com/Netflix/SimianArmy/wiki.
- ↑ Gregory S. Orzell and Yury Izrailevsky (September 20, 2010). "Validating the resiliency of networked applications". US Patent US20120072571 A1. https://www.google.com/patents/US20120072571. Published March 22, 2012
- ↑ Tom Limoncelli; Jesse Robbins; Kripa Krishnan; John Allspaw (September 12, 2012). "Resilience Engineering: Learning to Embrace Failure". ACM Queue. http://queue.acm.org/detail.cfm?id=2371297. Retrieved September 12, 2016.
- ↑ Paul Harris (May 1, 2015). "Chaos Lemur: Testing High Availability on Pivotal Cloud Foundry". https://blog.pivotal.io/pivotal-cloud-foundry/products/chaos-lemur-testing-high-availability-on-pivotal-cloud-foundry.
- ↑ Cory Bennett and Ariel Tseitlin (July 30, 2012). "Chaos Monkey Released Into The Wild". The Netflix Tech Blog. http://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.html.
- ↑ C. Arron Cois (April 30, 2015). "DevOps Case Study: Netflix and the Chaos Monkey". Software Engineering Institute. https://insights.sei.cmu.edu/devops/2015/04/devops-case-study-netflix-and-the-chaos-monkey.html.
- ↑ García Martínez. "Chaos Monkeys". Blog. http://www.antoniogarciamartinez.com/chaos-monkeys/.
- ↑ "Chaos Monkey and Neutron". January 29, 2015. http://go.bigswitch.com/rs/974-WXR-561/images/Chaos%20Monkey%20-%20OpenStack%20-%20Big%20Cloud%20Fabric.pdf.
- ↑ Ryan Lawler (June 4, 2016). "Netflix Rolls Out Its Own CDN: Open Connect". Tech Crunch. https://techcrunch.com/2012/06/04/netflix-open-connect/.
- ↑ "Netflix Open Connect Content Delivery Network". netflix.com. https://www.netflix.com/openconnect.
- ↑ Eric Savitz (June 5, 2012). "Netflix Shifts Traffic To Its Own CDN; Akamai, Limelight Shrs Hit". Forbes. https://www.forbes.com/sites/ericsavitz/2012/06/05/netflix-shifts-traffic-to-its-own-cdn-akamai-limelight-shrs-hit/.
- ↑ "Netflix Content Delivery". Content Delivery Summit. May 22, 2013. http://blog.streamingmedia.com/wp-content/uploads/2014/02/2013CDNSummit-Keynote-Netflix.pdf.
- ↑ Peter Judge (August 20, 2015). "Netflix's data centers are dead, long live the CDN!". Data Center Dynamics. http://www.datacenterdynamics.com/content-tracks/colo-cloud/netflixs-data-centers-are-dead-long-live-the-cdn/94661.fullarticle.
- ↑ Richard Chirgwin (June 22, 2016). "Boffins map Netflix's Open Connect CDN: Six continents, 233 locations, thousands of servers". The Register. https://www.theregister.co.uk/2016/06/22/boffins_map_netflixs_open_connect_cdn/.
- ↑ Böttger, Timm; Cuadrado, Felix; Tyson, Gareth; Castro, Ignacio; Uhlig, Steve (January 2018). "Open Connect Everywhere: A Glimpse at the Internet Ecosystem through the Lens of the Netflix CDN". ACM SIGCOMM Computer Communication Review 48 (1). doi:10.1145/3211852.3211857. Bibcode: 2016arXiv160605519B.