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
WebSocketでカメラの映像を共有してみた
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
onozaty
February 28, 2018
Programming
51
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
WebSocketでカメラの映像を共有してみた
WebSocketのバイナリメッセージとWebRTCのカメラを利用して、映像の共有をしてみました
onozaty
February 28, 2018
More Decks by onozaty
See All by onozaty
Dev Containers のススメ
onozaty
0
75
リモートワーク中に買って良かったものベスト3
onozaty
0
210
情報を表現するときのポイント
onozaty
0
41
チームで開発するための環境を整える
onozaty
1
370
Selenium入門(2023年版)
onozaty
1
240
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
0
93
Java8から17へ
onozaty
0
34
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
0
310
Redmine issue assign notice plugin の紹介
onozaty
0
310
Other Decks in Programming
See All in Programming
Workers Cache を知る
syumai
0
290
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
590
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
170
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
450
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.5k
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.1k
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
3.3k
Security issues being discussed on Web Platforms
petamoriken
0
1.3k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
160
一人だけ、Kiroが静止する日
hideg
0
130
iOSDC2026登壇資料.pdf
riofujimon
0
190
setup-vp GitLab対応の裏側
naokihaba
0
130
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
550
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
710
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
KATA
mclloyd
PRO
35
16k
The Curious Case for Waylosing
cassininazir
1
540
Skip the Path - Find Your Career Trail
mkilby
1
240
GitHub's CSS Performance
jonrohan
1033
470k
It's Worth the Effort
3n
188
29k
A designer walks into a library…
pauljervisheath
211
25k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Transcript
WebSocketͰ Χϝϥͷө૾Λ ڞ༗ͯ͠Έͨ 2018-02-28 ࣾษڧձ onozaty
WebSocket • αʔόͱΫϥΠΞϯτؒͰํ௨৴Λߦ͏ ٕज़ • 1ͭͷίωΫγϣϯͰํ௨৴͕ߦ͑Δ • ϦΞϧλΠϜͳ௨৴Λ࣮ݱͰ͖Δ
ͲΜͳͷʹ͍ͯΔ͔ • ϦΞϧλΠϜʹใΛΓͱΓ͍ͨ͠ͷ • ͨͱ͑ΦϯϥΠϯήʔϜͱ͔
ϒϥβͷରԠঢ়گ Ҿ༻ݩ: https://developer.mozilla.org/ja/docs/Web/API/WebSockets_API#Browser_compatibility
ͱΓ͋͑ͣ Կ͔࡞ͬͯΈ͍ͨ
࠷ॳʹ࡞ͬͨͷ • WebSocketͷࡐʹΑ͕͋͘ΔνϟοτΛ ࡞ͬͯΈͨ • αʔόSpring BootͰ • https://github.com/onozaty/spring-boot-sandbox/ tree/master/spring-boot-websocket
͋·Γʹ؆୯͗ͨ͢
ଞͷࡐΛ୳ͦ͏
ଞͷࡐΛߟ͑Δ • WebSocketόΠφϦϝοηʔδඈͤΔ ͱ͍͏ͷ͕໘നͦ͏ • ΧϝϥWebRTCʹؔ࿈ͯ͠؆୯ʹૢ࡞Ͱ͖ ΔΑ͏ʹͳ͍ͬͯΔΒ͍͠ͷͰɺͦΕҰॹ ʹࢼͤΕ
ΧϝϥͰࡱӨͨ͠ը૾Λ WebSocketͰڞ༗͢Δ
ཁ݅ • ΫϥΠΞϯτؒͰΧϝϥͷө૾Λڞ༗͢Δ • ϦΞϧλΠϜʹߋ৽͠ɺಈըͬΆ͘ݟͤΕΔ Α͏ʹ
αʔόଆͷ࣮ • ड৴ͨ͠όΠφϦσʔλ(ը૾)ʹɺૹ৴ݩΛҰ ҙʹࣝผ͢ΔใΛ༩ͨ͠͏͑ͰɺશΫϥ ΠΞϯτʹϒϩʔυΩϟετ • ΫϥΠΞϯτ͔ΒஅΛݕͨ͠Βɺۭͷσʔ λΛશΫϥΠΞϯτʹૹͬͯදࣔ༰ΛϦηο τ
ΫϥΠΞϯτଆͷ࣮ • getUserMedia()Λ௨ͯ͡ΧϝϥͷσόΠεΛऔ ಘ͠ɺ<video>Ͱಈըͱͯ͠දࣔ • ҰఆपظͰ<video>ͷ༰Λ<canvas>ʹॻ͖ࠐ ΜͰɺjpegը૾ͷόΠφϦʹͯ͠αʔόʹૹ৴ • αʔόଆ͔Βड͚औͬͨը૾ɺόΠφϦͷઌ ಄෦ʹ༩͞Εͨૹ৴ݩΛࣝผ͢ΔใΛݩ
ʹɺૹ৴ݩຖʹදࣔ
ৄ͍͠༰ Լهͷίʔυࢀর https://github.com/onozaty/shared-camera-websocket/ tree/master/shared-camera-server
σϞ
σϞ • ԼهͷϓϩδΣΫτΛHerokuͰσϓϩΠ • https://github.com/onozaty/shared-camera-websocket • ը૾Λେྔʹ৴͢Δ͜ͱʹͳΔͷͰɺ௨৴ ྔʹҙ • ΪΨ͕ݮΔ
ը໘Πϝʔδ
ײ • ΧϝϥΛJavaScript͔Β৮ΔͷɺࢥͬͨҎ্ ʹ؆୯ͩͬͨ • όΠφϦϝοηʔδΛΓͱΓͰ͖Δͷɺ ͍Ζ͍ΖԠ༻͕͖͖ͦ͏ • Herokuศར
͓·͚ • ࠓճͷσϞͰΒͳ͔͕ͬͨɺRaspberry Piʹ ଓͨ͠Χϝϥ͔Β৴͢ΔΫϥΠΞϯτ࡞ͬͨ • Ұ൪ۤઓͨ͠ͷ͜͜ • Node.jsɺPythonɺJavaͱࢼ͢ϋϝʹ •
͜ΕΛ͏ͱɺՈʹ͓͍ͨRaspberry PiͷΧϝϥͰ ࡱӨͨ͠ը૾Λඈͯ͠ɺ֎ग़ઌ͔Β֬ೝ͢ΔΑ͏ ͳ͜ͱͰ͖Δ