ํ ๋ฒ์ ์ ๋ก๋, ์ฌ์ฏ ๊ฐ์ง ๊ฒฐ๊ณผ๋ฌผ
์ค๋๋ ๋จ์ผ ์๋ณธ ํธํฐ์ง๋ 9:16 ์์งํ ๋ฆด์ค, 1:1 ์ ์ฌ๊ฐํ ์ปท, 16:9 ๊ฐ๋กํ ๋ฒ์ , ์๋ ์ฌ์์ ์ํ ์์๊ฑฐ ๋ฐ ์๋ง ๋ฒ์ , ๋ก๊ณ ์ ์ธํธ๋ก/์์ํธ๋ก๊ฐ ํฌํจ๋ ๋ธ๋๋ ์ปท, ๊ทธ๋ฆฌ๊ณ ์ฐ๊ฒฐ์ด ์ฝํ ํ๊ฒฝ์์๋ ์ฆ์ ๋ก๋๋๋ ์์ถ ๋ฒ์ ์ผ๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค. ๋์ผํ ์ฝํ ์ธ ๊ฐ ๋งค์ผ ๋ชจ๋ ์บ ํ์ธ๊ณผ ๋ชจ๋ ํฌ๋ฆฌ์์ดํฐ์๊ฒ ์ฌ์ฏ ๊ฐ์ง ์ด์์ ํํ๋ก ์ ๊ณต๋ฉ๋๋ค.

