mp4v2合成mp4,用IOS播放问题
现在用mp4v2将h264和aac封装成MP4,合出来的文件可以用VLC播放,但用IOS播放时,只有时间变化没有声音和图像,我从下面的一段H264数据中找到的sps,pps,请大家指导一下,哪里可能出的问题
H264:
00 00 00 01 67 42 e0 0d 96 52 02 83 f4 90 08 00 00 00 01 68 ce 38 80 00 00 00 01 06 06 01 84 80 00 00 00 01 65 88 80 30
01 63 88 c2 1f cb 01 d1 94 05 96 e7 9c 1e 7e 66 5b bf 8e e2 38 8f ff 53 c0 3d 39 96 e7 ac 4b a5 53 04 c7 77 54 37 19 eb
e2 38 8f c2 bc fa 6d 77 8a ff b1 1b 88 ae 1a 5d f8 01 19 88 7e 66 3b 87 a6 5e ab 74 43 7c c3 b5 25 f9 ac 24 74 96 d1 ec
61 32 8c a8 a7 4c c4 ae 92 6f bd f1 15 51 1e 76 5c 6a ca 13 d8 ab c8 e6 80 b0 da b8 c4 cb 5c 2a a6 8a 8d b1 8d ce f5 c7
64 7d f1 1c 46 ab 0b 33 05 ca 0a c8 ae 68 61 05 08 65 71 6d f0 b9 e6 88 fb a7 2b 44 5d 4a 3e 22 c6 22 00 41 c3 b8 2d 3e
unsigned char sps[11] = {0x67,0x42,0xe0,0x0d,0x96,0x52,0x02,0x83,0xf4,0x90,0x08};
unsigned char pps[4]= {0x68,0xce,0x38,0x80};
m_mp4file = MP4CreateEx(".\\Data\\2.mp4", MP4_DETAILS_ALL, 0, 1, (char*)1, 0, 0, 0);
if (m_mp4file == MP4_INVALID_FILE_HANDLE)
{
LOG_CONSOLE("open file fialed.\n");
return;
}
MP4SetTimeScale(m_mp4file, 90000);
//添加h264 track
m_mp4_video_id = MP4AddH264VideoTrack(m_mp4file, 90000, 90000 / 25, 320, 240,
sps[1], //sps[1] AVCProfileIndication
sps[2], //sps[2] profile_compat
sps[3], //sps[3] AVCLevelIndication
3);
if (m_mp4_video_id == MP4_INVALID_TRACK_ID)
{
LOG_CONSOLE("add video track failed.\n");
return;
}
//添加aac音频
m_mp4_audio_id = MP4AddAudioTrack(m_mp4file, 48000, 2048, MP4_MPEG4_AUDIO_TYPE);
if (m_mp4_audio_id == MP4_INVALID_TRACK_ID)
{
printf("add audio track failed.\n");
return;
}
MP4AddH264SequenceParameterSet(m_mp4file,m_mp4_video_id,sps,11);
MP4AddH264PictureParameterSet(m_mp4file,m_mp4_video_id,pps,4);
MP4SetVideoProfileLevel(m_mp4file, 0x7F);
MP4SetAudioProfileLevel(m_mp4file, 0x02);