Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ATEMを活用した制作ソリューション
Search
Yusei Yamanaka
August 12, 2016
Technology
0
1.3k
ATEMを活用した制作ソリューション
Blackmagic Creators Show 特別編「ディベロッパーセミナー」
http://www.blackmagicdesign-creatorscom.jp/index.php?ka=7
Yusei Yamanaka
August 12, 2016
Tweet
Share
More Decks by Yusei Yamanaka
See All by Yusei Yamanaka
生配信管理システムのバックエンド〜AWS AppSyncで迅速に構築するGraphQLサービス〜 / Backend of live streaming management system - GraphQL service to build quickly with AWS AppSync
miyukki
0
1.3k
"新しい未来のテレビ"を目指すABEMA配信システムの再設計 / Re-architecture of ABEMA live ingest system
miyukki
0
2.4k
3周年に突入するAbemaTVの挑戦と苦悩 / The challenge and anguish of AbemaTV celebrating the third anniversary
miyukki
8
5.1k
AbemaTVのアーキテクチャの変遷 / The history of AbemaTV's architecture
miyukki
3
1.5k
機材管理ツールをFirebaseで構築しようとした話 / Building equipment management software with Firebase
miyukki
7
4.5k
AbemaTVで働くエンジニアの裏側 / The engineer working at AbemaTV
miyukki
0
880
動画配信サービスとしてこの先生きのこるには / The way to continue as a video streaming service
miyukki
8
3.9k
MPEG-DASHによるリニア型配信 / Linear broadcasting by MPEG-DASH on AbemaTV
miyukki
6
13k
1周年を迎えたAbemaTVの動画配信の裏側 / The background of video distribution in AbemaTV during one year
miyukki
15
13k
Other Decks in Technology
See All in Technology
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
410
共有と分離 - Compose Multiplatform "本番導入" の設計指針
error96num
2
480
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
170
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
150
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.6k
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
230
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
470
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
20
10k
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
240
KotlinConf 2025_イベントレポート
sony
1
130
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.7k
Agile PBL at New Grads Trainings
kawaguti
PRO
1
430
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Pragmatic Product Professional
lauravandoore
36
6.9k
GraphQLとの向き合い方2022年版
quramy
49
14k
Speed Design
sergeychernyshev
32
1.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Transcript
"5&.Λ׆༻੍ͨ͠࡞ιϦϡʔγϣϯ :VTFJ:"."/"," !NJZVLLJ #MBDLNBHJD$SFBUPST4IPXಛผฤʮσΟϕϩούʔηϛφʔʯ
ࣗݾհ ීஈɺΤϯδχΞͱͯ͠ɺͱ͋ΔಈըαʔϏεͷ όοΫΤϯυΛ৮͍ͬͯ·͢ ຊͷਖ਼ମେֶੜ ຊ໊ࢁத༐ ̝̣ΈΏ͖ͬ !UPSJJNJZVLLJ #MBDLNBHJD%FTJHO͕େ͖Ͱݸਓॴ༗ͳΒෛ ͚·ͤΜʂ
*LB-PHͬͯ·͢ʂ झຯͰө૾͕͖Ͱɺऩ৴Λ͍ͬͯ·͢
ओͳॴ༗ػࡐ w #.%"5&..&1SPEVDUJPO4UVEJP, w #.%)ZQFS%FDL4UVEJP1SP w #.%)ZQFS%FDL4IVUUMF w #.%4UVEJP$BNFSB)%
w #.%%FDL-JOL)%&YUSFNF% w #.%%FDL-JOL%VP w 40/:1.8, 4ZTUFN$BNFSB w $BOPO9" ࠷ۙ4:45&.Ͱങͬͨͷ 57-PHJDͷΠϯνϚϧνϑΥʔϚοτϞχλ
ػࡐൡ ۀ༻ɾ์ૹ༻ࡱӨػࡐ͕େ͖ͳࣾձਓɺେֶӃੜɺେֶੜɺߴઐੜɺߴߍੜ͕ू ·ͬͯ݁͞Εͨஂମ ߴߍ์ૹ෦ΛҾୀͯ͠ʜػࡐ͕େ͖ͰࣗෲͰۀ༻ɾ์ૹ༻ػࡐΛͦΖ͑ͯ ͠·͏ਓͨͪͷू·Γ ϓϩ͡Ό͋Γ·ͤΜɻ
NΫϨʔϯɺελδΦΧϝϥɺγεςϜΧϝϥͳͲͲͷػࡐΛൡһ͕ॴ࣋
աڈͷΠϕϯτ࣮ ݄ +"9"ӉՊֶݚڀॴओ࠵ ӉՊֶߨԋͱөըͷձ ݄ɺ χίχίձٞ ·Δͳ͛εςʔδ ϚϧνΧϝϥऩΛߦ͍·ͨ͠ র໌ɺ৴ɺऩΛߦ͍·ͨ͠
աڈͷΠϕϯτ࣮ ݄ ήʔϜ࣮گφΠτʙਓʙ JOαϯϦΦϐϡʔϩϥϯυ ϥΠϒεΠονϯάऩߦ͍·ͨ͠ ݄ɺɺ ͦΒത40-J7& ެ։ੜ์ૹ γεςϜߏஙɺ৴ɺऩΛߦ͍·ͨ͠
"5&.ϓϩτίϧͷղੳϥΠϒϥϦͷ։ൃ
"5&. ಉػೳͷͱൺͯɺൺֱత҆ՁͳεΠονϟʔʢݸਓͰങ͑Δʂʣ &UIFSOFUܦ༝Ͱͷίϯτϩʔϧ͕Մೳ 4%,ͳͲ։ൃͷࢿྉ͕๛
"5&.ͷ੍ޚํ๏ "5&.ʹެࣜͰ4%,͕͋Δ͕ɺ%--ωΠςΟϒͷϥΠϒϥϦͱͯ͠ఏڙ͞Ε͍ͯ ΔͨΊɺΞϓϦέʔγϣϯΛ࡞Δίετ͕ߴ͍ ࣗ࡞Ͱ/PEFKTͷϥΠϒϥϦΛ੍࡞͢Δ͜ͱʹΑΓɺΞϓϦέʔγϣϯΛ࡞Δίε τΛݮ͠ɺϚϧνϓϥοτϑΥʔϜͰಈ࡞͢ΔΑ͏ʹ "5&.ͷ੍ޚ6%1ϙʔτ൪Λ༻͢ΔʢϩʔΧϧଆͷϙʔτԿͰྑ͍ʣ
ͪͳΈʹ)ZQFS%FDLͷ੍ޚ5$1Ͱ͢ʢ։ൃνʔϜʹΑΔҧ͍ʁʣ
"5&.Λ੍ޚ͢Δγʔέϯε
"5&.ϓϩτίϧͷ༷1$"5&. 0 1 2 3 0 1 2 3
4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Packet Length | Session Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Echo Data | NULL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NULL | Packet Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Command Length | NULL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Command Name (ASCII) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Command Data… | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
"5&.ϓϩτίϧͷ༷1$"5&. 0 1 2 3 0 1 2 3
4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Packet Length | Session Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Echo Data | NULL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NULL | Packet Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Command Length | NULL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Command Name (ASCII) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Command Data… | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ڪΒ͘ύέοτͷॱংΛอূ͢ΔͷͰɺ "5&.ʹૹΔͱ͖ʹඞཁʹͳΔ 1$ଆ͔ΒૹΔճΛΠϯΫϦϝϯτ͍ͯ͘͠ ੍ޚରͷίϚϯυ໊
"5&.ϓϩτίϧͷ༷"5&.1$ 0 1 2 3 0 1 2 3
4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Packet Length | Session Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ? | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ? | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Command Length | ? | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Command Name (ASCII) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Command Data… | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
"5&.ίϚϯυͷ༷ ϓϩάϥϜιʔεͷมߋ 1$"5&.$1H*$IBOHF1SPHSBN*OQVU 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Command Length - 12 bytes | NULL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Command Name (ASCII) - CPgI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | M/E | NULL | Source Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ "5&.1$1SH*1SPHSBN*OQVU ܗࣜ$1H*ͱಉ͡
ϓϩτίϧͷ༷ "SEVJOPϥΠϒϥϦΛެ։͍ͯ͠Δɺ4,""3)0+ εΧΠϗΠ ͕ɺ"5&.ͷύ έοτΛղੳͨ݁͠ՌΛ·ͱΊͯܝࡌ͍ͯ͠Δ IUUQTLBBSIPKDPNpMFBENJO#.%13050$0-IUNM
8JSFTIBSL-VBϓϥάΠϯ 4,""3)0+Ͱɺܝࡌ͍ͯ͠ͳ͍ίϚϯυ͋ΔͨΊʢ.FEJB1MBZFSͳͲʣࣗྗͰ ͷϓϩτίϧղੳΛิॿ͢ΔͨΊʹɺ8JSFTIBSLͷ-VBϓϥάΠϯΛ࡞Γ·ͨ͠ ཉ͍͠ਓ͕͍ͨΒެ։͠·͢ʜ
ࣗ࡞ϥΠϒϥϦͷհ "5&.Λ੍ޚ͢ΔجຊతͳϓϩτίϧΛ࣮ͨ͠ɺࣗ࡞ϥΠϒϥϦΛ(JU)VCͰެ։͠ ͍ͯ·͢ ͪͳΈʹɺ"5&.Λ੍ޚ͢ΔOQNϥΠϒϥϦͭ͋Γ·͕͢ɺͦͷதͰΑ͘ग़ དྷͯΔͱࣗෛ OPEFBQQMFTUBUFN .*5-JDFOTF
IUUQTHJUIVCDPNBQQMFTUOPEFBQQMFTUBUFN ελʔཉ͍͠Ͱ͢
ϝσΟΞ ενϧ ͷసૹʹରԠ
ςετ
"5&.ͱ੍࡞ͷ׆༻ࣄྫ
"5&..*%*ίϯτϩʔϥʔ
"5&.#SPBEDBTU1BOFMߴ͍ʂӡൖ͕େมʂ "5&..*%*ίϯτϩʔϥʔ αʔυύʔςΟͷϋʔυΣΞ͋Δ͕ʜ ҆Ձͳ.*%*ίϯτϩʔϥʔΛɺ"5&.ͷϋʔυΣΞύωϧʹͯ͠͠·͓͏ʂ
ιϑτΣΞ੍ޚͳͷͰɺϘλϯͷΞαΠϯΛࣗ༝ʹׂΓͯՄೳ "5&..*%*ίϯτϩʔϥʔ ઃఆϑΝΠϧͰϘλϯΞαΠϯΛมߋͰ͖ΔΑ͏ʹ 13( 145 $IBOOFM 'BEFS
9-3'BEFS 5#BS ϘλϯΞαΠϯߏҰྫ ར༻γʔϯ
"5&..*%*ίϯτϩʔϥʔ σϞ
"5&..*%*ίϯτϩʔϥʔ
ϚΫϩͷ࠶ੜʹରԠ
.*%*ίϯτϩʔϥʔࣗମ͕লεϖʔεͰిݯෆཁͳͨΊɺઃஔָ͕ "5&..*%*ίϯτϩʔϥʔӡ༻தͷ༷ࢠ
Α͘ɺ͜Ε͍͘ΒͰചͬͯ͘Ε·͔͢ʁͱ͍͏ݴ༿Λฉ͖·͕͢ɺ "5&..*%*ίϯτϩʔϥʔ ͪ͜Βɺ(JU)VCͰެ։͍ͯ͠·͢ʂ BUFNNJEJDPOUSPMMFS .*5-JDFOTF IUUQTHJUIVCDPNBQQMFTUBUFNNJEJDPOUSPMMFS
"5&.ϒϥβίϯτϩʔϥʔ
"5&.ϒϥβίϯτϩʔϥʔ ࣗ࡞ϥΠϒϥϦΛ༻ͯ͠ɺϒϥβ͔Β"5&.Λૢ࡞͢ΔίϯτϩʔϥʔΛ࡞͠ ·ͨ͠ 6*ͷϘλϯ෦εϥΠμʔ෦ͳͲɺը૾ΛΘͣ$44Ͱ࠶ݱ͍ͯ͠·͢
"5&.ϒϥβίϯτϩʔϥʔ։ൃதͷ༷ࢠ
ͪ͜Βɺ(JU)VCͰެ։͍ͯ͠·͢ʂ "5&.ϒϥβίϯτϩʔϥʔ MJWFDPOUSPMMFS .*5-JDFOTF IUUQTHJUIVCDPNBQQMFTUMJWFDPOUSPMMFS
"5&.λϦʔίϯόʔλʔ
(1*BOE5BMMZ*OUFSGBDFߴ͍ʂ "5&.λϦʔίϯόʔλʔ "SEVJOPΛ͔ͭͬͯɺࣗ࡞͠Α͏ʂ (1*BOE5BMMZ*OUFSGBDF ԁ ੍࡞ͨ͠"5&.λϦʔίϯόʔλʔ
4,""3)0+ͷఏڙ͍ͯ͠Δ"SEVJOP-JCSBSZGPS"5&.4XJUDIFSTΛ༻
"5&.λϦʔίϯόʔλʔ։ൃதͷ༷ࢠ 1305&$)ͷΠϯλʔΧϜγεςϜ'%4ͱ࿈ܞ༷ͨ͠ࢠ %4VC ϐϯ ͷΦʔϓϯίϨΫλग़ྗ
"5&.λϦʔίϯόʔλʔ։ൃதͷ༷ࢠ 1305&$)ͷΠϯλʔΧϜࢠػ'%"ͷλϦʔग़ྗΛେ͖͘දࣔ͢ΔλϦʔϢ χοτΛ࡞
"5&.λϦʔίϯόʔλʔ։ൃதͷ༷ࢠ 40/:ͷγεςϜΧϝϥ$$6)9$6'#ͱ࿈ܞ
"5&.λϦʔίϯόʔλʔӡ༻தͷ༷ࢠ χίχίձٞ·Δͳ͛εςʔδͰ࣮ઓೖ
"5&.λϦʔίϯόʔλʔӡ༻தͷ༷ࢠ ԋऀ͕ݟ͍͢Α͏ʹ͢Δ͜ͱͰɺΧϝϥͷઢΛ͘ΕΔΑ͏ʹ
"5&.ϫΠϠϨελϦʔ
"5&.ϫΠϠϨελϦʔ λϦʔίϯόʔλʔΑΓઌʹ։ൃͨ͠ɺΈΜͳͷεϚϗΛλϦʔʹ͢ΔγεςϜ λοϓ͢Δ͜ͱͰϓϩάϥϜ͕ΓସΘΔͷͰɺগਓͷݱʹ࠷ద
"5&.࿈ಈಈըϓϨʔϠʔ
"5&.࿈ಈಈըϓϨʔϠʔ ࣗ࡞ͷϥΠϒϥϦΛ&MFDUSPOʢ/PEFKTΛωΠςΟϒΞϓϦԽ͢ΔιϑτΣΞʣʹ ΈࠐΈɺ"5&.ͷϓϩάϥϜʹΓସΘͬͨΒಈը࠶ੜΛ͢ΔϓϨʔϠʔΛ࡞
"5&.ͱଞͷεΠονϟʔͱͷ࿈ܞ
"5&.ͱଞͷεΠονϟʔͱͷ࿈ܞ "5&.574 ೖྗ ͱ$FSFWP͞Μͷ-JWF8FEHF ೖྗ ͱ࿈ܞ͠ɺٖࣅతͳೖྗ εΠονϟʔʹݟͤΔγεςϜ
·ͱΊ
·ͱΊ "5&.Λ׆༻੍ͨ͠࡞ιϦϡʔγϣϯ #MBDLNBHJD%FTJHO"5&.4XJUDIFSTΛ͏͜ͱʹΑΓɺ&UIFSOFUܦ༝Ͱͷ͋Β ΏΔίϯτϩʔϧ͕ՄೳͱͳΓɺεΠονϟʔͱ࿈ܞ༷ͨ͠ʑͳγεςϜΛߏங͢Δ ͜ͱ͕ՄೳͱͳΔ ެࣜͷ4%,αʔυύʔςΟͷϥΠϒϥϦ͕๛ ։ൃऀΤϯδχΞ͕ू·ΔΦʔϓϯͳίϛϡχςΟ͋Δ
"5&.6TFSDPNIUUQXXXBUFNVTFSDPNGPSVN "5&.ؔ࿈ͷ։ൃʹؔ͢Δ૬ஊɺࡱӨɺऩͳͲͷ͝ґཔ͕͋Γ·ͨ͠Βɺ͓ͪ͠ ͓ͯΓ·͢
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