标题:急!求大神指导:c读取视频数据时如何跳过包头并另存为文件?
只看楼主
duoduodx
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-2-3
 问题点数:0 回复次数:3 
急!求大神指导:c读取视频数据时如何跳过包头并另存为文件?
求代码实现:

 数据data中包含不定数量的数据包,每个数据包里存的都是视频数据,现在需要读取data中数据的过程时跳过PACKAGE_HEAD,读取完毕以后把跳过PACKAGE_HEAD的纯视频数据另存为一个(纯码流的)文件中,读取data的过程中只要遇到 zxel标识 就认为是读到一个包头。
 
 /**包头的标识**/
#define SFUNIT_PACKAGE_HEAD htonl(('z' << 24 ) | ('x' << 16) | ('e' << 8) | ('l'))  zxel

 /**构造数据包头**/
    stPackHead.uKey          = SFUNIT_PACKAGE_HEAD;
    stPackHead.uLen          = (AOS_UINT16)ulDataBufferLen;
    stPackHead.uMilliSecond  = (AOS_UINT16)(pstRcvTime->tv_usec / 1000);
    stPackHead.uSeconds.time = pstRcvTime->tv_sec;

 /**包的结构**/
typedef struct _PACKAGE_HEAD_
{
    AOS_UINT32  uKey;   // before each data package, is a magic words, should be SFUNIT_PACKAGE_HEAD
    AOS_UINT16  uLen;   // the data package length, the data len must less than 65535.
    AOS_UINT16  uMilliSecond; // the data reveived time offset in second, in millisecond
    AOS_TIME_T  uSeconds;     // the data reveived time, it is a absult time, in second
}PACKAGE_HEAD;
之前尝试过用fseek,但最后得到的数据总是不对,再另存文件的时候可能也有问题,所以希望各位帮忙指导下,很感谢!

可能语言描述上不太明白,画张图可能会更理解些。
图中1是原始数据,需要达到图中2所示的结果,最后再把省略包头数据保存到一个新的文件即可。

形象的说就好比读一个磁带,每首歌之间有空白的时间间隔,这个空白的部分相当于包头,每首歌的内容相当于数据,不需要知道每首歌的内容是英文还是中文还是粤语,最终需要把空白部分去掉,把剩下所有歌曲的内容再保存到另外一个新的文件即可。

[ 本帖最后由 duoduodx 于 2015-2-4 14:57 编辑 ]
搜索更多相关主题的帖子: 数据包 包头 如何 
2015-02-03 22:34
duoduodx
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-2-3
得分:0 
额..... 竟然没有一个人解答或者提示
2015-02-12 10:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
用fseek(),不出錯的幾率很小。

授人以渔,不授人以鱼。
2015-02-12 21:30
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
得分:0 
把你之前用fseek写的代码发出来看看,
然后发一个歌曲的待处理文件,毕竟还是要看具体的运行结果来看程序到底是哪儿出了问题。
我之前用Java处理过,C的可以试试。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2015-02-15 01:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-441748-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.172454 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved