diff --git a/README.md b/README.md index ef19193..d145901 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,20 @@ -# video-streaming +## ๐Ÿ–ฅ ๋™์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”„๋กœ์ ํŠธ + +* [FFmpeg ํ•™์Šต](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/ffmpeg.md) +* [Chunk๋กœ ๋‚˜๋ˆ ์„œ ์—…๋กœ๋“œ](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/chunk.md) +* [HLS(Http Live Streaming) ์ ์šฉ๊ธฐ](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/hls-http-live-streaming.md) +* [์ธ๋„ค์ผ ๋งŒ๋“ค๊ธฐ](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/undefined.md) +* [์—…๋กœ๋“œ ์‹œ๊ฐ„ ์ด๊ฒŒ ์ตœ์„ ์ผ๊นŒ? (feat.๋น„๋™๊ธฐ Non-Blocking)](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/feat.-non-blocking.md) +* [๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์ž (feat. nGrinder)](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/feat.-ngrinder.md) +* [WebFlux์ ์šฉ๊ธฐ (feat. Server Sent Event)](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/webflux-feat.-server-sent-event.md) +* [์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ๊ตฌํ˜„(feat. Nginx Rtmp)](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/feat.-nginx-rtmp.md) +* [JPA์—์„œ R2DBC๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/jpa-r2dbc.md) +* [๋ฉ€ํ‹ฐ๋ชจ๋“ˆ ์ ์šฉ๊ธฐ](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/undefined-1.md) +* [๋ฐฐํฌํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ๋“ค](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/undefined-2.md) +* [๋Œ“๊ธ€๊ธฐ๋Šฅ ๊ตฌํ˜„](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/undefined-3.md) +* [๋Œ“๊ธ€ ์ข‹์•„์š” ๊ตฌํ˜„ (feat. ๋™์‹œ์„ฑ ๋ฌธ์ œ)](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/feat..md) +* [์ข‹์•„์š”, ์กฐํšŒ์ˆ˜ ๊ธฐ๋Šฅ ์ตœ์ ํ™” (feat. Redis + AWS Lambda)](https://github.com/van1164/kopring/blob/main/blog/project-video-streaming/feat.-redis-+-aws-lambda.md) -## ์ง€๊ธˆ๊นŒ์ง€ ์ƒํ™ฉ ### ๋™์˜์ƒ ์—…๋กœ๋“œ ![image](https://github.com/van1164/video-streaming/assets/52437971/bb5cc6ac-2b06-4e77-a8fc-8a0ff8c7c6dc) @@ -8,42 +22,3 @@ ![2024-04-1201-56-05-ezgif com-video-to-gif-converter](https://github.com/van1164/video-streaming/assets/52437971/0d95eeee-5a9a-4239-a309-1cf1580f9393) -## 1. ์—ฌ๋Ÿฌ Chunk๋“ค์„ ๋™์‹œ์— ์—…๋กœ๋“œํ•ด๋ณด๊ธฐ - ->๊ธฐ์กด์—๋Š” Chunk๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ->์ด๋ฒˆ์—๋Š” ๋ชจ๋“  Chunk์— ๋Œ€ํ•œ ์š”์ฒญ์„ ๋™์‹œ์— ๋ณด๋‚ด๊ณ  Promise๋ฅผ ํ†ตํ•ด ๋‹ค ๋ณด๋‚ด์ง€๋ฉด ๊ทธ ๋‹ค์Œ ๋™์ž‘์„ ํ•˜๋„๋ก ๋‚˜๋ˆ„์–ด ๋ณด์•˜๋‹ค. - -![](https://velog.velcdn.com/images/van1164/post/9694046e-4c06-479e-91c7-bfeeb7b9f19b/image.png) - - - -## ์•ฝ 270MB ์˜์ƒ์œผ๋กœ ์—…๋กœ๋“œ ์†๋„ ๋น„๊ต -### ๊ธฐ์กด๋ฐฉ์‹ (์•ฝ 115์ดˆ) -![](https://velog.velcdn.com/images/van1164/post/28c87411-a0f8-4090-b195-a04da5893dcd/image.png) - -### Promise๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐฉ์‹ (์•ฝ 96์ดˆ) - -![](https://velog.velcdn.com/images/van1164/post/556418eb-b06e-475a-a889-ad8cb1e2f03b/image.png) - -### โœ… ๋™์‹œ์— ์—ฌ๋Ÿฌ์‚ฌ๋žŒ์ด ์—…๋กœ๋“œํ–ˆ์„ ๊ฒฝ์šฐ๋„ ๋น„๊ต๋ฅผ ํ•ด๋ณด์•„์•ผ๊ฒ ์ง€๋งŒ, ์šฐ์„ ์ ์œผ๋กœ ํ•œ๋ช…์— ๋Œ€ํ•ด์„œ๋Š” ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๊ฒŒ ๋” ๋นจ๋ž๋‹ค. - -
- ---- - -
- -## 2. ๋น„๋™๊ธฐ์ ์œผ๋กœ ํ•  ์ˆ˜์žˆ๋Š”๊ฑด ๋น„๋™๊ธฐ์ ์œผ๋กœ ํ•˜๊ธฐ (feat. Completable Future) - -### ๊ธฐ์กด ๋ฐฉ์‹ (์•ฝ 96์ดˆ) -![](https://velog.velcdn.com/images/van1164/post/af9d6a6b-602e-4965-968c-497d1c370c6d/image.png) - - - - -### ๋น„๋™๊ธฐ์ ์ธ ๋ฐฉ์‹ (์•ฝ 81์ดˆ) -![](https://velog.velcdn.com/images/van1164/post/b4de1682-d47a-454b-a9d2-f84ac7447741/image.png) - -![](https://velog.velcdn.com/images/van1164/post/f9ca7507-aba9-436d-bb50-a0cda9332657/image.png) - -### โœ… ๊ฐ™์€ ์šฉ๋Ÿ‰์˜ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ๋ฐ 13์ดˆ์ •๋„์˜ ์‹œ๊ฐ„ ์ ˆ์•ฝ์„ ํ•  ์ˆ˜์žˆ์—ˆ๋‹ค!!