โ† Back to skills
extension
Category: Content & MediaNo API key required

video-pro

Practical video editing skills using the MiniPC node (Remotion + FFmpeg). Supports everything from programmatic video creation to cutting, subtitle synthesis, and format conversion.

personAuthor: jakexiaohubgithub

๐ŸŽฌ Video Pro (Miss Kim Edition)

MiniPC ๋…ธ๋“œ์˜ ๊ฐ•๋ ฅํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ ์„ฑ๋Šฅ ๋น„๋””์˜ค ์—๋””ํŒ…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. Remotion์„ ์ด์šฉํ•œ ์ฝ”๋“œ ๊ธฐ๋ฐ˜ ์˜์ƒ ์ƒ์„ฑ๊ณผ FFmpeg์„ ์ด์šฉํ•œ ์ •๋ฐ€ ๊ฐ€๊ณต์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ—๏ธ ํ™˜๊ฒฝ ์„ค์ • (MiniPC)

  • IP: <MINIPC_IP> (Tailscale)
  • Remotion ํ”„๋กœ์ ํŠธ: $HOME/remotion-videos
  • FFmpeg: ์ „์—ญ ์„ค์น˜๋จ

๐Ÿš€ ์ฃผ์š” ๊ธฐ๋Šฅ

1. Remotion ์ปดํฌ๋„ŒํŠธ ๋ Œ๋”๋ง

React ์ฝ”๋“œ๋ฅผ MP4 ์˜์ƒ์œผ๋กœ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์˜ ๊ฐœ์ธํ™” ์˜์ƒ ์ œ์ž‘์— ํƒ์›”ํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ๋ฐฉ๋ฒ•:

# MiniPC์—์„œ ์‹คํ–‰
cd $HOME/remotion-videos
npx remotion render <CompositionId> out/video.mp4 --props '{"title": "์•ˆ๋…•, ๋ฏธ์Šค ๊น€!"}'

2. FFmpeg ์ •๋ฐ€ ๊ฐ€๊ณต

๊ฐ€์žฅ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ์‹ค์ „์šฉ ๋ช…๋ น์–ด ๋ชจ์Œ์ž…๋‹ˆ๋‹ค.

| ์ž‘์—… | ๋ช…๋ น์–ด | |------|-------| | ์ปท ํŽธ์ง‘ | ffmpeg -y -i input.mp4 -ss 00:00:10 -to 00:00:20 -c copy output.mp4 | | ์ž๋ง‰ ํ•ฉ์„ฑ(Burn-in) | ffmpeg -y -i input.mp4 -vf "subtitles='input.srt'" output.mp4 | | ํฌ๋งท ๋ณ€ํ™˜ (MOVโ†’MP4) | ffmpeg -y -i input.mov -c:v libx264 -c:a aac output.mp4 | | ์˜ค๋””์˜ค ์ถ”์ถœ (MP3) | ffmpeg -y -i input.mp4 -vn -acodec libmp3lame output.mp3 | | ์˜์ƒ ์Œ์†Œ๊ฑฐ | ffmpeg -y -i input.mp4 -an -c:v copy output.mp4 | | GIF ๋ณ€ํ™˜ | ffmpeg -y -i input.mp4 -vf "fps=15,scale=480:-1" -loop 0 output.gif | | ํ•ด์ƒ๋„ ๋ณ€๊ฒฝ (720p) | ffmpeg -y -i input.mp4 -vf "scale=1280:720" -c:a copy output.mp4 |

3. AI ์ž๋ง‰ (Whisper) ์—ฐ๋™ ์„ค๊ณ„

์˜ค๋””์˜ค๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ž๋ง‰ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์˜์ƒ์— ์ž…ํžˆ๋Š” ์›Œํฌํ”Œ๋กœ์šฐ์ž…๋‹ˆ๋‹ค.

  1. ์˜ค๋””์˜ค ์ถ”์ถœ: FFmpeg์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜์ƒ์—์„œ ์˜ค๋””์˜ค๋งŒ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
  2. ์ „์‚ฌ (Transcription): Whisper ๋ชจ๋ธ(Mac Studio ๋˜๋Š” MiniPC)์„ ์‚ฌ์šฉํ•˜์—ฌ .srt ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  3. ์ž๋ง‰ ํ•ฉ์„ฑ: FFmpeg์˜ subtitles ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜์ƒ์— ์ž๋ง‰์„ ์˜๊ตฌ์ ์œผ๋กœ ์ž…ํž™๋‹ˆ๋‹ค (Burn-in).

๐Ÿ› ๏ธ ์‹ค์ „ ํ™œ์šฉ ํŒจํ„ด (nodes.run)

์„œ๋ธŒ์—์ด์ „ํŠธ๊ฐ€ MiniPC์— ๋ช…๋ น์„ ๋‚ด๋ฆด ๋•Œ ๋‹ค์Œ ํŒจํ„ด์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

// MiniPC์—์„œ ๋ Œ๋”๋ง ํ›„ ๊ฒฐ๊ณผ๋ฌผ ํ™•์ธ
await nodes.run({
  node: "MiniPC",
  command: "cd $HOME/remotion-videos && npx remotion render MyComp out/result.mp4"
});

โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ

  1. MiniPC ๊ฒฝ๋กœ: ํ•ญ์ƒ $HOME/ ๊ธฐ์ค€ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  2. ์„ฑ๋Šฅ: Remotion ๋ Œ๋”๋ง์€ CPU ์ง‘์•ฝ์ ์ž…๋‹ˆ๋‹ค. ๊ฐ€๊ธ‰์  ์„œ๋ธŒ์—์ด์ „ํŠธ๋ฅผ ํ†ตํ•ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ํ•˜์„ธ์š”.
  3. ์ž๋ง‰ ๊ฒฝ๋กœ: FFmpeg subtitles ํ•„ํ„ฐ ์‚ฌ์šฉ ์‹œ ๊ฒฝ๋กœ์— ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด์Šค์ผ€์ดํ”„ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ: ๋…ธ๋“œ ๊ฐ„ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์ „์†ก์€ ๊ฐ€๊ธ‰์  ํ”ผํ•˜๊ณ , MiniPC ๋‚ด๋ถ€์—์„œ ๊ฐ€๊ณต์„ ์™„๋ฃŒํ•œ ํ›„ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ๋งŒ ๊ฐ€์ ธ์˜ค์„ธ์š”.

๋ฏธ์Šค ๊น€์˜ ๋น„๋””์˜ค ์Šคํ‚ฌ์€ ์‹ค์ „์—์„œ์˜ ํšจ์œจ์„ฑ๊ณผ ๊ฒฐ๊ณผ๋ฌผ์˜ ํ’ˆ์งˆ์„ ์ตœ์šฐ์„ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ’‹