Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ピクシブの大規模ライブ配信 / ImageFlux Live
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ImageFlux
January 26, 2018
Technology
11k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ピクシブの大規模ライブ配信 / ImageFlux Live
ImageFlux meetup #1
MICHII Shunsuke, pixiv Technologies Inc.
2018-01-25
ImageFlux
January 26, 2018
More Decks by ImageFlux
See All by ImageFlux
ImageFluxについて / CAMPHOR- 2021-12-18
imageflux
0
660
画像処理サービスを作る際の落とし穴をImageFluxではいかにして超えてきたか / ImageFlux meetup #4 (5)
imageflux
1
3.7k
Webサービスにおける画像変換の実践 / ImageFlux meetup - hands-on
imageflux
2
19k
最高の購入体験を実現するための画像ダイナミックチューニング / ImageFlux meetup - Guest session #1
imageflux
3
19k
ImageFlux Live Streamingでサービス開発に集中する / ImageFlux meetup #2 - Guest Session #3
imageflux
0
6.1k
ImageFlux Live Streamingについて
imageflux
0
32k
ImageFlux Updates 2018
imageflux
2
1.5k
Other Decks in Technology
See All in Technology
Meet AgentCore Identity Consent Portal
hironobuiga
3
180
AI Made Us Faster at Solving the Wrong Problems
marceloancelmo
0
160
覗いてみよう 関数型ビジュアル言語×2Dグラフィックスの世界
yohyamasaki
0
170
プラットフォームを「作る」、 チームに「入り込む」
sansantech
PRO
0
690
DAMOS - The Smart Cruise Control for RAM
ennael
PRO
1
120
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
20260930_Gemma4_Hands-on
tsho
0
210
SREでアラート疲れを 解決しよう!
kairim0
1
120
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.3k
freeeらしさをAIとともに作る / Creating the freee Experience with AI
ymrl
0
160
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
360
Deep Data Security 機能解説
oracle4engineer
PRO
2
660
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
700
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Embracing the Ebb and Flow
colly
88
5.2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
The SEO identity crisis: Don't let AI make you average
varn
0
570
Code Reviewing Like a Champion
maltzj
528
40k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
710
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
440
Designing Experiences People Love
moore
143
24k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
Transcript
େنϥΠϒ৴ MICHII Shunsuke | pixiv Technologies Inc. ImageFlux meetup #1
2018-01-25 ٕज़ηογϣϯ
MICHII Shunsuke | harukasan ImageFluxࣄۀऀ ϐΫγϒςΫϊϩδʔζגࣜձࣾࣥߦһ ImageFluxͰGoΛॻ͍ͨΓΠϯϑϥपΓΛ୲
ImageFlux Live • ϒϥβ͔ΒϓϥάΠϯෆཁͰϥΠϒ৴Λ։࢝ • HLSܗࣜͰϒϥβɺϞόΠϧΞϓϦʹ৴ • hls.jsͳͲҰൠతͳHLSΫϥΠΞϯτͰ࠶ੜՄೳ • ͖ͳղ૾/࣭ʹεέʔϦϯάͯ͠৴
ࣄྫ: pixiv Sketch Live
ࣄྫ: pixiv ONE • ϐΫγϒॳͷϥΠϒυϩʔΠϯάΠϕϯτ • ಉ࣌ࢹௌऀ: 5,000ϢʔβʔҎ্ • ϒϥβ͔Βͷେن৴ࣄྫ
ImageFluxͱϥΠϒ৴ • ImageFluxͷϛογϣϯ: ϐΫγϒͷٕज़ΛεϐϯΞτ͢Δ͜ͱͰϐΫγϒͷٕज़্Λࢦ͢ • pixiv Sketch LiveͷͨΊʹImageFluxνʔϜͰϥΠϒ৴ಈతมΛ։ൃ • ϥΠϒ৴ಈతมΛαʔϏεͱͯ͠ఏڙ༧ఆ
• ϐΫγϒͱͯ͠ImageFluxͱͯ͠ϥΠϒ৴ΛڧԽ
ImageFlux Live ৴ऀ ImageFlux Live WebRTC HLS ࢹௌऀ • WebRTCετϦʔϜͰड͚औͬͨಈըΛHLSʹมͯ͠৴
• HLSܗࣜʹม͢Δ͜ͱͰɺଓΛؾʹͤͣେن৴͕Մೳ • WebRTCͳͷͰԆɺ͔ͭHLSͳͷͰେن৴Ͱ͖Δʂ
HLS (HTTP Live Streaming) • Apple͕։ൃͨ͠ϥΠϒετϦʔϛϯά༷ • ϒϥβ/iOS/AndroidͰ࠶ੜՄೳ • iOS:
ωΠςΟϒͰରԠ • Android: ExoPlayer • ϒϥβ: hls.js
HLS (HTTP Live Streaming) .m3u8 hls0.ts hls1.ts hls2.ts ϓϨΠϦετϑΝΠϧ ಈըετϦʔϜϑΝΠϧ
#EXTM3U #EXT-X-TARGETDURATION:3 #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:3.00000, hls0.ts #EXTINF:3.00000, hls1.ts #EXTINF:3.00000, hls2.ts ϑΝΠϧͷ͞
HLS (HTTP Live Streaming) .m3u8 hls0.ts hls1.ts ϓϨΠϠʔ #EXTM3U #EXT-X-TARGETDURATION:3
#EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:3.00000, hls0.ts #EXTINF:3.00000, hls1.ts ϙʔϦϯά
HLS (HTTP Live Streaming) .m3u8 hls0.ts hls1.ts ϓϨΠϠʔ ϙʔϦϯά #EXTM3U
#EXT-X-TARGETDURATION:3 #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:3.00000, hls0.ts #EXTINF:3.00000, hls1.ts
HLS (HTTP Live Streaming) .m3u8 hls0.ts hls1.ts hls2.ts ϓϨΠϠʔ #EXTM3U
#EXT-X-TARGETDURATION:3 #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:3.00000, hls0.ts #EXTINF:3.00000, hls1.ts #EXTINF:3.00000, hls2.ts ϙʔϦϯά
HLS (HTTP Live Streaming) .m3u8 hls0.ts hls1.ts hls2.ts ϓϨΠϠʔ #EXTM3U
#EXT-X-TARGETDURATION:3 #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:3.00000, hls0.ts #EXTINF:3.00000, hls1.ts #EXTINF:3.00000, hls2.ts ϙʔϦϯά
HLSͱԆ • ηάϝϯτϑΝΠϧͷ͞ʹ࠷ͷͳ͕͞ • EXT-X-STARTλάΛ͏ͱϓϨΠϦετͷ࠶ੜΦϑηοτΛܾΊΒΕΔ • pixiv Sketch LiveͷઃఆͩͱԆ10ʙඵ͘Β͍ •
͍·ͷͱ͜ΖؤுΔͱ3ඵ͘Β͍·ͰॖΊͦ͏
γεςϜߏ Transcoder Transcoder Transcoder RTP stream Stream Manager Msgpack stream
TS TS TS ৴ऀ WebRTC SFU WebRTC API Transcoder: H.264/AVC, OpusετϦʔϜΛ τϥϯείʔυ͠ɺMPEG2-TS ʹmuxingͯ͠ग़ྗ Stream Manager: Transcoderͷϓϩηεཧ RTPετϦʔϜΛύʔε͠ɺॱং ੍ޚΛߦͬͯTranscoderʹ͓͘Δ Transcoder͕ग़ྗͨ͠TSϑΝΠϧ ΛHLSʹه API: ετϦʔϜΛ࢝ΊΔAPI ·ͩαʔϏε༷͕ܾ·͍ͬͯ·ͤΜ
WebRTC SFU • WebRTC SFU / ηογϣϯཧʹWebRTC SFU SoraΛ࠾༻ •
Sora͕ղআͨ͠RTPετϦʔϜΛStream Managerʹసૹ RTP stream WebRTC SFU WebRTC
Stream Manager Transcoder Stream Manager RTP stream UDP HTTP API
TCP • GoͰॻ͔Εͨγϯάϧϓϩηεαʔό • ඞཁͳͷTranscoderϓϩηεΛىಈ • RTPετϦʔϜΛσίʔυɺύʔεͯ͠Msgpackʹ٧Ίͯ͠τϥϯείʔμʹసૹ • RTPετϦʔϜUDPͷͨΊॱং੍ޚɺόοϑΝϦϯά͕ඞཁʹͳΔ Msgpack
RTP • ϦΞϧλΠϜੑͷͨΊʹ࠶ૹ੍ޚͳͲΛল͍ͨϓϩτίϧ • UDPͳͷͰॱং੍ޚ͞Ε͍ͯͳ͍͕ɺγʔέϯε൪߸ؚ͕·Ε͍ͯΔͷͰ γʔέϯε൪߸Λϕʔεʹฒͼସ͑Δඞཁ͕͋Δ • RFC3350(RTP)ͰϖΠϩʔυͷ༰·Ͱఆٛ͞Ε͍ͯͳ͍ • H.264:
RFC6184 • Opus: RFC7587
Transcoder • RustͰॻ͔ΕͨCLIϓϩηε • bindgenΛར༻ͯ͠C++ͷSDKΛόΠϯυ • livavformatΛར༻ͯ͠ԻͱಈըΛmuxing Tesla NVIDIA Video
Codec SDK Transcoder Libavformat
NVDEC/NVENC • NVIDIA Tesla GPUʹࡌ͞Ε͍ͯΔNVDEC/NVENCΛར༻ https://developer.nvidia.com/nvidia-video-codec-sdk
NVDEC/NVENC • ࣮ࡍʹσίʔυ/ΤϯίʔυॲཧΛΔͷCUDAίΞͰͳ͘ઐ༻νοϓ • ઐ༻νοϓͷʹΑͬͯॲཧͰ͖ΔετϦʔϜ͕ܾ·Δ • decoder/encoder/cudaͦΕͧΕͷෛՙΛϞχλϦϯά͢Δͷ͕ॏཁ • CUDAεέʔϦϯάʹ͚ͩ༻
NVDEC/NVENC Τϯίʔμෛՙ͕ߴΊ
Rust • ͍͞͠ΐʹࢼͯ͠ΒͬͨΞϧόΠτ͕Ұ൪͘ॻ͚Δͷ͕Rustͩͬͨ • ϝϞϦ·ΘΓͷॻ͖ํ͕C++ΑΓ҆͘͢͝શ/؆୯ • cgoͱҧͬͯbindgenόΠϯσΟϯάίʔυΛੜͯ͘͠ΕΔͷͰཧղ͠ ͍͢
ࠓޙͷల • αʔϏε༷ͷܾఆ • ύέοτϩε࣌ͷΤϥʔॲཧ্ • ϋʔυΣΞΤϯίʔμͷݕূ • αʔϏεͱͯ͠ϦϦʔεʂ
·ͱΊ • ImageFluxͰϥΠϒ৴ߦ͍͖ͬͯ·͢ʂ • ·ͩαʔϏε༷͕ܾ·͍ͬͯͳ͍ͨΊώΞϦϯάΛߦ͍ͬͯΔஈ֊Ͱ͢ • ڵຯ͋Δํੋඇ͓͕͚͍ͩ͘͞