๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ํ”„๋ ˆ์ž„์›Œํฌ GStreamer 1.16.0 ์‚ฌ์šฉ ๊ฐ€๋Šฅ

XNUMX๋…„์—ฌ์˜ ๊ฐœ๋ฐœ ๋์— ์ผ์–ด๋‚ฌ๋‹ค ์„๋ฐฉํ•˜๋‹ค ์žˆ๋Š” GStreamer 1.16๋Š” ๋ฏธ๋””์–ด ํ”Œ๋ ˆ์ด์–ด ๋ฐ ์˜ค๋””์˜ค/๋น„๋””์˜ค ํŒŒ์ผ ๋ณ€ํ™˜๊ธฐ๋ถ€ํ„ฐ VoIP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ์‹œ์Šคํ…œ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๊ด‘๋ฒ”์œ„ํ•œ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด C๋กœ ์ž‘์„ฑ๋œ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๊ตฌ์„ฑ ์š”์†Œ ์„ธํŠธ์ž…๋‹ˆ๋‹ค. GStreamer ์ฝ”๋“œ๋Š” LGPLv2.1์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— gst-plugins-base 1.16, gst-plugins-good 1.16, gst-plugins-bad 1.16, gst-plugins-ugly 1.16 ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ์™€ gst-libav 1.16 ๋ฐ”์ธ๋”ฉ ๋ฐ gst-rtsp-server 1.16 ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋ฒ„. API ๋ฐ ABI ์ˆ˜์ค€์—์„œ ์ƒˆ ๋ฆด๋ฆฌ์Šค๋Š” 1.0 ๋ถ„๊ธฐ์™€ ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋นŒ๋“œ๊ฐ€ ๊ณง ์ œ๊ณต๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ค€๋น„๋  ๊ฒƒ์ด๋‹ค Android, iOS, macOS ๋ฐ Windows์šฉ(Linux์—์„œ๋Š” ๋ฐฐํฌํŒ์˜ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค).

