چطور فایل های ویدیویی را فشرده کنیم؟
- نفیسه افقی 2 سال قبل سوال کرد
- شما باید برای ارسال دیدگاه وارد شوید
برای این کار می توانید از کتابخانه ffmpeg استفاده کنید. ابتدا آن را نصب کنید:
npm i @ffmpeg-installer/ffmpeg
بعد بصورت زیر از آن استفاده کنید:
// Input file path
const inputPath = file.path;
// Output file path
const outputPath = 'compressed/uploads/posts/'+file.filename;
const fs = require('fs');
const outputDir = 'compressed/uploads/posts';
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir, { recursive: true });
}
const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
const ffmpeg = require('fluent-ffmpeg');
ffmpeg.setFfmpegPath(ffmpegPath);
const command = ffmpeg(inputPath)
.videoCodec('libx264')
.outputOptions(['-preset slow', '-crf 0'])
.output(outputPath)
.on('end', () => {
console.log('Compression complete!');
});
command.run();
*دقت کنید که فشرده سازی عملی زمانبر خواهد بود که در یک thread جداگانه انجام می شود و بسته به اندازه اولیه ویدیو زمان متفاوتی خواهد داشت.
*با تغییر متغیرهای ffmpeg می توانید نحوه فشرده سازی را تعیین کنید (در اینجا با تغییر outputOptions
و videoCodec
)
*برای یک الگوریتم فشرده سازی خاص با ffmpeg این پست را ببینید.
* اگر خواستید فایل فشرده شده را جایگزین فایل اصلی کنید، از این پست کمک بگیرید.
* اگر در نحوه ذخیره کردن فایل آپلودی کاربر سوال داشتید، این پست را ببینید.
*برای فشرده سازی تصاویر این پست را ببینید.
- نفیسه افقی 2 سال قبل پاسخ داد
- آخرین ویرایش 2 سال قبل
- شما باید برای ارسال دیدگاه وارد شوید