Я пытаюсь создать функцию транскодирования для коротких видео. Функция размещена на AWS Lambda. Проблема в том, что в AWS lambda, похоже, отсутствует то, что требуется FFMPEG, по крайней мере, согласно Amazon.
Я связался с Amazon раньше, и это их ответ на проблему:
Мы обнаружили, что для операций FFMPEG требуется как минимум libx264 и
библиотека acc, обе из которых будут иметь свои собственные зависимости. к
устранить проблему, это будет включать в себя погружение вглубь
цепочка зависимостей. Мы видим, что это работает в Amazon Linux
среда, однако, среда похожа, но не идентична
лямбда-окружение. Там могут быть некоторые зависимости, которые существуют в
Amazon Linux, но не в лямбда-среде, поскольку Lambda работает на
контейнер. Здесь, поскольку FFmpeg является сторонним программным обеспечением, погружение глубже
в цепочку зависимостей и проверка совместимости версий
очень трудно сделать К сожалению, идти дальше, это неизбежно
поддержка архитектуры и кода, выходящая за рамки поддержки AWS 1 . я
надеюсь, вы понимаете наши ограничения. Однако следует FFmpeg поддерживать
есть какие-либо вопросы, относящиеся к платформе Lambda, пожалуйста, дайте нам
знать, и мы будем рады помочь. Мы будем в лучшем положении
исследовать дальше, как только вы получите обновление от поддержки FFmpeg
предлагая проблему с конца лямбды.
По предложению AWS я связался с FFMPEG в списке рассылки для разработчиков, мое сообщение было отклонено по той причине, что оно больше подходит для списка рассылки пользователей ffmpeg, чем для разработчиков. Я отправил письмо на ffmpeg-user@ffmpeg.org неделю назад и не получил никакого ответа.
Затем я создал динамически связанную версию ffmpeg, убедившись, что упаковал все библиотеки, проверил ddl на каждой, а затем создал небольшую лямбда-функцию, которая зацикливается на всех двоичных файлах и дублирует каждую из них, по сравнению с выводом I полученный из Amazon Linux, и те же зависимости / версии существуют и для лямбды, и для экземпляра AWS Linux, но ffmpeg все еще не работает на лямбде.
Подробный файл журнала вы можете найти здесь: https://www.datafilehost.com/d/6e5e21bb
И это пример ошибок, которые я получаю, повторяющихся по всему файлу журнала:
2018-08-14T12: 27: 10,874Z [h264 @ 0x65c2fc0] скрывая 2628 DC, 2628
AC, 2628 МВ ошибок в P-кадре
2018-08-14T12: 27: 10.874Z [aac @ 0x65d2f00] канальный элемент 2.11 не является
выделяется
2018-08-14T12: 27: 10.874Z Ошибка при декодировании потока № 0: 1: неверно
данные, найденные при обработке ввода
2018-08-14T12: 27: 10.874Z [h264 @ 0x67e86c0] Неверный размер блока NAL
(108085662> 1649).
2018-08-14T12: 27: 10.874Z [h264 @ 0x67e86c0] Ошибка разделения входа
в единицы NAL.
2018-08-14T12: 27: 10.874Z [aac @ 0x65d2f00] канальный элемент 2.0 не является
выделяется
2018-08-14T12: 27: 10.874Z Ошибка при декодировании потока № 0: 1: неверно
данные, найденные при обработке ввода
2018-08-14T12: 27: 10.874Z [h264 @ 0x68189c0] Неверный размер блока NAL
(71106974> 1085).
2018-08-14T12: 27: 10.874Z [h264 @ 0x68189c0] Ошибка разделения входа
в единицы NAL.
2018-08-14T12: 27: 10.874Z [aac @ 0x65d2f00] Импульсный инструмент не допускается в
восемь коротких последовательностей.
Этот журнал создается при попытке выполнить транскодирование HLS для этого файла: https://www.datafilehost.com/d/999a4492
Обратите внимание, что проблема связана не только с этим файлом, но и не связана с HLS, его общим и возникает во всех видео и любой команде ffmpeg, которая пытается найти поток, даже пытаясь извлечь один кадр из видео, используя простейшая форма, например: ffmpeg -ss 00:00:02 -I file.mp4 -vframes 1 -y output.jpg
также не работает с теми же ошибками в файле журнала.
Не уверен, как отладить это дальше. Попытался включить журналы отладки с помощью -loglevel debug, но не дал мне никакой дополнительной информации. Любая помощь или предложения