FFmpeg-Integration
- fluent-ffmpeg:
fluent-ffmpegbietet eine kettebare API zur Interaktion mit FFmpeg in Node.js. Es ermöglicht Entwicklern, komplexe FFmpeg-Befehle programmgesteuert zu erstellen und auszuführen, was die Integration von FFmpeg in Node.js-Anwendungen erleichtert. - ffmpeg-static:
ffmpeg-staticstellt eine statische FFmpeg-Binärdatei zur Verfügung, die in Node.js-Anwendungen verwendet werden kann. Es ermöglicht Entwicklern, FFmpeg-Befehle über die Befehlszeile auszuführen, ohne sich um die Installation von FFmpeg auf dem Zielsystem kümmern zu müssen. - @ffmpeg/ffmpeg:
@ffmpeg/ffmpegbietet eine vollständige Implementierung von FFmpeg für Node.js und Browser, die eine breite Palette von Multimedia-Verarbeitungsfunktionen unterstützt. Es ist ideal für Anwendungen, die eine umfassende FFmpeg-Funktionalität sowohl im Frontend als auch im Backend benötigen. - @ffmpeg/core:
@ffmpeg/corebietet eine modulare und browserfreundliche Integration von FFmpeg, die es Entwicklern ermöglicht, FFmpeg-Funktionen direkt im Browser oder in Node.js-Anwendungen zu nutzen. Es ist besonders nützlich für Webanwendungen, die Multimedia-Verarbeitung ohne serverseitige Abhängigkeiten erfordern.
Benutzerfreundlichkeit
- fluent-ffmpeg:
fluent-ffmpegist bekannt für seine benutzerfreundliche, kettebare API, die das Erstellen und Ausführen von FFmpeg-Befehlen intuitiv macht. Die Dokumentation und Beispiele tragen zur schnellen Einarbeitung bei. - ffmpeg-static:
ffmpeg-staticist einfach zu verwenden, da es eine sofort einsatzbereite FFmpeg-Binärdatei bereitstellt. Entwickler müssen sich nicht um Installationsprobleme kümmern, was die Integration in Projekte erleichtert. - @ffmpeg/ffmpeg:
@ffmpeg/ffmpegbietet eine umfassende API für die Verwendung von FFmpeg in verschiedenen Umgebungen. Die Dokumentation ist detailliert, was die Einarbeitung erleichtert. - @ffmpeg/core:
@ffmpeg/corebietet eine benutzerfreundliche API für die Verwendung von FFmpeg im Browser und in Node.js. Die modulare Architektur und die gute Dokumentation machen es einfach, FFmpeg-Funktionen in Webanwendungen zu integrieren.
Größe und Leistung
- fluent-ffmpeg:
fluent-ffmpegselbst ist leichtgewichtig, aber die Leistung hängt von der FFmpeg-Installation ab, die zur Ausführung der Befehle erforderlich ist. Es ist am besten für Anwendungen geeignet, die FFmpeg-Befehle programmgesteuert ausführen. - ffmpeg-static:
ffmpeg-statichat eine geringe Größe, da es nur die erforderlichen FFmpeg-Binärdateien enthält. Die Leistung hängt von der verwendeten FFmpeg-Version ab, die jedoch für die meisten Anwendungen ausreichend ist. - @ffmpeg/ffmpeg:
@ffmpeg/ffmpegbietet eine vollständige FFmpeg-Implementierung, die jedoch mehr Ressourcen benötigt als leichtere Alternativen. Es ist am besten für Anwendungen geeignet, die eine umfassende Multimedia-Verarbeitung erfordern. - @ffmpeg/core:
@ffmpeg/coreist leichtgewichtig und für die Verwendung im Browser optimiert. Es bietet eine gute Leistung für die Verarbeitung von Multimedia-Daten in Echtzeit, ohne erhebliche Ressourcen zu beanspruchen.
Codebeispiel
- fluent-ffmpeg:
const ffmpeg = require('fluent-ffmpeg'); const inputFile = 'input.mp4'; const outputFile = 'output.mp4'; ffmpeg(inputFile) .outputOptions('-vf', 'scale=320:240') .save(outputFile) .on('end', () => console.log('Video processed:', outputFile)) .on('error', (err) => console.error('Error:', err)); - ffmpeg-static:
const { execFile } = require('child_process'); const ffmpeg = require('ffmpeg-static'); const inputFile = 'input.mp4'; const outputFile = 'output.mp4'; execFile(ffmpeg, ['-i', inputFile, '-vf', 'scale=320:240', outputFile], (err) => { if (err) console.error('Error:', err); else console.log('Video processed:', outputFile); }); - @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 -vf scale=320:240 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:
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 -vf scale=320:240 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(); });
