我尝试使用CMVideoFormatDescriptionRef
创建CMVideoFormatDescriptionCreateFromH264ParameterSets
,但失败并显示-12712错误(似乎未在任何 header 中定义)
我已经从mov文件(由iPhone相机应用程序创建)的avcC
原子中获取了SPS和PPS:
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
我在SPS和PPS之前设置了它们的4字节长度(也尝试了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);
我每次都得到-12712(从多个文件和流中尝试SPS/PPS)。
你知道我做错了什么吗? (已在Simulator的Xcode6-Beta4上检查了代码)。我宁愿避免自行解析SPS和PPS并使用普通的CMVideoFormatDescriptionCreate :-)
最佳答案
不包括4个字节的大小。在sps/pps有效负载中,或者在大小值中。
关于ios - CMVideoFormatDescriptionCreateFromH264ParameterSets问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25078364/