브라우저 지원
- fluent-ffmpeg:
fluent-ffmpeg
는 Node.js 환경에서 FFmpeg 명령어를 쉽게 생성할 수 있도록 도와주는 라이브러리입니다. 이 패키지는 FFmpeg의 기능을 프로그램matically 제어할 수 있게 해주지만, 브라우저 환경에서는 사용할 수 없습니다. 주로 서버 측 애플리케이션에서 사용됩니다. - ffmpeg-static:
ffmpeg-static
은 FFmpeg의 정적 빌드를 제공하는 패키지로, 주로 Node.js 서버 환경에서 사용됩니다. 이 패키지는 플랫폼에 맞는 FFmpeg 실행 파일을 포함하고 있어, 추가 설치 없이 서버 측에서 FFmpeg를 사용할 수 있습니다. 그러나 브라우저 환경에서는 사용할 수 없습니다. - @ffmpeg/ffmpeg:
@ffmpeg/ffmpeg
는 FFmpeg의 전체 기능을 WebAssembly로 포팅한 패키지로, 브라우저 및 Node.js 환경에서 모두 사용할 수 있습니다. 이 패키지는 클라이언트 측에서 복잡한 비디오 및 오디오 처리 작업을 수행할 수 있도록 해주며, 특히 브라우저에서 직접 FFmpeg 명령을 실행할 수 있는 기능을 제공합니다. - @ffmpeg/core:
@ffmpeg/core
는 브라우저 환경에서 FFmpeg 기능을 제공하는 패키지로, WebAssembly를 사용하여 클라이언트 측에서 비디오 및 오디오 파일을 처리할 수 있습니다. 이 패키지는 브라우저에서 직접 실행되므로, 서버 리소스를 사용하지 않고도 파일 변환 및 편집 작업을 수행할 수 있습니다.
서버 의존성
- fluent-ffmpeg:
fluent-ffmpeg
는 FFmpeg 명령어를 생성하고 실행하는 Node.js 라이브러리로, 서버 측에서 FFmpeg를 사용해야 합니다. 이 패키지는 FFmpeg가 시스템에 설치되어 있어야 하며, FFmpeg의 기능을 프로그램matically 제어할 수 있게 해줍니다. 서버 의존성이 있는 솔루션입니다. - ffmpeg-static:
ffmpeg-static
은 서버 측에서 FFmpeg를 사용하기 위한 패키지로, FFmpeg의 정적 빌드를 포함하고 있습니다. 이 패키지는 Node.js 애플리케이션에서 FFmpeg를 쉽게 사용할 수 있도록 해주지만, FFmpeg가 시스템에 설치되어 있지 않은 경우에만 유용합니다. 서버 측에서 비디오 및 오디오 파일을 처리하는 데 필요합니다. - @ffmpeg/ffmpeg:
@ffmpeg/ffmpeg
도 클라이언트 측에서 실행되는 패키지로, 서버 의존성이 없습니다. 이 패키지는 FFmpeg의 전체 기능을 WebAssembly로 포팅하여 브라우저 및 Node.js 환경에서 사용할 수 있도록 합니다. 클라이언트 측에서 직접 FFmpeg 명령을 실행할 수 있어, 서버에 부담을 주지 않고 파일을 처리할 수 있습니다. - @ffmpeg/core:
@ffmpeg/core
는 클라이언트 측에서 실행되므로 서버 의존성이 없습니다. 이 패키지는 WebAssembly를 사용하여 브라우저에서 직접 비디오 및 오디오 파일을 처리할 수 있게 해줍니다. 따라서 서버 리소스를 사용하지 않고도 파일 변환 및 편집 작업을 수행할 수 있습니다.
사용 용이성
- fluent-ffmpeg:
fluent-ffmpeg
는 FFmpeg 명령어를 쉽게 생성할 수 있도록 도와주는 Node.js 라이브러리입니다. 이 패키지는 체이닝(Chaining) 방식으로 FFmpeg 명령을 구성할 수 있게 해주어, 복잡한 명령어도 직관적으로 작성할 수 있습니다. 사용자가 FFmpeg의 기능을 보다 쉽게 활용할 수 있도록 도와줍니다. - ffmpeg-static:
ffmpeg-static
은 FFmpeg의 정적 빌드를 제공하는 패키지로, Node.js 애플리케이션에서 FFmpeg를 쉽게 사용할 수 있도록 해줍니다. 이 패키지는 플랫폼에 맞는 FFmpeg 실행 파일을 포함하고 있어, 추가 설치 없이 간편하게 사용할 수 있습니다. 그러나 사용자는 FFmpeg 명령어와 API에 대한 이해가 필요합니다. - @ffmpeg/ffmpeg:
@ffmpeg/ffmpeg
는 FFmpeg의 전체 기능을 WebAssembly로 포팅한 패키지로, 사용자가 브라우저 또는 Node.js 환경에서 직접 FFmpeg 명령을 실행할 수 있습니다. 이 패키지는 클라이언트 측에서 복잡한 비디오 및 오디오 처리 작업을 수행할 수 있도록 해주며, 사용자가 FFmpeg의 다양한 기능을 쉽게 활용할 수 있도록 합니다. - @ffmpeg/core:
@ffmpeg/core
는 브라우저에서 FFmpeg 기능을 사용할 수 있도록 하는 패키지로, 사용자가 직접 파일을 업로드하고 처리할 수 있는 인터페이스를 제공해야 합니다. 이 패키지는 클라이언트 측에서 실행되므로, 사용자가 브라우저에서 직접 파일 변환 및 편집 작업을 수행할 수 있습니다.
코드 예제
- fluent-ffmpeg:
fluent-ffmpeg
를 사용한 비디오 변환 예제const ffmpeg = require('fluent-ffmpeg'); const ffmpegPath = require('ffmpeg-static'); ffmpeg({ source: 'input.mp4', n: true, cwd: __dirname, ffmpegPath: ffmpegPath, }) .on('end', () => console.log('비디오 변환 완료')) .on('error', (err) => console.error('오류:', err)) .save('output.mp4');
- ffmpeg-static:
ffmpeg-static
을 사용한 비디오 변환 예제const ffmpegPath = require('ffmpeg-static'); const { execFile } = require('child_process'); execFile(ffmpegPath, ['-i', 'input.mp4', 'output.mp4'], (err, stdout, stderr) => { if (err) throw err; console.log('비디오 변환 완료:', stdout); });
- @ffmpeg/ffmpeg:
@ffmpeg/ffmpeg
를 사용한 비디오 변환 예제import { createFFmpeg, fetchFile } from '@ffmpeg/ffmpeg'; const ffmpeg = createFFmpeg({ log: true }); (async () => { await ffmpeg.load(); ffmpeg.FS('writeFile', 'input.mp4', await fetchFile('input.mp4')); await ffmpeg.run('ffmpeg', '-i input.mp4 output.mp4'); const data = ffmpeg.FS('readFile', 'output.mp4'); const video = document.createElement('video'); video.src = URL.createObjectURL(new Blob([data.buffer])); document.body.appendChild(video); video.play(); });
- @ffmpeg/core:
@ffmpeg/core
를 사용한 비디오 변환 예제import { createFFmpeg, fetchFile } from '@ffmpeg/core'; const ffmpeg = createFFmpeg({ log: true }); (async () => { await ffmpeg.load(); ffmpeg.FS('writeFile', 'input.mp4', await fetchFile('input.mp4')); await ffmpeg.run('convert', 'input.mp4', 'output.mp4'); const data = ffmpeg.FS('readFile', 'output.mp4'); const video = document.createElement('video'); video.src = URL.createObjectURL(new Blob([data.buffer])); document.body.appendChild(video); video.play(); });