Closed2

AWS Lambdaでffmpegを使ったサムネイル生成するAPI

Koki IbukuroKoki Ibukuro

動画のサムネイルやらを生成するAPIを用意したいという要件があったので調べたところ公式からこんな記事を発見。

https://aws.amazon.com/blogs/media/processing-user-generated-content-using-aws-lambda-and-ffmpeg/

これは余裕そうだと記事のとおりに進めていたところ、

ffmpegのバイナリを実行するときにExit Code 126 で終了する事象を確認。

GitHubで公開されているServerlessのffmpegレイヤーでも同様のエラー。

色々調べるうち、最近Lambdaのアーキテクチャにarm64が追加され、デフォルトではarm64が選ばれていいて何もせずに新しいlambda functionを作るとarm64作られることを発見。

https://aws.amazon.com/jp/blogs/news/aws-lambda-functions-powered-by-aws-graviton2-processor-run-your-functions-on-arm-and-get-up-to-34-better-price-performance/

対応方法としては、

  • lambda functionを作るときにx86_64アーキテクチャを選ぶ
  • ffmpegバイナリをarm64 にする。

arm64のほうが若干効率がいいそうなので、arm64を試してみる。

https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz

https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-arm64-static.tar.xz
にかえ、同様にLambda用のレイヤーに登録して実行してみたところ無事に確認。

あとから考えるとケアレスミスなのですが、AWSブログどおりにすすめると引っかかるので。メモ。

このスクラップは2022/05/13にクローズされました