質問

CMVideoFormatDescriptionRefを使用してCMVideoFormatDescriptionCreateFromH264ParameterSetsを作成しようとしましたが、-12712エラー(任意のヘッダーに定義されていないようです)で失敗しました

MOVファイルのavcC原子からの私のSPSとPPSを取った(iPhone Camera Appによって作成された):

61 76 63 43 01 64 00 29 FF E1 00 10 67 64 00 29 AC 56 80 78 02 27 E5 9A 80
80 80 81 01 00 05 28 EE 04 F2 C0
.

SPSは次のようです.67 64 00 29 AC 56 80 78 02 27 E5 9A 80 80 80 81

...とPPS:28 EE 04 F2 C0

私は4バイトの長さを持つSPSとPPSをプレースされました(同じ結果を持つ1バイトと2バイトの長所も試してみました)、そのような呼び出しを発行しました:

uint8_t sps[] = {0x00, 0x00, 0x00, 0x10, 0x67, 0x64, 0x00, 0x29, 0xAC, 0x56, 0x80, 0x78, 0x02, 0x27, 0xE5, 0x9A, 0x80, 0x80, 0x80, 0x81};

uint8_t pps[] = {0x00, 0x00, 0x00, 0x05, 0x28, 0xEE, 0x04, 0xF2, 0xC0};

uint8_t* props[] = {sps, pps};

size_t sizes[] = {0x14, 0x09}; // sizes include the 4-byte length

CMVideoFormatDescriptionRef formatDesc;

OSStatus formatCreateResult = CMVideoFormatDescriptionCreateFromH264ParameterSets(NULL, 2, props, sizes, 4, &formatDesc);
.

私は1回の時間ごとに結果として-12712を取得します(複数のファイルやストリームからSPS / PPSを試してみました)。

あなたは私が何を間違っているのかという考えがありますか?(コードはシミュレータのXcode6-Beta4でチェックされました)。私は自分で解析してcmvideoformatDesecreateCreateを使用して、Plasing SPSとPPSを避けたいと思います。 - )

役に立ちましたか?

解決

は4バイトサイズを含めないでください。SPS / PPSペイロード、サイズ値のどちらかでもあります。

他のヒント

あなたのためにグーグルされました; - )

このChromiumコード

をチェックする

https://src.chromium・.ORG / SVN /トランク/ SRC /コンテンツ/共通/ GPU / MEDIO / VT_VIDEO_DECODE_ACCERERATOR.CC

とこの答えは、H.264 SPS / PPS NALU

についての答え

可能な場所の可能な場所H.264ストリーム

のシーケンス/ピクチャパラメータセット

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top