Я пытаюсь перекодировать видео в несколько разрешений, используя ffmpeg и node.js.
. Я могу запустить это из командной строки, чтобы перекодировать видео в 720p: ffmpeg -vsync 0 -hwaccel cuvid -hwaccel_device 0 -c:v h264_cuvid -i input.mp4 -vf scale_npp=-1:720 -c:a copy -c:v h264_nvenc -b:v 5M output2.mp4
Я также можно транскодировать с помощью процессора, используя следующий код с библиотекой fluent-ffmpeg для node.js
function transcodeToRes(path, shortSide, bitrate, videoID, portrait) {
return new Promise((res, rej) => {
let resolution = portrait ? "?x" + shortSide : shortSide + "x?";
let localSavePath = savePath + videoID + "/" + shortSide + ".mp4";
ffmpeg()
.input(path)
.native()
.audioCodec('aac')
.audioBitrate(128)
.audioChannels(2)
.videoCodec('libx264')
.videoBitrate(bitrate)
.size(resolution)
.keepDAR()
.save(localSavePath)
.on('error', (err) => {
rej(err);
})
.on('end', () => {
res();
});
})
}```