Видео, обработанные Multer, не имеют звука - PullRequest
0 голосов
/ 16 февраля 2020

Я использую multer в node.js для обработки, когда пользователи загружают видео на мой сайт, и изначально все работало нормально, поэтому я так растерялся. Теперь у загруженного видео нет звука.

вот форма загрузки

    <!DOCTYPE html> 
<html> 

<head> 
    <title>Video Upload</title> 
</head> 

<body> 
    <h1>Video Upload</h1> 

    <form action="http://localhost:80/upload" 
      enctype="multipart/form-data" method="POST"> 


    <br>Video Title  <input type="text" name="title" required/><br>
    <br>
        <input type="file" name="video" required/> <br> 
        <br>


        <input type="submit" value="submit">  
    </form> 
</body> 

</html> 

и соответствующий код бэкенда, с multer я также использовал ffmetadata для сохранения названия видео и uuid / v4 для имени файла.

var storage = multer.diskStorage({
    destination: function(req, file, cb){
        cb(null, __dirname + "/videos")
    },
    filename: function(req, file, cb){
        cb(null, uuid() + ".mp4")
    }
})



//max file size -- 500mb
const maxSize = 524288000;

var upload = multer({
storage: storage,
limits: {fileSize: maxSize},
fileFilter: function(req, file, cb){
var filetypes = /mp4/
var mimetype = filetypes.test(file.mimetype)
console.log(file)
var extname = filetypes.test(path.extname(file.originalname).toLowerCase()); 
if(mimetype && extname){
    return cb(null, true)
}

//err 
cb("Error: File upload only supports the " + "following filetypes - " + filetypes); 
}

}).single("video")

app.get("/upload", function(req, res){
        res.sendFile(__dirname + "/views/upload.html")
})

app.post("/upload", function(req, res){
    upload(req, res, function(err){
        console.log(req.body.title)
        if(err){
            res.send(err)
        }
        else{
            metaData.write(req.file.path, {title: req.body.title}, function(err){
                if(err){

                    res.send(err)
                }
                else{
                    res.send("uploaded")
                }
            })

        }
    })
})

1 Ответ

0 голосов
/ 16 февраля 2020

я исправил свою проблему, переключившись с req.file.path на req.file.filename

...