ffmpegでAVIFを静止画像に変換する際の警告を回避する方法

主題
ffmpegを用いて、AVIFを一般的な静止画像フォーマットであるpng、jpgに変換する際、ffmpegが
出す警告を回避する方法を述べる。

背景
AVIF(AV1 Image File Format)は、動画圧縮コーデックの1つであるAV1で圧縮された、画像または画像シーケンスをHEIFコンテナ形式で保存するための画像ファイル形式の仕様…とのことである(英語版Wikipediaより)。平たく言うと、AV1を用いた画像フォーマットと言って良いと思われる。
ffmpeg(要AV1サポート)を用いれば、これをデコードすることができるが、その際:

        ffmpeg -i input.avif output.png
    

のようにすると、ffmpegは黄色い文字で警告を発する。エラーではないので、デコードに支障はないと思われるが、文字の量が多く、何か悪いことをしているように感じられ、気分が悪い。本稿では、試行錯誤の結果、警告を回避したので、それを紹介したい。

警告の内容(原文)
[image2 @ 0x7f7c9e706d40] The specified filename ‘output.png’ does not contain an image sequence pattern or a pattern is invalid.
[image2 @ 0x7f7c9e706d40] Use a pattern such as %03d for an image sequence or use the -update option (with -frames:v 1 if needed) to write a single image.

警告の内容(筆者訳)
指定された’output.png’は、イメージシーケンスパターンが含まれないか、パターンが不正である。イメージシーケンスには、%03dのようなパターンを用いるか、単一のイメージを書き出すためには-updateオプション(必要ならば、-frames:v 1を伴って)を用いなさい。

ところが…
-updateオプションの使い方が、ググっても、manページを検索しても、出てこなかった。結局-update optionと、そのままffmpegに喰わせて吐いたエラーによって、やっと、このオプションが真偽値を取ることが分かった。

対応策
分かってしまえばやることは単純で、以下のコマンドで、ffmpegの警告は回避できる。

        ffmpeg -i input.avif -update true output.png
    

または

        ffmpeg -i input.avif -update true -frames:v 1 output.png
    

以上。

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL