У меня есть формат h264 в формате InAnnex B и следуйте этой ссылке здесь, чтобы реализовать декодирование h264 с помощью iOS8 videoToolBox.
Я проверяю OSStatus на каждом шагу.
-
использовать CMVideoFormatDescriptionCreateFromH264ParameterSets с данными SPS и PPS для создания CMFormatDescription. (status == noErr)
-
создать VTDecompressionSession, используя VTDecompressionSessionCreate. (статус == noErr)
-
захватить полезную нагрузку NALUnit в CMBlockBuffer, убедившись, что замените стартовый код на
код длины байта. (статус == noErr) -
создать CMSampleBuffer. (статус == noErr)
-
используйте VTDecompressionSessionDecodeFrame и получите код ошибки -8969 (симулятор), -12909 (устройство) в функция обратного вызова.
Я сомневаюсь, что я сделал что-то неправильно на шаге 3, я не совсем уверен, что означает код длины. Я просто следую за видеозаписью WWDC, заменяя каждый начальный код NALUnit 00 00 00 01 00 00 80 00. Правильно это или нет? или я должен проверить что-то еще?? спасибо