์—ด์‡  ๊ฐœ๋Ÿ‰ GStreamer 1.16:

  • WebRTC ์Šคํƒ์—๋Š” SCTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋œ P2P ๋ฐ์ดํ„ฐ ์ฑ„๋„์— ๋Œ€ํ•œ ์ง€์›๊ณผ ๋ฌถ์Œ ํ•˜๋‚˜์˜ ์—ฐ๊ฒฐ ๋‚ด์—์„œ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ  ์—ฌ๋Ÿฌ TURN ์„œ๋ฒ„์™€ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ(์ฃผ์†Œ ๋ณ€ํ™˜๊ธฐ ์šฐํšŒ๋ฅผ ์œ„ํ•œ STUN ํ™•์žฅ)
  • Matroska(MKV) ๋ฐ QuickTime/MP1 ์ปจํ…Œ์ด๋„ˆ์— AV4 ๋น„๋””์˜ค ์ฝ”๋ฑ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ AV1 ์„ค์ •์ด ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ ์ธ์ฝ”๋”์—์„œ ์ง€์›ํ•˜๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ํ˜•์‹์˜ ์ˆ˜๊ฐ€ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€ ์ง€์› ์ž๋ง‰ ๋ฐฉ์†ก, ๋น„๋””์˜ค์—์„œ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์ถ”์ถœํ•˜๋Š” ๊ธฐ๋Šฅ ANC (๋ณด์กฐ ๋ฐ์ดํ„ฐ, ์Šค์บ” ๋ผ์ธ์˜ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์—์„œ ๋””์ง€ํ„ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ์˜ค๋””์˜ค ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ์ •๋ณด)
  • ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์˜ค๋””์˜ค ์ฑ„๋„์„ ๊ต์ฒดํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋”ฉ๋˜์ง€ ์•Š์€(์›์‹œ) ์˜ค๋””์˜ค์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋น„์ธํ„ฐ๋ฆฌ๋ธŒ, ์™ผ์ชฝ ๋ฐ ์˜ค๋ฅธ์ชฝ ์˜ค๋””์˜ค ์ฑ„๋„์€ "LEFT|RIGHT|LEFT|RIGHT|LEFT|RIGHT" ํ˜•์‹์œผ๋กœ ์ฑ„๋„์„ ๊ต์ฒดํ•˜๋Š” ๋Œ€์‹  ๋ณ„๋„์˜ ๋ธ”๋ก์— ๋ฐฐ์น˜๋จ) );
  • ๊ธฐ๋ณธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ธํŠธ(gst-plugins-base)๋กœ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. GstVideoAggregator (์›์‹œ ๋น„๋””์˜ค ๋ฏน์‹ฑ ํด๋ž˜์Šค), ์ž‘๊ณก๊ฐ€ ์ด์ „์— "gst-plugins-bad" ์„ธํŠธ์— ์žˆ๋˜ (videomixer์˜ ๊ฐœ์„ ๋œ ๋Œ€์ฒดํ’ˆ) ๋ฐ OpenGL ๋ฏน์„œ ์š”์†Œ(glvideomixer, glmixerbin, glvideomixerelement, glstereomix, glmosaic);
  • ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ ์ •๊ถŒ ๊ฐ ๋ฒ„ํผ๊ฐ€ ๋ฒ„ํผ์™€ โ€‹โ€‹๊ด€๋ จ๋œ ํ”Œ๋ž˜๊ทธ ๋ ˆ๋ฒจ์—์„œ ์ƒ์œ„ ๋ฐ ํ•˜์œ„ ํ•„๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์ธํ„ฐ๋ ˆ์ด์Šค ๋น„๋””์˜ค์—์„œ ๋ณ„๋„์˜ ํ•„๋“œ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ํ•„๋“œ ๊ต์ฒด;
  • Matroska ๋ฏธ๋””์–ด ์ปจํ…Œ์ด๋„ˆ ์–ธํŒจ์ปค์— WebM ํ˜•์‹ ๋ฐ ์ฝ˜ํ…์ธ  ์•”ํ˜ธํ™”์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์—”์ง„ ๊ธฐ๋ฐ˜ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ž‘๋™ํ•˜๋Š” ์ƒˆ๋กœ์šด wpesrc ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์›นํ‚ท WPE (๋ธŒ๋ผ์šฐ์ € ์ถœ๋ ฅ์„ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ)
  • Video4Linux๋Š” HEVC ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉ, JPEG ์ธ์ฝ”๋”ฉ, ํ–ฅ์ƒ๋œ dmabuf ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • NVIDIA ํ•˜๋“œ์›จ์–ด ๊ฐ€์† GPU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋น„๋””์˜ค ๋””์ฝ”๋”์— VP8/VP9 ๋””์ฝ”๋”ฉ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ์ธ์ฝ”๋”์— H.265/HEVC ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ์ธ์ฝ”๋”ฉ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Intel ์นฉ(Intel Media SDK ๊ธฐ๋ฐ˜)์—์„œ ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉ์„ ์œ„ํ•œ ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก msdk ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋งŽ์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” dmabuf ๊ฐ€์ ธ์˜ค๊ธฐ/๋‚ด๋ณด๋‚ด๊ธฐ, VP9 ๋””์ฝ”๋”ฉ, 10๋น„ํŠธ HEVC ์ธ์ฝ”๋”ฉ, ๋น„๋””์˜ค ํ›„์ฒ˜๋ฆฌ ๋ฐ ๋™์  ํ•ด์ƒ๋„ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ง€์›์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • ASS/SSA ์ž๋ง‰ ๋ Œ๋”๋ง ์‹œ์Šคํ…œ์—๋Š” ์‹œ๊ฐ„์ด ๊ต์ฐจํ•˜๋Š” ์—ฌ๋Ÿฌ ์ž๋ง‰์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ™”๋ฉด์— ๋™์‹œ์— ํ‘œ์‹œํ•˜๋Š” ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ GStreamer๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ๊ถŒ์žฅ๋˜๋Š” Meson ๋นŒ๋“œ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ „์ฒด ์ง€์›์ด ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ถ„๊ธฐ์—์„œ๋Š” Autotools ์ง€์›์ด ์ œ๊ฑฐ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
  • GStreamer์˜ ์ฃผ์š” ๊ตฌ์กฐ์—๋Š” Rust ์–ธ์–ด ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋ฐ”์ธ๋”ฉ๊ณผ Rust ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํฌํ•จ๋œ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€