社区
多媒体/流媒体开发
帖子详情
如何把H264文件的数据一帧一帧的读出来?(先不用考虑解码)
HHunter
2009-07-31 07:07:46
如何把H264文件的数据一帧一帧的读出来?(先不用考虑解码)
谢谢!
...全文
13479
32
打赏
收藏
如何把H264文件的数据一帧一帧的读出来?(先不用考虑解码)
如何把H264文件的数据一帧一帧的读出来?(先不用考虑解码) 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
H.264/AVC视频编
解码
技术详解
H.264/AVC是目前业界应用为广泛的视频压缩编码标准,包含了
先
进而且较为成熟的视频编码技术。本课程将从原理、标准和实现等多个角度,详细讲述了H.264/AVC视频编码标准的整体架构与技术细节,不但讲解了H.264/AVC标准协议文档中的内容,还通过实际的H.264码流分析/
解码
程序的开发来帮助观众更深入地理解H.264编码标准的原理。
H.264码流第
一帧
不是I帧,怎么
解码
?
用JM
解码
264
文件
,显示错误,好像是因为第
一帧
不是I帧; 现在尝试在读取
文件
的时候修改
文件
流的指针,指向第一个I帧,但是不知道怎么操作。 问题点数:20分 CSDN推荐 CSDN今日推荐 ⋅ 从
H264
码流中切出
一帧
一帧
⋅
H264
码流中NALU sps pps IDR帧的理解 ⋅ h.264判断
一帧
的结束 ⋅ (一)
H264
编码原理以及I帧B帧P帧 ⋅
H264
关于
一帧
完...
代码片段---使用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...
H264
解码
深度解析——DM8168 OMX从
H264
文件
读取
一帧
数据
(do chunking of
h264
)
源码来源:TI DM8168EZSDK OMX examples decode_display 基本执行流程如下: ilclient.c //主体程序
文件
↓ void IL_ClientInputBitStreamReadTask (void*threadsArg);
多媒体/流媒体开发
2,543
社区成员
20,281
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章