社区
多媒体/流媒体开发
帖子详情
如何把H264文件的数据一帧一帧的读出来?(先不用考虑解码)
HHunter
2009-07-31 07:07:46
如何把H264文件的数据一帧一帧的读出来?(先不用考虑解码)
谢谢!
...全文
13924
32
打赏
收藏
如何把H264文件的数据一帧一帧的读出来?(先不用考虑解码)
如何把H264文件的数据一帧一帧的读出来?(先不用考虑解码) 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
32 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yujie_v
2012-08-23
打赏
举报
回复
学习下,H264划分帧确实很麻烦
zxm006
2012-06-14
打赏
举报
回复
都是大仙级别啊,我目前也碰到要从mp4文件读出h264的需求
te_esperare
2012-06-09
打赏
举报
回复
67 ...... 68 ..... 65 ........ 61....... 61 ........ 61 .......
像上边这个码流,找到了65或者61,说明是完整的一帧,(67 ...... 68 ..... 65 ......)就是一帧,是I帧;找到61(也可能是41什么的),也是完整的一帧,(61 .......)是完整的P帧。
zhutoutou008
2012-06-04
打赏
举报
回复
各位流媒体神人,新手给你们跪下了.你们太强大了.
Mical007
2011-11-04
打赏
举报
回复
这个还在,,,
divineguo
2011-09-16
打赏
举报
回复
看了大家的讨论,我对20楼的观点比较赞同:"一帧可能有几个SLICE的!你要把所有的SLICE定位出来,然后再找到每个SLICE的起始宏块的地址,地址为0的话就是一帧开始了!"
的确,除去sps和pps,单纯从0x0000000101和0x0000000105来看,直接是看不出帧的边界的,只是一个个的slice的边界罢了,但是一个slice的起始宏块的地址是0,则代表该slice是一帧的第一个slice,故也就是一帧的开始了。
当时求帧边界时,用了个取巧的办法:就是当遇到0x0000000101和0x0000000105时,求出对应的dts,而如果帧率为25,则每帧的播放时间是0.04秒,则求出下一个0x0000000101和0x0000000105时,求出其dts,如果和前面的基准dts的差是0.04秒,则认为就是一帧了。
----------------ES流中没有dts呀
moonvan
2011-09-11
打赏
举报
回复
学习了
czgwdm
2011-05-31
打赏
举报
回复
看了大家的讨论,我对20楼的观点比较赞同:"一帧可能有几个SLICE的!你要把所有的SLICE定位出来,然后再找到每个SLICE的起始宏块的地址,地址为0的话就是一帧开始了!"
的确,除去sps和pps,单纯从0x0000000101和0x0000000105来看,直接是看不出帧的边界的,只是一个个的slice的边界罢了,但是一个slice的起始宏块的地址是0,则代表该slice是一帧的第一个slice,故也就是一帧的开始了。
当时求帧边界时,用了个取巧的办法:就是当遇到0x0000000101和0x0000000105时,求出对应的dts,而如果帧率为25,则每帧的播放时间是0.04秒,则求出下一个0x0000000101和0x0000000105时,求出其dts,如果和前面的基准dts的差是0.04秒,则认为就是一帧了。
CyberLogix
2011-04-20
打赏
举报
回复
解析NAL或者BYTECODE得到PPS,SPS,SLICE等数据
xchl1127
2011-01-19
打赏
举报
回复
太深奥了,正在学习中
china_clear
2010-09-28
打赏
举报
回复
一帧可能有几个SLICE的!你要把所有的SLICE定位出来,然后再找到每个SLICE的起始宏块的地址,地址为0的话就是一帧开始了!
rienzi
2010-08-27
打赏
举报
回复
流媒体同行,学习,留爪印
lzmilypforev
2010-04-25
打赏
举报
回复
话说这东西可真是难啊...
wfcancer
2010-01-29
打赏
举报
回复
都是高手,领教了
znj_326
2009-10-30
打赏
举报
回复
我日哦,登录还是看不到呢
HHunter
2009-08-18
打赏
举报
回复
非常感谢各位,我跟踪看看...
lius1984
2009-08-11
打赏
举报
回复
你下载这个h.264解码器的工程源码 跟踪一边就清楚了。 http://www.winbile.net/bbs/forums/threads/1012589.aspx
mubai007
2009-08-11
打赏
举报
回复
[Quote=引用 7 楼 firedsky 的回复:]
引用 6 楼 mubai007 的回复:
看你如何采集的,我这边有一个21字节的文件头00 00 00 01 67 42 00 1E AB 40 B0 4B 20 00 00 00 01 68 CE 38 80,然后以00 00 00 01为一帧的开始。有时会在每一帧开始时加入每一帧的大小4字节。
你这是一个序列参数集,不是建议NAL序列中的第一个NAL,在单元分隔符NAL之后。不过它可以算是新的一帧的开始,如果没有单元分隔符NAL的话,用这个区分一帧数据是可以的,只是不太方便。
[/Quote]
像我这种情况怎么区分一帧数据比较好?
该怎么组织数据?
Ryan裤子
2009-08-04
打赏
举报
回复
[Quote=引用 9 楼 SmallBigCat 的回复:]
to ttxk:
视频怎么会没有帧的概念呢?
[/Quote]
H264的字节流确实没有帧的概念.具体原因请仔细研读协议.
这里我并没有说视频.
firedsky
2009-08-04
打赏
举报
回复
这个要看你怎么理解了。和MPEG2、MPEG4相比,H.264字节流中帧的形式发生了变化。以视频帧为例,MPEG2和MPEG4字节流在传输的时候提取帧的关键参数,将其封装入传输包首部,比如TS包或RTP包,而包负载中的数据仍然是一个完整的图像帧。也就是说,你即使不使用包首部中所设置的关于包负载的参数信息,也能够根据包负载中的帧数据本身进行正确的解码。
而H.264码流本身对图像数据就做了处理,将一个完整的图像帧进行分解,抽出序列参数集、图像参数集等帧信息,放到各自对应的NAL中,而图像数据本身则封装进编码条带中。这样,在NAL流中,仅仅根据编码条带NAL单元是解析不出图像来的,必须和序列参数集、图像参数集NAL配合才能解出。也就是说,MPEG2、MPEG4编码的一帧数据,被分解成了H.264中的多个NAL单元,H.264编码的抽象化程度更高了。但是H.264码流在组织的时候仍然是以一帧数据为单位的,它并不会将多帧数据交织到一起,只不过表现在形式上,需要用多个NAL单元才能组成一个完整的数据帧。
加载更多回复(10)
h264
测试
文件
希望能对要
h264
文件
测试,而又没有的朋友有所帮助
H.264码流第
一帧
不是I帧,怎么
解码
?
用JM
解码
264
文件
,显示错误,好像是因为第
一帧
不是I帧; 现在尝试在读取
文件
的时候修改
文件
流的指针,指向第一个I帧,但是不知道怎么操作。 问题点数:20分 CSDN推荐 CSDN今日推荐 ⋅ 从
H264
码流中切出
一帧
一帧
⋅
H264
码流中NALU sps pps IDR帧的理解 ⋅ h.264判断
一帧
的结束 ⋅ (一)
H264
编码原理以及I帧B帧P帧 ⋅
H264
关于
一帧
完...
纯C读取
文件
实现解析
H264
裸流每
一帧
数据
imx的例程是设置一个大的缓冲区,一次性读入不超过10M字节
数据
,然后全部送到
解码
器进行
解码
,对于小于10M字节的视频
数据
确实很方便的
解码
了,但是
文件
大了这种方式就不行了。首
先
分析下
H264
裸流
文件
,发现每
一帧
数据
的起始码是00 00 00 01,那么就可以利用这个起始码来拆分每
一帧
数据
。代码很简单,就是持续读取
文件
,碰到00 00 00 01则表示
一帧
读完,然后把这
一帧
数据
送到
解码
器处理即可。还有一种处理方式是使用FFMpeg来读取每
一帧
数据
,然后送入
解码
器,是可行的。
代码片段---使用ffmpeg从
h264
文件
中提取出
一帧
一帧
数据
d盘有一个test.264
文件
,我们需要从这个
h264
文件
中提取出
一帧
一帧
的
数据
,所以直接采用ffmpeg来做。 #include <iostream> #include <stdio.h> #include <string.h> #include <errno.h> #ifdef __cplusplus extern "C" { #endif #include <libswscale/swscale.h> #include <liba
H.264裸流
文件
中获取每
一帧
数据
测试
解码
器性能时,最常用的无非是向
解码
器中推送码流。 之前封装了一个avc的
解码
器,想做一个测试,读取H.264裸流
文件
将码流定期定时推送到
解码
器。 测试其实很简单: 1.了解H.264裸流
文件
的构成 2.解析H.264裸流
文件
3.提取H.264码流调用接口推送
数据
1. 了解H.264逻辑
文件
根据H.264协议,a...
多媒体/流媒体开发
2,553
社区成员
20,278
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章