ブラウザサポート
- fluent-ffmpeg:
fluent-ffmpeg
は、Node.js 環境専用です。ブラウザでは使用できません。 - ffmpeg-static:
ffmpeg-static
は、ブラウザではなく、Node.js 環境で使用されることを想定しています。 - @ffmpeg/ffmpeg:
@ffmpeg/ffmpeg
もブラウザ環境で動作しますが、FFmpeg のフル機能を利用できるため、より複雑なメディア処理が可能です。 - @ffmpeg/core:
@ffmpeg/core
は、ブラウザ環境で動作するように設計されています。特に、クライアントサイドでメディアファイルを処理するアプリケーションに最適です。
インストールの容易さ
- fluent-ffmpeg:
fluent-ffmpeg
は、FFmpeg 自体をインストールする必要がありますが、ライブラリとしてのインストールは簡単です。 - ffmpeg-static:
ffmpeg-static
は、FFmpeg のバイナリを自動的にダウンロードしてくれるため、手動でインストールする必要がありません。 - @ffmpeg/ffmpeg:
@ffmpeg/ffmpeg
も同様に簡単にインストールできますが、FFmpeg のバイナリを含むため、少し大きなパッケージになります。 - @ffmpeg/core:
@ffmpeg/core
は、npm から直接インストールでき、特別な設定は不要です。
FFmpeg 機能の利用
- fluent-ffmpeg:
fluent-ffmpeg
は、Node.js から FFmpeg の機能をプログラム的に利用できるようにするライブラリです。 - ffmpeg-static:
ffmpeg-static
は、FFmpeg のバイナリを提供するだけで、機能自体は提供しません。 - @ffmpeg/ffmpeg:
@ffmpeg/ffmpeg
は、FFmpeg の全機能にアクセスできるため、より高度なメディア処理が可能です。 - @ffmpeg/core:
@ffmpeg/core
は、FFmpeg の基本的な機能をブラウザや Node.js で利用できます。
コード例
- fluent-ffmpeg:
fluent-ffmpeg
を使用した簡単なコード例const ffmpeg = require('fluent-ffmpeg'); ffmpeg('input.mp4') .output('output.mp4') .on('end', () => console.log('処理完了')) .on('error', (err) => console.error('エラー:', err)) .run();
- 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); console.error(stderr); });
- @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('-i', 'input.mp4', 'output.mp4'); const data = ffmpeg.FS('readFile', 'output.mp4'); const output = document.createElement('a'); output.href = URL.createObjectURL(new Blob([data.buffer])); output.download = 'output.mp4'; document.body.appendChild(output); output.click(); })();
- @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('-i', 'input.mp4', 'output.mp4'); const data = ffmpeg.FS('readFile', 'output.mp4'); const output = document.createElement('a'); output.href = URL.createObjectURL(new Blob([data.buffer])); output.download = 'output.mp4'; document.body.appendChild(output); output.click(); })();