FFmpeg 6.0 ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ํŒจํ‚ค์ง€ ์ถœ์‹œ

6.0๊ฐœ์›”๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— FFmpeg XNUMX ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์–‘ํ•œ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ํ˜•์‹(์˜ค๋””์˜ค ๋ฐ ๋น„๋””์˜ค ํ˜•์‹์˜ ๋…น์Œ, ๋ณ€ํ™˜ ๋ฐ ๋””์ฝ”๋”ฉ) ์ž‘์—…์„ ์œ„ํ•œ ์ผ๋ จ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ์Œ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋Š” LGPL ๋ฐ GPL ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋˜๋ฉฐ FFmpeg ๊ฐœ๋ฐœ์€ MPlayer ํ”„๋กœ์ ํŠธ์™€ ์ธ์ ‘ํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

FFmpeg 6.0์— ์ถ”๊ฐ€๋œ ์ผ๋ถ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ๋ชจ๋“œ์—์„œ ffmpeg ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ํ•„์ˆ˜ ๋ฒ”์ฃผ๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฏธ๋””์–ด ์ปจํ…Œ์ด๋„ˆ ํŒจ์ปค(muxer)๋Š” ์ด์ œ ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • 9:4:2 ๋ฐ 2:4:4 ์ƒ‰์ƒ ์„œ๋ธŒ์ƒ˜ํ”Œ๋ง, 4๋น„ํŠธ ๋ฐ 10๋น„ํŠธ ์ƒ‰์ƒ ์‹ฌ๋„ ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ VP12 ๋ฐ HEVC๋ฅผ ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉํ•˜๊ธฐ ์œ„ํ•ด VAAPI ๋ฐ QSV(Quick Sync Video)์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Intel QSV(Quick Sync Video) ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด oneVPL(oneAPI Video Processing Library) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • QSV ๊ธฐ๋ฐ˜์˜ ํ•˜๋“œ์›จ์–ด ๊ฐ€์† AV1 ์ธ์ฝ”๋”๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ffmpeg ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ถ”๊ฐ€๋œ ์˜ต์…˜:
    • "-shortest_buf_duration"์€ ๋ฒ„ํผ๋ง๋œ ํ”„๋ ˆ์ž„์˜ ์ตœ๋Œ€ ์ง€์† ์‹œ๊ฐ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค(๋งŽ์„์ˆ˜๋ก "-shortest" ๋ชจ๋“œ์—์„œ ์ •ํ™•๋„๋Š” ๋†’์•„์ง€์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„ ๋ฐ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๋†’์•„์ง).
    • "-stats_enc_pre[_fmt]", "-stats_enc_post[_fmt]" ๋ฐ "-stats_mux_pre[_fmt]"๋Š” ์„ ํƒํ•œ ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ํ”„๋ ˆ์ž„๋ณ„ ์ •๋ณด๋ฅผ ๋‹ค๋ฅธ ์ธ์ฝ”๋”ฉ ๋‹จ๊ณ„์—์„œ ์ง€์ •๋œ ํŒŒ์ผ์— ์”๋‹ˆ๋‹ค.
    • "-fix_sub_duration_heartbeat"๋Š” ์ž๋ง‰ ๋ถ„ํ• ์— ์‚ฌ์šฉ๋˜๋Š” ๋™๊ธฐํ™”(ํ•˜ํŠธ๋น„ํŠธ) ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์ •๋œ ํŒŒ์ผ์—์„œ ์˜ต์…˜ ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ํ•„ํ„ฐ ๊ทธ๋ž˜ํ”„ ๊ตฌ๋ฌธ์ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€ '/'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "ffmpeg -vf drawtext=/text=/tmp/some_text"๋Š” /tmp/some_text ํŒŒ์ผ์—์„œ ํ…์ŠคํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฏธ์ง€ ํ˜•์‹ ์ง€์› ์ถ”๊ฐ€: WBMP(Wireless Application Protocol Bitmap), Radiance HDR(RGBE).
  • ์ƒˆ๋กœ์šด ๋””์ฝ”๋” ์ถ”๊ฐ€: APAC, bonk, Micronas SC-4, Media 100i, ViewQuest VQC, MediaCodec(NDKMediaCodec), WADY DPCM, CBD2 DPCM, XMD ADPCM, WavArc, RKA.
  • ์ƒˆ๋กœ์šด ์ธ์ฝ”๋” ์ถ”๊ฐ€: nvenc AV1, MediaCodec.
  • ๋ฏธ๋””์–ด ์ปจํ…Œ์ด๋„ˆ ์–ธํŒจ์ปค(demuxer) ์ถ”๊ฐ€: SDNS, APAC, bonk, LAF, WADY DPCM, XMD ADPCM, WavArc, RKA.
  • ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” CrystalHD ๋””์ฝ”๋”.
  • ์ƒˆ๋กœ์šด ๋น„๋””์˜ค ํ•„ํ„ฐ:
    • ddagrab - Desktop Duplication API๋ฅผ ํ†ตํ•œ Windows ๋ฐ์Šคํฌํ†ฑ ๋น„๋””์˜ค ์บก์ฒ˜.
    • corr - ๋‘ ๋น„๋””์˜ค ๊ฐ„์˜ ์ƒ๊ด€ ๊ด€๊ณ„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ssim360 - 360 ๋™์˜์ƒ์˜ ์œ ์‚ฌ๋„ ์ ์ˆ˜์ž…๋‹ˆ๋‹ค.
    • hstack_vaapi, vstack_vaapi ๋ฐ xstack_vaapi - ๊ฐ€์†์„ ์œ„ํ•ด VAAPI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋น„๋””์˜ค๋ฅผ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค(๊ฐ ๋น„๋””์˜ค๋Š” ์ž์ฒด ํ™”๋ฉด ์˜์—ญ์— ํ‘œ์‹œ๋จ).
    • backgroundkey - ์ •์  ๋ฐฐ๊ฒฝ์„ ํˆฌ๋ช… ๋ฐฐ๊ฒฝ์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
    • ์ด์ œ cropdetect ํ•„ํ„ฐ์— ๋ชจ์…˜ ๋ฒกํ„ฐ์™€ ๊ฐ€์žฅ์ž๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํฌ๋กญ ๊ฐ์ง€ ๋ชจ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ์‚ฌ์šด๋“œ ํ•„ํ„ฐ:
    • showcwt - ์—ฐ์† ์›จ์ด๋ธ”๋ฆฟ ๋ณ€ํ™˜ ๋ฐ morlet์„ ์‚ฌ์šฉํ•˜์—ฌ ์ŠคํŽ™ํŠธ๋Ÿผ ์ฃผํŒŒ์ˆ˜ ์‹œ๊ฐํ™”๋ฅผ ํ†ตํ•œ ์˜ค๋””์˜ค-๋น„๋””์˜ค ๋ณ€ํ™˜.
    • adrc - ์ž…๋ ฅ ์˜ค๋””์˜ค ์ŠคํŠธ๋ฆผ์— ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•˜์—ฌ ์ŠคํŽ™ํŠธ๋Ÿผ ๋™์  ๋ฒ”์œ„๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
    • a3dscope - ์ž…๋ ฅ ์˜ค๋””์˜ค๋ฅผ 3D ๊ณต๊ฐ„ ์˜ค๋””์˜ค๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • afdelaysrc - FIR(Finite Impulse Response) ๊ณ„์ˆ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ๋น„ํŠธ์ŠคํŠธ๋ฆผ ํ•„ํ„ฐ:
    • media100์—์„œ mjpegb๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • DTS์—์„œ PTS๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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