Neflix System Design: How does Netflix onboard new content

youtube 原视频链接

https://www.youtube.com/watch?v=x9Hrn0oNmJM

当用户想要上传视频的时候会遇到如下的问题, 视频需要处理成

1. 不同的格式(MP4, AVI ...)

2. 不同的清晰度 (1024P,720P ...)

假设需要处理成f个格式,r种清晰度,那么一个视频需要处理存储f*r遍, 每次的处理都需要一定的时间

如果将一个视频的f*r次的处理用一台电脑实现,这台电脑的负荷比较大,并且一旦crash,可能又得重新处理这个视频

所以,Netflix将一个视频分成了很多chunk,假设有chunk a, b, c ..., 每个chunck 处理成不同的format可以用不同的processor来处理

chunck a (MP4, 720P)

chunk b (AVI, 720P)

向上面chunk a, chunck b 处理成不同的格式可以分开在不同的机器上处理,就算一个机器crash 了, 不至于需要重新处理整个视频文件,只需要重新处理某个chunk就行

为了让用户加载chunck的时候有更好的体验,不按时间来划分chunck,而是根据场景来划分,scenes>timestamp

可以通过比如说每4s为一个shots,通过合并多个shots来获得一个场景的chunck

当一个视频(比如说一个movie)根据scene分成了很多的chunks,根据用户过去的点击可以来预测一个chunck是否是sparse还是dense。假设当用户点击了某个时间所在的chunck。

sparse意味着用户只是想看当前chunck所在的scene,不看前后的scene,看完这个chunk,用户就会跳到下一个时间隔的比较远的chunck,这时候Netflix需要为用户加载的可以只是这个chunck。

dense意味着用户想看某个chunck附近连续的好几个chunck,那么需要为用户加载的是包括这个chunck在内附近的一系列的chunck。

Netfilx 用Amazon S3来存储这些视频数据。因为Amazon S3非常便宜,经常用于存储静态数据,Netflix的视频数据一旦被存储后不需要特别更新,所以非常适合用Amazon S3来存储,而不是数据库。

Netflix 的服务器大都在美国,如果假设在印度访问Netflix的内容,从美国服务器上拿太远,很慢。在访问Netflix需要经过的ISP,ISP会提供一个local cache (open connect box provided by ISP)来存储India当地经常访问的一些电影, 这样极大的减少了ISP到netflix的network load,在印度的用户通过cache也能更快地访问netflix内容。

System Design [youtube搬运] Neflix system design 笔记相关推荐

  1. System Design [youtube搬运] Whatsapp 笔记

    原视频链接 https://www.youtube.com/watch?v=vvhC64hQZMk Whatsapp是基于chat的APP,了解了Whatsapp的design有助于了解其他所有聊天类 ...

  2. System Design [youtube搬运] Tinder 笔记

    System Design: Tinder as a microservice architecture 原视频链接 https://www.youtube.com/watch?v=tndzLznxq ...

  3. System Design [youtube搬运] Instagram 笔记

    原视频链接 https://www.youtube.com/watch?v=QmX2NPkJTKg 面试的时候最好问面试人他有什么对系统的功能有什么expectation.虽然你可能使用过这个APP, ...

  4. LeetCode 1500. Design a File Sharing System(哈希map+优先队列)

    文章目录 1. 题目 2. 解题 1. 题目 We will use a file-sharing system to share a very large file which consists o ...

  5. On Inferring Autonomous System Relationships in the Internet 论文阅读笔记

    On Inferring Autonomous System Relationships in the Internet 论文阅读笔记 #拓扑推断 AS 拓扑推断相关的研究(较早)可参考:AS Rel ...

  6. #Paper Reading# The YouTube Video Recommendation System

    论文题目: The YouTube Video Recommendation System 论文地址: https://dl.acm.org/citation.cfm?id=1864770 论文发表于 ...

  7. 无法解析的外部符号 class boost::system::error_category const __cdecl boost::system::system_category(void)

    无法解析的外部符号 "class boost::system::error_category const & __cdecl boost::system::system_catego ...

  8. 异常:System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid)

    异常:System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid) 原因:该引用所需.NET Framework版本为4.5 ...

  9. 在SD/MMC卡上实现hive (Implement WinCE HIVEROM system on NAND or SD system )

    本是个很简单的topic,但无奈的是很多客户都没有实现.所以只能写一个guide给客户,让他们依葫芦画瓢. 在SD卡上实现hive以及实现binfs最精髓的思想是,在boot stage 1依次加载s ...

最新文章

  1. 7-24 约分最简分式 (C语言)
  2. DIOCP (一) DIOCP常见问题。
  3. 淘宝技术架构从1.0到4.0的演变
  4. 开篇词:中文自然语言处理——未来数据领域的珠穆朗玛峰
  5. rxjs operator学习笔记
  6. c语言中的取模运算符_C语言除法算法和取模运算的实现(多种算法,多种思路)...
  7. java中的io复用_从 Java 中的零拷贝到五种IO模型
  8. 二叉搜索树 java_二叉查找树之 Java的实现【下】
  9. Linux iptables防火墙详解(一)——iptables基础知识
  10. 美团java在线笔试题_美团点评春招在线笔试后台开发方向笔试题编程题第一题题解...
  11. java后根次序非递归输出_求根结点到每个叶子节点的逆序列【后序遍历非递归的应用】...
  12. Android ViewStub动态加载View
  13. 计算机实习生听课记录,实习生听课记录
  14. Pycharm社区版创建app并调试运行
  15. 指数的增长和衰退问题
  16. 跳转到wps查看文件
  17. HTML+CSS - 侧边导航栏
  18. 回望2016-2018,希望在2019年有所斩获!
  19. vue-cli快速构建vue项目和本地模拟请求数据
  20. jersey number什么意思_Jersey是什么布料?

热门文章

  1. IDEA中Translation插件google翻译无法使用的问题
  2. Java学习路线【转载自topinking老兄的blog】.txt
  3. 历届图灵奖得主(1990-2022)
  4. 洛谷[P2911]牛骨头
  5. 熟食陈列柜的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. 麒麟系统linux网络重启,Linux (麒麟)系统 重启后无法登陆进图形界面
  7. 时光笔记 android,时光笔记app-时光笔记下载 1.6.2 手机版 - 河东软件园
  8. 武汉东湖高新区2021年“光谷芯锐奖”集成电路领域新锐企业评选申报流程、时间
  9. Excel表格下拉数据不会随格式而变动
  10. 如何制作光盘ISO镜像