2017-08-03 24 views
4

.HEIC画像をjpegに変換する際に問題があります。 .HEICファイルは、最新のiosパブリックベータを実行しているiphoneで撮影した画像です。私はlibrary nokia providedを使用してファイルを解析し、.HEICファイルからイメージタイルを抽出し、JPEGに変換し、ffmpeg/montageを使用してそれらを一緒に接着します。JPEGに変換するときにHEICタイルが破損しました

この質問にすべてを貼り付けるにはあまりにも多くのコードがあるので、私はこれをすべてgithub repoに入れます。それはかなり自明であり、いくつかの依存関係で実行可能でなければなりません。それらはレポのREADMEに説明されています。これはすべてosx btwで行われました。

.HEICファイルには8x6グリッドの画像(タイル)が含まれています。それらをまとめて表示すると、完全な画像が得られます。次のように、7番目のタイルを入力した画像を破損してしまっただけです。なぜか分かりません。私はノキアに問題を提出しましたが、レポはかなり死んでいるようですが、私は本当にその答えを期待していません。

+0

は、プロジェクトを単一のC++実行可能ファイルにコンパイルしました。また調査している。問題は明らかにheifリーダかffmpeg hevcデコーダのどちらかです – baci

答えて

7

は、第七タイルでVPS/SPS/PPSパラメータセットにバグがあります。問題が実際のファイルまたはHEIFパーサーにあるかどうかはわかりませんが、その間に簡単な回避策があります。

HevcImageFileReader :: getItemDataWithDecoderParametersを参照して、各タイルの実際のアイテムデータにパラメータセットをどのように追加するかを観察します。

最初のタイルのパラメータセットを読み、それを再読み込みするのではなく、後続のタイルに再利用するだけです。これは、7番目のタイルから来る破損したパラメータを回避します。これはグリッド形式であり、各タイルが同一である必要があるため、これを行うのが安全と思われます。

+0

実際にはうまくいきました。 getDecoderParameterSets(contextId、1、parameterSet)に変更されました。 7番目のタイルはもはや破損していません。 –

関連する問題