Environnement d'Exécution
- fluent-ffmpeg:
fluent-ffmpeg
est destiné à être utilisé dans des applications Node.js, ce qui le rend adapté pour le traitement multimédia côté serveur. Il fournit une interface de haut niveau pour interagir avec l'outil FFmpeg installé sur le système, ce qui permet d'exécuter des commandes FFmpeg à partir de votre code Node.js. - ffmpeg-static:
ffmpeg-static
fournit une version précompilée d'FFmpeg pour les applications Node.js, ce qui signifie qu'il peut être utilisé dans n'importe quel environnement Node.js sans installation supplémentaire. Cela le rend idéal pour les applications qui nécessitent un accès fiable à l'outil FFmpeg sans dépendre de l'installation système. - @ffmpeg/ffmpeg:
@ffmpeg/ffmpeg
fonctionne également dans les environnements de navigateur, mais il est plus complet et prend en charge une plus large gamme de fonctionnalités FFmpeg. Il est adapté aux applications web qui nécessitent des capacités de traitement multimédia plus avancées, y compris la manipulation de plusieurs flux audio et vidéo. - @ffmpeg/core:
@ffmpeg/core
est conçu pour fonctionner dans les navigateurs, ce qui le rend idéal pour les applications web qui nécessitent un traitement multimédia côté client. Il utilise WebAssembly pour exécuter des opérations FFmpeg directement dans le navigateur, offrant une bonne performance sans nécessiter de serveur.
Facilité d'Utilisation
- fluent-ffmpeg:
fluent-ffmpeg
est connu pour sa syntaxe fluide et sa facilité d'utilisation, en particulier pour ceux qui sont déjà familiers avec les commandes FFmpeg. Sa documentation et ses exemples aident les développeurs à comprendre rapidement comment l'utiliser. - ffmpeg-static:
ffmpeg-static
est simple à utiliser, mais il ne fournit pas d'API ou de fonctionnalités supplémentaires au-delà de la fourniture de l'exécutable FFmpeg. Les développeurs doivent être familiers avec les commandes FFmpeg pour l'utiliser efficacement. - @ffmpeg/ffmpeg:
@ffmpeg/ffmpeg
fournit une API plus complète mais peut être plus complexe à utiliser en raison de la richesse de ses fonctionnalités. Elle est bien documentée, mais les développeurs peuvent avoir besoin de temps pour se familiariser avec toutes ses capacités. - @ffmpeg/core:
@ffmpeg/core
offre une API simple et intuitive pour le traitement multimédia, ce qui la rend facile à utiliser pour les développeurs. Sa documentation est claire, ce qui facilite l'intégration rapide dans les projets.
Exemple de Code
- fluent-ffmpeg:
Exemple de traitement vidéo avec
fluent-ffmpeg
const ffmpeg = require('fluent-ffmpeg'); const inputFile = 'input.mp4'; const outputFile = 'output.mp4'; ffmpeg(inputFile) .videoFilters('transpose=1') .save(outputFile) .on('end', () => { console.log('Traitement terminé'); });
- ffmpeg-static:
Exemple d'utilisation de
ffmpeg-static
const ffmpegPath = require('ffmpeg-static'); const { execFile } = require('child_process'); const inputFile = 'input.mp4'; const outputFile = 'output.mp4'; execFile(ffmpegPath, ['-i', inputFile, '-vf', 'transpose=1', outputFile], (err) => { if (err) throw err; console.log('Traitement terminé'); });
- @ffmpeg/ffmpeg:
Exemple de traitement vidéo avec
@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('transpose', '-i input.mp4 -vf "transpose=1" output.mp4'); const data = ffmpeg.FS('readFile', 'output.mp4'); const video = document.createElement('video'); video.src = URL.createObjectURL(new Blob([data.buffer])); document.body.append(video); video.play(); });
- @ffmpeg/core:
Exemple de traitement vidéo avec
@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('transpose', '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.append(video); video.play(); });