У меня есть лямбда-функция для обрезки видео с помощью ffmpeg
Я устанавливаю слой таким образом
#!/bin/bash
mkdir -p layer
cd layer
rm -rf *
curl -O https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
tar -xf ffmpeg-git-amd64-static.tar.xz
mv ffmpeg-git-*-amd64-static ffmpeg
rm ffmpeg-git-amd64-static.tar.xz
Я не совсем понимаю, какая версия, но должна быть последней, как я сделал это сегодня в последний раз
Тогда моя node js лямбда-функция работает со следующим модулем nodejs https://github.com/fluent-ffmpeg/node-fluent-ffmpeg
return new Promise((resolve, reject) => {
ffmpeg(inputFile.name)
.videoFilters(`crop=${width}:${height}:${x}:${y}`)
.format('mp4')
.on('error', reject)
.on('end', () => resolve(fs.readFileSync(outputFile.name)))
.save(outputFile.name);
с, например, videoFilters('crop=500:500:20:20')
И у меня следующая ошибка
ffmpeg exited with code 1: Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
На моем локальном компьютере я запускаю следующую команду на том же самом изображении
ffmpeg -i in.mp4 -filter:v "crop=500:500:20:20" out.mp4
моя версия ffmpeg 4.2.2, и это отлично работает
У меня нет проблемы со всеми видео, вот одно видео, которое вызывает у меня проблему https://ajouve-util.s3.amazonaws.com/earth.mp4