mjpgストリームからjpgフレームを引き出しています。これらは有効なjpgファイルで、私が試した画像ツールで動作します。しかし、Rekognitionは、それをBytesとして送信するとき、またはそれらをS3に移動してそのルートを試みるとき、それらを受け入れません。オリジナルフレームAWS Rekognition InvalidImageFormatException jpegソースがmjpegストリームの場合
-私はいくつかのバージョン(attached here)、同じソースjpgからすべてが(私はインラインそれらが含まれるであろうが、私は画像最適化コードがそれらを変更する必要はありませんが)
test.jpg
作りました
test-photoshop.jpg
- (私はjpegtranで圧縮と信じている)ImageOptimを介して実行
探し - "Web用に保存" D
test-imageoptim.jpg
、Photoshopで開きますこれらの16進エディターでは、私が見ることができない唯一の違いは、よりexifデータ(exiftoolを使用して)です。私がオリジナルでexiftoolを実行すると、フレームの基本的な詳細すべてが返されます。
私はこれがRekognitionのバグだと思っています、またはmjpegストリーム抽出が省略されていることを探している特定のexifビットがあります。たぶん誰かがmjpegからjpegフレームを引っ張るのがなぜ正しい開始および終了フレームバイトを付けるだけでできないのかについての情報を持っています。
は最後の6つのバイトをオフにチョッピングしてみてください、ただの推測、最終 'FF D9'マーカの後、おそらくこれらのバイトは、Amazonが混乱しています。 –
@ChrisOこれは動作します!だから多分mjpegストリームからフレームを抽出する私の方法は、ゼロバイトで最後を埋めることです。答えにこれを入れたら、私はそれを受け入れるでしょう – Will