我正在嘗試將生成的 m3u8 檔案和相應的 ts 檔案上傳到 s3 存盤桶,但問題是我如何將所有 .ts 檔案連同 m3u8 一起上傳。
我的ffmpeg代碼是
const ffmpeg = require('fluent-ffmpeg')
const ffmpegInstaller = require('@ffmpeg-installer/ffmpeg')
ffmpeg.setFfmpegPath(ffmpegInstaller.path)
ffmpeg('uploads/malayalam.mp4').addOptions([
'-c:a',
'aac',
'-ar',
'48000',
'-b:a',
'128k',
'-c:v',
'h264',
'-profile:v',
'main',
'-crf',
'20',
'-g',
'48',
'-keyint_min',
'48',
'-sc_threshold',
'0',
'-b:v',
'2500k',
'-maxrate',
'2675k',
'-bufsize',
'3750k',
'-hls_time',
'4',
'-hls_playlist_type',
'vod',
'-hls_segment_filename',
'uploads/video/720p_d.ts'
]).output('uploads/video/output.m3u8').on('end',(err,data)=>{
console.log(data)
console.log('end')
}).run()
生成的 m3u8 檔案目錄看起來像

我使用此代碼上傳 m3u8 檔案
const aws = require('aws-sdk')
const s3 = new aws.S3({
accessKeyId:"secretid",
secretAccessKey:"accesskey"
})
const fileContent = fs.readFileSync("uploads/video/output.m3u8");
const params = {
Body: fileContent,
Bucket:"5am5pm",
Key:"output.m3u8"
}
s3.upload(params,(err,data)=>{
if(err){
console.log(err)
}else{
console.log(data)
}
})
但它只上傳 m3u8 檔案我怎么能上傳 .ts 檔案呢。如果有人幫助,非常感謝
uj5u.com熱心網友回復:
正如其他人所建議的那樣,只需遍歷檔案并單獨上傳:
fs.readdir('uploads/video', (err, files) => {
if (err) {
return console.log('Failed to list directory: ' err);
}
files.forEach(function (file) {
const params = {
Body: fs.createReadStream("uploads/video/" file);,
Bucket:"5am5pm",
Key: file
}
s3.upload(params, (err, data) => {
if (err) {
console.log(err)
} else {
console.log(data)
}
});
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/436472.html
