Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ピクシブのコンテンツ配信基盤技術 / pixiv TECH SALON

ピクシブのコンテンツ配信基盤技術 / pixiv TECH SALON

ピクシブのコンテンツ配信基盤技術
pixiv TECH SALON / 2018-03-06
https://techsalon.pixiv.co.jp/

Harukasan

March 06, 2019
Tweet

More Decks by Harukasan

Other Decks in Technology

Transcript

  1. go-thumber Gopher image was created by Takuya Ueda (https://twitter.com/tenntenn).
 Licensed

    under the Creative Commons 3.0 Attributions license. https://github.com/pixiv/go-thumber αϜωΠϧม׵ϓϩΩγ
  2. ։ൃαΠΫϧΛଅਐ͢ΔΫϥ΢υը૾ม׵αʔϏε Base:
 go-thumber
 pixiv഑৴Ϋϥελ Format:
 JPEG, PNG, GIF
 and WebP

    Origin:
 HTTPS and S3 Infrastructure: ͘͞ΒΠϯλʔωοτ
 ίϯςϯπ഑৴ج൫ JPEG PNG WebP HTTPS
  3. type ScanLineReader interface {
 
 // Config returns the image

    configuration. Config() *Config
 
 // ReadScanLines reads scan lines into the p for each component. ReadScanLines(ctx context.Context, p [][]uint8) (int, error)
 } ֤ը૾ม׵ίϯϙʔωϯτΛؔ਺ͱ࣮ͯ͠૷ ը૾ม׵ύΠϓϥΠϯ func Scale(src ScanLineReader, width, height int) ScanLineReader
  4. c := Decode(src) c = Clip(c, image.Rect(10,10,410,310)) c = Scale(c,

    200, 150) Encode(rw, c) ը૾ม׵ύΠϓϥΠϯ Decode Clip Scale Encode ෳ਺ͷը૾ॲཧΛ࿈݁
  5. WebRTC - HLS WebRTC SFU Sora Streamer Transcoder RTP forwarding

    spawn GPU MPEG-TS PIPE M3U8 # " Cache ഑৴ऀ ࢹௌऀ
  6. ߴ଎ɺେ༰ྔ഑৴ͷݚڀ։ൃ Format:
 VP9 HEIF (HEVC) AV1 Protocol:
 WebRTC LHLS Infrastructure:


    100G network ෳ਺Ϧʔδϣϯ CDNͱͷ౷߹ Research:
 ػցֶश ετϦʔϜม׵