目标:手机发送不同的视频格式,我想将它们转码为mp4,以便它可以在任何地方播放,然后将它们存储在GridFS中并发送fileid
作为响应,每当用户想要下载视频时他/她会将fileid
作为输入
当前代码以流的形式接收数据并将其写入gridFS,但转码无法正常工作。请建议我一个方法。这对我来说是成功或死亡的情况。
我有以下代码接收流,转码并将其写入GFS
var writestream = gfs.createWriteStream({
filename: (fileid.toString()) + ".mp4",
_id : fileid,
mode : "w",
content_type : "video/mp4"
});
new Transcoder(stream)
.videoCodec('h264')
.videoBitrate(800 * 1000)
.fps(25)
.aspectRatio(1.7777777)
.audioCodec('libfaac')
.sampleRate(44100)
.channels(2)
.audioBitrate(128 * 1000)
.format('mp4')
.on('finish', function () {
req.custom = fileid;
next();
}).stream().pipe(writestream);
错误:
当我使用Error: FFmpeg error: Error opening filters!
编解码器上传.mp4
时收到错误H.264, AAC
但如果我上传.avi
个文件则可以正常工作
也不适用于3gp