์ด๋ฅผ ๋๊ท๋ชจ๋ก ํด๊ฒฐํ๋ ค๋ฉด ๋น๋์ค๋ฅผ ์๋์ผ๋ก ํธ์งํ๋ ๊ฒ์ด ์๋๋ผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ณํํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ ํ์ดํ๋ผ์ธ์์ FFmpeg๊ฐ ์ํํ๋ ์ญํ ์ ๋๋ค.
์ FFmpeg์ธ๊ฐ
FFmpeg๋ ์ค๋์ค ๋ฐ ๋น๋์ค๋ฅผ ๋ณํ, ํํฐ๋ง ๋ฐ ์ธ์ฝ๋ฉํ๋ ๋ฌด๋ฃ ์คํ ์์ค ์ปค๋งจ๋๋ผ์ธ ๋๊ตฌ์ ๋๋ค. UI๊ฐ ์์ผ๋ฉฐ, ์ํ๋ ๊ฒ์ ๋ช ๋ น์ด๋ก ์ ํํ ์ค๋ช ํ๋ฉด FFmpeg๊ฐ ์ด๋ฅผ ์คํํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ํต์ฌ ๊ฐ์น ์ ์์ ๋๋ค. ์ฆ, ๋ช ๋ น์ ์ฝ๋๋ก ์์ฑ๋ ์ ์๊ณ , ์ฌ์ฉ์๋ณ๋ก ๋งค๊ฐ๋ณ์ํ๋ ์ ์์ผ๋ฉฐ, ํ์ดํ๋ผ์ธ์ ๋๊ธฐ์ด์ ์ถ๊ฐ๋์ด ์ฌ๋์ ๊ฐ์ ์์ด ์๋ฒ์์ ์คํ๋ ์ ์์ต๋๋ค. ๋น๋์ค ํธ์ง์ ํด๋ฆญ์ ํตํด ์ํํ๋ ๊ฒ์ด ์๋๋ผ ํ๋ก๊ทธ๋๋ฐํ๋ ๊ฒ์ด ๋ฉ๋๋ค.
๋จ์ํ "์๋ํ๋ ๋น๋์ค ๋๊ตฌ"๊ฐ ์๋๋ผ ์ด ํน์ ๋ฌธ์ ์ FFmpeg๊ฐ ์ ํฉํ ์ธ ๊ฐ์ง ํน์ฑ์ด ์์ต๋๋ค.
๊ฒฐํฉ ๊ฐ๋ฅํ ํํฐ. FFmpeg์ ํํฐ๊ทธ๋ํ๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์ผ์ผ โ ํฌ๋กญ โ ์ค๋ฒ๋ ์ด โ ํ์ด๋๋ฅผ ๋จ์ผ ํจ์ค๋ก ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ ๋จ๊ณ์์ ์ค๊ฐ ํ์ผ์ ์์ฑํ๋ ๊ฒ์ ํผํ๊ธฐ ๋๋ฌธ์ ์ค์ํฉ๋๋ค. ๋ชจ๋ ์์ ์ฌ์ด์ ์ฌ์ธ์ฝ๋ฉํ๋ ๋จ์ํ ํ์ดํ๋ผ์ธ์ ๋ ๋๋ง ์๊ฐ๊ณผ ์คํ ๋ฆฌ์ง ์๋ชจ๋ฅผ ์ฆ๊ฐ์ํต๋๋ค. ์ฒด์ด๋์ ๋ค๋จ๊ณ ๋ณํ์ ๋จ์ผ ์ธ์ฝ๋ฉ์ผ๋ก ์ ์งํฉ๋๋ค.
์ฌ์ธ์ฝ๋ฉ๋ฟ ์๋๋ผ ์คํธ๋ฆผ ๋ ๋ฒจ ์์ . ํธ๋ฆฌ๋ฐ๊ณผ ๊ฐ์ ์์ ์ ๊ฒฝ์ฐ, FFmpeg๋ ๊ธฐ์กด ์คํธ๋ฆผ์ ๋์ฝ๋ฉํ๊ณ ์ฌ์ธ์ฝ๋ฉํ๋ ๋์ ๋ณต์ฌํ ์ ์์ต๋๋ค.
ffmpeg -i input.mp4 -ss 00:00:08 -t 15 -c copy highlight.mp4
-c copy๋ ๋ช ์ด ๋ง์ ์๋ฃ๋๋ ํธ๋ฆฌ๋ฐ๊ณผ ์ ์ฒด ์ฌ์ธ์ฝ๋ฉ๋งํผ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ํธ๋ฆฌ๋ฐ์ ์ฐจ์ด์
๋๋ค. ์ฐ๋ฆฌ๋ ํฝ์
๋ฐ์ดํฐ๋ฅผ ๊ฑด๋๋ฆด ํ์๊ฐ ์๋ ์์
(ํธ๋ฆฌ๋ฐ, ํ์ ๋ฆฌ๋จน์ฑ)์๋ ์ด๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ค์ผ์ผ๋ง์ด๋ ์ค๋ฒ๋ ์ด์ ๊ฐ์ด ์ค์ ๋ก ํ์ํ ๋จ๊ณ์๋ง ์ ์ฒด ์ฌ์ธ์ฝ๋ฉ์ ๋จ๊ฒจ๋ก๋๋ค.
ํ๋์จ์ด ์ธ์ ์ธ์ฝ๋ฉ. FFmpeg๋ CPU ์ ์ฉ libx264 ๋์ GPU ์ธ์ฝ๋(NVENC, QSV, VideoToolbox)๋ฅผ ํตํด ๋ผ์ฐํ
ํ ์ ์์ต๋๋ค. GPU ์ธ์ฝ๋ฉ์ ๋๋ ์ฒ๋ฆฌ ์ ์์ ์ฒ๋ฆฌ๋์์ ์ฐ์๋ฅผ ์ ํ๋ฉฐ, libx264๋ ์ฃผ์ด์ง ๋นํธ๋ ์ดํธ์์ ๋ ์์ธก ๊ฐ๋ฅํ๊ณ ์กฐ์ ๊ฐ๋ฅํ ํ์ง์ ์ ๊ณตํฉ๋๋ค. ์ด๋ค ๊ฒ์ ์ฌ์ฉํ ์ง๋ ๊ฒฐ์ ๋ ๊ธฐ๋ณธ๊ฐ์ด ์๋ ์ค์ ์ ์ธ ์ ์ถฉ์ ์
๋๋ค. ์ฐ๋ฆฌ๋ ํ์ง ๊ด๋ฆฌ๊ฐ ๊ฐ์ฅ ์ค์ํ ๋ธ๋๋ ๊ด๋ จ ์์
์๋ CPU ์ธ์ฝ๋ฉ์ ์ ํธํ๊ณ , ๋๋์ ๋ฎ์ ์ฐ์ ์์ ๋ฐฐ์น ์์
์๋ GPU ๊ฒฝ๋ก๋ฅผ ๋จ๊ฒจ๋ก๋๋ค.
ํ์ดํ๋ผ์ธ์ด FFmpeg๋ฅผ ์ค์ ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
๋ฆฌํ๋ ์ด๋ฐ.

๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์์ฒญ์ "๋ชจ๋ ๊ณณ์ ๋ง๊ฒ ๋ง๋ค์ด๋ฌ๋ผ"๋ ๊ฒ์ ๋๋ค. ๊ฐ๋ก ์๋ณธ์ ์ค์ผ์ผ ๋ฐ ํฌ๋กญ์ ํตํด ์ธ๋ก ๋ฆด์ค๋ก ๋ณํ๋ฉ๋๋ค. ๋จ์ํ ํฌ๋กญ์ ๋น ๋ฅด์ง๋ง ํ๋ ์์ ์ผ๋ถ๋ฅผ ๋ฒ๋ฆฌ๊ฒ ๋ฉ๋๋ค. ์ค์์ ์๋ ํผ์ฌ์ฒด์๋ ๊ด์ฐฎ์ง๋ง, ํผ์ฌ์ฒด๊ฐ ์ค์์์ ๋ฒ์ด๋ ๋๋ ์ข์ง ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ, ์ฐ๋ฆฌ๋ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ผ์ผ๋ ์ ๊ฒฝ ๋ณต์ฌ๋ณธ ๋ค์ ํ๋ฆฟํ ์ ์ฒด ํ๋ ์ ๋ฐฐ๊ฒฝ์ ์ฌ์ฉํ์ฌ ์๋ฌด๊ฒ๋ ์๋ ค๋๊ฐ์ง ์๋๋ก ํฉ๋๋ค.
ffmpeg -i input.mp4 -filter_complex \
"[0:v]scale=1080:1920,boxblur=20:5[bg]; \
[0:v]scale=1080:-2[fg]; \
[bg][fg]overlay=(W-w)/2:(H-h)/2" \
-c:a copy output_blurred.mp4
์ด๋ ๋จ์ผ ๊ธฐ๋ณธ ํํฐ๊ฐ ์๋ ์๋์ ์ธ ๋ ๊ฐ๋ ๊ฒฐ์ ์ ๋๋ค. ์์ ํ ๋๋ ํฌ๋กญ์ ์ฌ์ฉํ๊ณ , ๊ทธ๋ ์ง ์์ ๋๋ ๋ธ๋ฌ ํด๋ฐฑ์ ์ฌ์ฉํฉ๋๋ค.
๋ธ๋๋ฉ, ์๋ง, ์ค๋์ค. ๋ก๊ณ , ์ธํธ๋ก, ์์ํธ๋ก๋ ๋งค๊ฐ๋ณ์ํ๋ ์ค๋ฒ๋ ์ด ๋ฐ ์ฐ๊ฒฐ๋ก ์ ์ฉ๋๋ฏ๋ก, ํ์ดํ๋ผ์ธ ์ฝ๋๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๊ณ ๋ ๋ธ๋๋๋ณ๋ก ์์น, ํฌ๊ธฐ, ๋ถํฌ๋ช ๋๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์๋ง์ ๋ณ๋์ ์๋ง ํธ๋์ผ๋ก ์ ๊ณต๋๋ ๋์ ํ๋ ์์ ์ง์ ์ฝ์ ๋ฉ๋๋ค. ์๋ ์ฌ์ ์์๊ฑฐ ํผ๋๋ ์๋ง์ด ๋์ ํ๋ซํผ์ด ์ ์ฉํ๋ ์ฌ์ธ์ฝ๋ฉ์ ๊ฒฌ๋์ผ ํจ์ ์๋ฏธํ๋ฉฐ, ์ฝ์ ๋ ์๋ง์ ํญ์ ๊ทธ๋ ์ง๋ง ์๋ง ํธ๋์ ๊ทธ๋ ์ง ์์ ๋๊ฐ ์์ต๋๋ค. ์ค๋์ค๋ ๋ฏน์ฑ๋๊ณ ์๋ ์ ๊ทํ๋์ด ์คํฌ๋กค ํผ๋์์ ์ด์ ํด๋ฆฝ๋ณด๋ค ๊ฐ์๊ธฐ ์๋ฆฌ๊ฐ ์ปค์ง๋ ํด๋ฆฝ์ด ์๋๋ก ํฉ๋๋ค.
๋ฐฐํฌ. ๋ชจ๋ ์ถ๋ ฅ์ +faststart๋ก ์ธ์ฝ๋ฉ๋ฉ๋๋ค. ์ด๋ ํ์ผ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์ผ๋ก ์ด๋์์ผ ํ์ผ ์ ์ฒด๋ฅผ ๋ค์ด๋ก๋ํ๊ธฐ ์ ์ ์ฌ์์ ์์ํ ์ ์๊ฒ ํฉ๋๋ค. ์ด๋ ํนํ ์งง์ ํ์์ ๋น๋์ค์์ ์ธ์ง๋๋ ๋ก๋ ์๊ฐ์ ํฐ ์ํฅ์ ๋ฏธ์น๋ ์์ ํ๋๊ทธ์
๋๋ค.
์ฌ์ ํ ๊ณ ๋ฏผ ์ค์ธ ์ ์ถฉ์
์ฌ๊ธฐ์ ๋ชจ๋ ๊ฒฐ์ ์ด ํ์ ๋ ๊ฒ์ ์๋๋๋ค. GPU vs. CPU ์ธ์ฝ๋ฉ์ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๋ง์ด ์ฌ๊ฒํ ํ๋ ๋ถ๋ถ์ ๋๋ค. ๋ณผ๋ฅจ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ GPU ์ฒ๋ฆฌ๋์ ๋งค๋ ฅ์ ์ด์ง๋ง, ๋นํธ๋ ์ดํธ๋น ํ์ง ์ผ๊ด์ฑ์ ๋ธ๋๋์ ์ค์ํ ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฌ์ ํ CPU ์ธ์ฝ๋ฉ์ ์ ๋ฆฌํฉ๋๋ค. ํ์ฌ ์ด ๋ถํ ์ ์์ ์ ํ๋ณ๋ก ์๋์ผ๋ก ์ฒ๋ฆฌ๋๊ณ ์์ต๋๋ค. ์ด๋ฅผ ์๋์ ์ด๊ณ ํ์ง ์ธ์ ๋ผ์ฐํ ๊ฒฐ์ ์ผ๋ก ๋ง๋๋ ๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๊ตฌ์ถํ๊ณ ์๋ ์ด ํ์ดํ๋ผ์ธ์ ๋ค์ ๋จ๊ณ์ ๋๋ค.
์ด๊ฒ์ด ์ค์ํ ์ด์
์ข ํฉ์ ์ผ๋ก, ํ ๋ฒ์ ์ ๋ก๋๋ ์์ง, ์ ์ฌ๊ฐํ, ๊ฐ๋กํ ๋ณํ์ผ๋ก ์ฌ๊ตฌ์ฑํ๊ณ , ๋ธ๋๋ฉํ๋ฉฐ, ์๋ง์ ์ฝ์ ํ๊ณ , ๊ฐ์ฅ ๊ฐ๋ ฅํ ์ปท์ผ๋ก ๋ค๋ฌ๊ณ , ์ค๋์ค๋ฅผ ๋ฏน์ฑ ๋ฐ ์ ๊ทํํ๊ณ , ๋น ๋ฅธ ๋ฐฐํฌ๋ฅผ ์ํด ์์ถํ๋ ํ์ดํ๋ผ์ธ์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. ์ด ๋ชจ๋ ๊ณผ์ ์์ ํธ์ง์๋ ํ์๋ผ์ธ์ ์ด ํ์๊ฐ ์์ต๋๋ค. ๊ฐ ์์ ์ ๋ ๋ฆฝ์ ์ด๊ณ ์ํ ๋น์ ์ฅ์ด๋ฏ๋ก, ๋ ํ์ฅํ๋ค๋ ๊ฒ์ ๋จ์ํ ๋ ๋ง์ FFmpeg ์์ปค๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋ฆด์ค ํธ๋ ๋๋ ์ฝํ ์ธ ์ ๋ชจ์ต์ ๋ฐ๊พธ์์ ๋ฟ๋ง ์๋๋ผ, ์๋ ํธ์ง์ผ๋ก๋ ๋ฐ๋ผ์ก์ ์ ์๋ ํ์๋ผ์ธ์์ ๋จ์ผ ์ฝํ ์ธ ๊ฐ ์ทจํด์ผ ํ ํํ์ ์๋ฅผ ๋ฐ๊พธ์์ต๋๋ค. FFmpeg๋ ๋น๋์ค๋ฅผ ์๋์ผ๋ก ํด๋ฆญํด์ผ ํ๋ ๊ฒ์ด ์๋๋ผ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅํ๊ณ ๊ตฌ์ฑ ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ์ทจ๊ธํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ณํ์ ๋ณด์กฐ๋ฅผ ๋ง์ถ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ด ํ์ดํ๋ผ์ธ์ด ํ์ฅ๋๋ ์ค์ ์ด์ ์ ๋๋ค. ์ฆ, FFmpeg๊ฐ ์ถ์์ ์ผ๋ก ๊ฐ๋ ฅํด์๊ฐ ์๋๋ผ, ๊ทธ ์์ ์๋ ๋ชจ๋ ๊ฒฐ์ (ํฌ๋กญ vs. ๋ธ๋ฌ ํด๋ฐฑ, ์คํธ๋ฆผ ๋ณต์ฌ vs. ์ฌ์ธ์ฝ๋ฉ, GPU vs. CPU)์ด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฒ๋ฆฌ๋๋ ๋์ ์ฌ๋ก๋ณ๋ก ์๋์ ์ผ๋ก ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด์ ๊ฐ์ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถ ์ค์ด๊ณ ์ํคํ ์ฒ์ ๋ํ ๋ค๋ฅธ ๊ด์ ์ ์ํ์ ๋ค๋ฉด, ์ ํฌ์๊ฒ ๋ฌธ์ํ์ญ์์ค.

