mp4v2合成mp4,用IOS播放问题

Black_Light 2013-06-06 01:26:34
现在用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);
...全文
5936 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
gavin_liang 2015-12-29
  • 打赏
  • 举报
回复
引用 2 楼 Black_Light的回复:
自己先 再一下
楼主,你的总duration没有设对
学习不止 2015-10-10
  • 打赏
  • 举报
回复
前面有人说过了,把nal包的00 00 00 01 改成实际数据的size 00 00 00 01 67 42 e0 0d 96 52 02 83 f4 90 08 把00 00 00 01,改成后面SPS的字节数,也就是 00 00 00 0B。
hoozh 2015-07-20
  • 打赏
  • 举报
回复
引用 18 楼 chenchao_shenzhen 的回复:
我用过三种方式将h.264+pcm/aac 合成mp4 android/iOS都可以用 希望帮到你. http://blog.csdn.net/chenchao_shenzhen/article/details/45368035
博文删掉了?
chenchao_shenzhen 2015-05-24
  • 打赏
  • 举报
回复
我用过三种方式将h.264+pcm/aac 合成mp4 android/iOS都可以用 希望帮到你. http://blog.csdn.net/chenchao_shenzhen/article/details/45368035
nicks9999 2015-04-07
  • 打赏
  • 举报
回复
MP4_DETAILS_ALL我的2.0.0版本也没有找到这个宏,这个开源软件怎么这样
「已注销」 2014-10-09
  • 打赏
  • 举报
回复
引用 15 楼 OExpress 的回复:
去掉每个NALU前面的startcode 00 00 00 01 变为四字节的每个NALU的长度,试一下
去掉也不行啊,去掉了连windows下都不能播放。
CyberLogix 2014-10-01
  • 打赏
  • 举报
回复
去掉每个NALU前面的startcode 00 00 00 01 变为四字节的每个NALU的长度,试一下
「已注销」 2014-09-30
  • 打赏
  • 举报
回复
楼主,我也遇到了同样的问题,能不能告诉我们你是怎么解决的?
windychen20 2014-06-12
  • 打赏
  • 举报
回复
我合成的mp4文件,拖拽时间轴的时候,会卡顿,这是因为什么,有遇到过这种情况的吗
gavin_liang 2014-06-04
  • 打赏
  • 举报
回复
楼主 那个问题解决了吗 ?我也遇到和你相同的问题 可否告知下解决方式
lvzj 2014-02-21
  • 打赏
  • 举报
回复
问题解决了么?
xinlianzhou 2013-11-07
  • 打赏
  • 举报
回复
解决了吗?我现在录制的电脑上播放不正常。
Black_Light 2013-06-28
  • 打赏
  • 举报
回复
设置MP4SetTrackESConfiguration(),也不行,在PC上播放没问题,可到ipad上播放,只有进度再动,没有声音和图像
Jackson_GZ 2013-06-17
  • 打赏
  • 举报
回复
另外音频AAC, 要调用 一次MP4SetTrackESConfiguration() 设置解码信息.
Jackson_GZ 2013-06-17
  • 打赏
  • 举报
回复
你这个H.264编码出来的包: 00 00 00 01 67 42 e0 0d 96 52 02 83 f4 90 08 ... 要保存MP4格式, 要做一次简单的转换: 即搜索所有的前面的00 00 00 01 变成 4字节的长度, 具体参考 h264 nal units的说明.
purple329 2013-06-08
  • 打赏
  • 举报
回复
lz是不是用的1.9版本的mp4v2。管网已经不建议使用了。再请问一下lz,为什么我合成下来的mp4在ios里播放时,弹个框提示这项操作无法完成呢?
purple329 2013-06-08
  • 打赏
  • 举报
回复
ios似乎不支持h.264的过高的idc_level。用3.1的idc_level试试 请问一下lz用的mp4v2是哪个版本的?我用2.0版的怎么找不到MP4_DETAILS_ALL这个宏的定义?
Black_Light 2013-06-08
  • 打赏
  • 举报
