Я настроил лямбда-слой с FFMPEG для перекодирования видео и аудио, для перекодирования я делаю следующее:
- Я загружаю файл с заданным постом в s3
- s3 имеет триггер для автоматического вызова лямбда-функции при загрузке аудио / видео
- лямбда-функция порождает дочерний процесс для каждого файла
- дочерний процесс перекодирует видео и сохраняет перекодированный файл в / tmp
- затем я загружаю файл, переименованный обратно в s3, удаляю предыдущую версию и папку / tmp
Теперь транскодирование аудио действительно быстрое, но видео довольно медленное, и я знаю, что для транскодирования видео всегда требуется больше времени, чем для транскодирования звука, но, возможно, есть некоторые настройки, которые могут помочь мне немного ускорить процесс, вот настройки :
spawn(ffmpegPath, ['-i', 'https://s3.eu-central-1.amazonaws.com/' + srcBucket + '/' + srcKey, '-codec:v', 'libx264', '-profile:v', 'main', '-preset', 'slow', '-b:v', '400k', '-maxrate', '400k', '-bufsize', '800k', '-vf', `scale=-2:${quality}`, '-threads', '0', '-b:a', '128k', '/tmp/'+dstKey]);
Есть некоторые настройки, которые могут помочь мне ускорить транскодирование без потери качества? или использование другого child_process, такого как exec или другое, может быть, может помочь ... Этот код запускается в лямбда-функции с 3008 МБ ОЗУ
Спасибо!