超高密度游戏直播转码架构

超高密度游戏直播转码架构

1. 超高密度游戏直播转码架构 沈悦时 Twitch, Principal Research Engineer
5. 沈悦时 Twitch, Principal Research Engineer 沈悦时博士带领的研发团队负责Twitch的直播视频转码、ABR播放算法、多平台 播放兼容性、画面质量、时延等核心视频技术 沈博士同时是AOM(Alliance of Open media)新一代视频编码协议AV1高层句 法的主要贡献者。他发表、申请近20项技术专利,涵盖视音频压缩、推流、播放 等领域 沈博士毕业于上海交通大学(本科)、澳洲新南威尔士大学(硕士)、澳洲国立 大学(博士)。
6. •  Twitch.tv是干嘛的? •  Twitch直播平台架构,极低成本转码的商业需求 •  FFmpeg有点小毛病,还是得重起炉灶 •  Shopping也很难:各种转码方案的利弊 •  大团圆结局以及未来努力的方向
7. Twitch.tv是干嘛的? 总部位于旧金山,是亚马逊AWS的 子公司 全球(除中国市场外)最大的互动 直播平台 主播、观众主要集中在北美、欧洲, 但亚太、南美是新增长点 服务:直播、聊天室、直播录像、 上传视频、短视频、社区、游戏整 合 营收模式:广告、打赏、游戏商店
8. 有关Twitch.tv的统计数据 1500万+ 日活跃用户 220万+ 月活跃主播 200万+ 高峰并发观众 4万+ 高峰并发直播频道 106分钟 用户平均每天浏览时间 $6500万+ Twitch社群筹集的慈善捐款
9. 与Netflix受众的不耦合性 注:Netflix为美国以及 全球最大的付费内容网 络视频服务商,美国 75%的网络视频观众是 其注册用户
10. 电竞已成为深受年轻人喜爱的大众内容
12. Twitch直播平台架构
13. Twitch直播平台架构
14. 转码的商业需求 “Providing transcoding to our broadcasters would help them give their viewers better user experiences.”
15. Twitch的直播转码系统
16. FFmpeg做RTMP转HLS实时转码 1进N出并转码每个variant: ffmpeg -i <input file or RTMP stream> \ -c:v libx264 -x264opts keyint=120:no-scenecut -s 1920x1080 -r 60 -b:v <target bitrate> -profile:v main -preset veryfast c:a libfdk_aac -sws_flags bilinear -hls_list_size <number of playlist entries> <output file or playlist>.m3u8 \ -c:v libx264 -x264opts keyint=120:no-scenecut -s 1280x720 -r 60 -b:v <target bitrate> -profile:v main -preset veryfast c:a libfdk_aac -sws_flags bilinear -hls_list_size <number of playlist entries> <output file or playlist>.m3u8 \ -c:v libx264 -x264opts keyint=60:no-scenecut -s 1280x720 -r 30 -b:v <target bitrate> -profile:v main -preset veryfast -c:a libfdk_aac -sws_flags bilinear -hls_list_size <number of playlist entries> <output file or playlist>.m3u8 \ -c:v libx264 -x264opts keyint=60:no-scenecut -s 852x480 -r 30 -b:v <target bitrate> -profile:v main -preset veryfast -c:a libfdk_aac -sws_flags bilinear -hls_list_size <number of playlist entries> <output file or playlist>.m3u8 若要转封装某个variant: -c:v copy -c:a copy -hls_list_size <number of playlist entries> <output file or playlist>.m3u8 \
17. 有点问题之一:转码+转封装的IDR对齐
18. 有点问题之一:转码+转封装的IDR对齐
19. 有点问题之一:转码+转封装的IDR对齐
20. 有点问题之二:单线程结构影响软件性能
21. 有点问题之二:单线程结构影响软件性能
22. TwitchTranscoder的高性能:多路输出方显优势
23. TwitchTranscoder的高性能:多路输出方显优势
24. TwitchTranscoder的高性能:多路输出方显优势
25. Shopping一个低成本、高密度的转码方案 ౮๜̵౮๜̵౮๜Ѻ! ᑞਧ௔! ኮᨶ! 3年的总体拥有成本:1/5现有的软件解决方案 48小时不间断运行,能对付各路畸形码流 对比基准:x264 veryfast Twitch的测试内容:https://media.xiph.org/video/derf/ H.264编码的API:IDR插入,码率控制 平均故障间隔,零件物流,NetBoot,IPMI 现成的服务器产品,软件开发支持 ᫫կᵞ౮! ᬩᖌ! Time to market!
26. Shopping还真有点难 ԯ! ᫫կ! ASIC! GPU! սᅩ! ᅎၚ! ᮱ᗟ‫׎‬ഠ҅ṛኮᨶ! ṛੂଶ҅֗‫ۑ‬ᘙҁ֗OPEX҂! ṛੂଶ҅ሿ౮ጱ๐‫࢏ۓ‬Ծߝ! ᗌᅩ! ౮๜ॡṛ҅ᇙ‫ڦ‬ฎegressၞᰁ౮๜૤य़! ֗ੂଶ! ෫ሿ౮ጱ๐‫࢏ۓ‬Ծߝ! ኮᨶӧड़ቘమ!
27. Nvidia Nvenc H.264 codec 100%用ASIC实现 测试了Maxwell代的Quadro M5000, Tesla M60 行业最高的编码器密度 高画质(SDK 2016.3以后版本) 解码器资源不够,拖累转码器密度 新Pascal代的Tesla P4或有突破
28. Intel Quicksync H.264 codec GPGPU和ASIC混合实现 Broadwell代在密度方面有显著提高 市面上有多个基于Xeon E3服务器产品 软硬件成熟,运行稳定,极佳的技术支持 SDK支持对一进N出ABR转码的性能优化 画质不能算非常理想
29. Intel Quicksync:小心SKU
30. Intel Quicksync Skylake:末代皇帝? •  Skylake和Broadwell比,SDK的软件优化 + 更大的GPGPU,能带来 10-20%的性能提高 •  未来新版SDK对于ABR转码的性能或有大幅提升 •  Kaby Lake的转码性能缩水50%,因为VDBOX用了老一代GT2 •  Kaby Lake的新功能仅限于增加了HEVC 10bit 硬件解码的功能 •  Kaby Lake并无VP9硬件编码的功能
31. 讨论:后H.264时代(好像有点混乱) •  编码器的优化努力基本集中在基于内容的VBR,比如Beamr、Harmonic、Ateme等 等 •  实时H.264编码效率超过x264 medium很难:x264 slow/slower提高不明显, veryslow提高明显但无法实时编码 •  VP9:解码已被广泛支持(除iOS),编码效率确有提高,但实时编码依然有难度 (libvpx speed 4就已难做到1080p60) •  HEVC:专利池依然混乱,依然没有浏览器支持,但被机顶盒、SmartTV广泛支持, 编码效率出色,并有众多软硬件实时编码产品 •  数(2020年的)风流人物,还看AV1(但估计实时编码有难度)
32. 大团圆结局,但依然有进步的空间 •  Twitch是全球(除中国市场以外)最大的互动直播平台,峰值并发直播频道超过4万 路 •  软件优化+硬件转码方案的部署使Twitch的转码容量在2017年提高了10倍,同时正式 支持1080p60 6mbps高清,超过50%的Twitch用户观看1080p高清码流 •  有必要跟进Skylake在密度方面的提升,以降低转码器成本 •  有必要评估基于Skylake Quicksync的第三方编码器(用GPGPU做ME等),以提升 画质 •  对于超高观众的频道,可考虑广播VP9、HEVC以降低流量成本
2019/03/24

相关幻灯片