回复
我用的也是2.0,版本应该不是问题,"这项操作无法完成"这个没遇到过 总共就那么几个函数,真是郁闷了
Black_Light 2013-06-06
  • 打赏
  • 举报
回复
自己先 再一下
Black_Light 2013-06-06
  • 打赏
  • 举报
回复
自己先 顶一下
100多个Android的实用开源小应用,包含Android -- 引导页面的实现 Android APP引导页大全 Android Push it单机版事件管理APP Android RecycleView+任意头尾布局+拖拽换位+拖拽删除demo Android sql练习合集 Android 仿12306 Android 优秀计步器 Android 体重计算源码 Android 使用Gallery_tabhost实现标签效果图源码 Android 例子源码根据CPU使用时间计算程序电量使用 Android 医院介绍电子书籍源码 android 图片涂鸦 Android 基于局域网的P2P聊天系统 Android 天气预报 Android 实时浏览各种文章APP Android 开发辅助工具 Android 手机新闻客户端源码 Android 手机点餐下单项目源码 Android 新闻客户端 Android 日历控件源码 Android 日记系统源码(数据库的基本操作) Android 极简强大VR本地播放器 Android 用handler机制联网获取图片 Android 百宝箱 Android 简单的翻译软件 Android 精美仿开眼视频跨平台App Android 自定义数字密码输入键盘 Android 趣味答题应用 Android 音乐播放器 Android--AA记账助手 Android--Hide-Music-Player Android-3D卡片效果 android个人中心页面效果源码 Android仿微博、微信、qq 点击缩略图TransferImage Android例子源码IOS风格的uitableview列表 Android例子源码IOS风格的圆角分组设置页面 Android例子源码不断保持后台唤醒的例子源码 Android例子源码九宫格密码输入例子 Android例子源码仿QQ的头像选择弹出的对话框 Android例子源码仿多看阅读的左右平移翻页效果小例子 Android例子源码可以通过网络请求内容的自定义列表选择Dialog Android例子源码图片旋转缩放加盖水印透明倾斜扭曲处理 Android例子源码实现Windows8风格的Dialog Android例子源码强大的listview效果集合项目 Android例子源码模仿IOS音乐的可拖动导航栏功能 Android例子源码模仿安卓微信、云播雷达扫描动画效果 Android例子源码类似58同城的通过滑屏控制引导页 Android例子源码计步器圆形UI设计 Android例子源码适合新手学习的listview使用源码 android及时通讯源码 android可伸缩日历效果源码 Android应用源码CreativeCommons新闻客户端半成品 Android应用源码使用Vitamio框架的网络在线电视直播 Android应用源码全能网络视频播放器 Android应用源码单机版电子阅读器 Android应用源码可以直接发邮件的简洁课程表项目源码 Android应用源码可以管理U盘的文件管理器 Android应用源码哔哩哔哩弹幕网站源码 Android应用源码基于bmob的即时聊天 Android应用源码大学生考勤项目源码 Android应用源码带密码登陆的密码保险箱 Android应用源码开关WIFI热点搜索连接开源有注释 Android应用源码比较不错的新闻客户端 Android应用源码省市联动选择城市的天气预报源码 Android应用源码简单的NB微博项目源码 Android应用源码简洁的随手记事项目源码 Android应用源码类似小米的天天文件管理器 Android应用源码老人居家看护系统 Android应用源码蝌蚪听书第二版听书神器 android掌上几分钟视频应用源码 Android版GitHub Android简单通讯源码:手机控制PC的关机、重启 Android软件源码短信通讯录毕设项目带需求报告 Android软件源码类似时间轴记录的记账记事本 Android项目源码 studio和eclipse双版本仿bilibili客户端 Android项目源码GPS实时定位位置共享 Android项目源码QQ登录语音合成桌面控件天气预报 Android项目源码v2ex技术社区非官方客户端 Android项目源码事件日程管理APP Android项目源码任阅小说阅读器高仿追书神器 Android项目源码在线课堂教育UI框架源码 Android项目源码基于Bmob的糖尿病用药提醒追踪系统 Android项目源码基于MVVM架构的非官方知乎日报APP Android项目源码基于安卓的简单租车系统

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