yeye55 发表于 2007-5-3 20:05

汗!好象没有这个块,如果修改了CONT块(其它位于头部的块也一样)的内容,要重写整个文件,要重新写入数据包,并重新生成索引表,因为修改块的内容会改变块的长度,这会影响到其后数据包的位置,所以要重写整个文件,除非修改的部份和原来的内容长度一致,才可以避免这种情况。<BR>

kingstarer 发表于 2007-5-3 21:07

<P>哦,是修改CONT块,谢谢!<BR><BR>具体是哪一些呢,LZ能说一下吗?<BR><BR>我用你的程序修改信息后发现修改了很多地方,如PROP里面的DataOffset等</P>

yeye55 发表于 2007-5-3 23:19

<P>修改时建议先将整个块读入到内存中,然后进行修改,最后新建一个文件,将修改好的块和原文件中的其它数据复制到新文件中。</P>
<P>比如说:CONT块中的author成员,假设原内容是'abcd',现在修改为'abcd1234',这时要修改author_len成员,因为author的长度改变了,接着修改CONT块的size成员。由于CONT块的长度改变了,紧跟的DATA块、数据包、INDX块的位置也改变了,所以PROP块的data_offset成员、index_offset成员;INDX块的next_index_header成员;所有索引记录的offset成员都要进行修改。然后按照原文件中块的顺序写入到新文件中。<BR></P>

sword1 发表于 2007-5-4 15:32

不错,谢谢:)

kingstarer 发表于 2007-5-4 20:33

LZ你好<BR><BR>我照着你说的去改后终于能播放了,但又出现了新问题<BR><BR>改动之后的文件不能拖动播放,是不是还要改什么啊?<BR><BR>我改了PROP块的data_offset成员、index_offset成员;INDX块的next_index_header成员;<BR>还有CONT块里面的相关内容

kingstarer 发表于 2007-5-4 20:45

我用你的分析器打开了由你分析器修改的和由我的程序修改之后的文件,对比看了很多地方都没发现不同,但你的程序修改之后的文件能拖动播放,我的却不能(原文件是能拖动的)

yeye55 发表于 2007-5-5 13:47

索引记录的offset成员也要进行修改。

kingstarer 发表于 2007-5-5 20:48

<P>哦,谢谢LZ了,终于成功了[em05]<BR><BR></P>

kingstarer 发表于 2007-5-5 20:50

<P>不过我在修改过程中发现文件中的某些的参数并不正确,但是确可以正常播放<BR><BR>不知道哪些参数是关键参数,少了就无法播放??</P>

yeye55 发表于 2007-5-5 22:00

哦!这个我可没有研究过,不过RealPlayer的容错能力相当不错。

kingstarer 发表于 2007-5-6 19:35

哦,谢谢了<BR><BR>ps:<BR>曾见过CONT块的size有错也不影响播放,结果造成我程序在读文件时出现错,因为我是以它的大小移动文件指针的,后来把程序改成顺序CONT块读成员才没事

tdjdyq 发表于 2007-5-8 15:39

<P>楼主,有碰到一个问题,我想知道RM文件中,所以的RTP包大小是一样的吗?有没有极个别包比其它RTP包大或小?</P>

tdjdyq 发表于 2007-5-8 19:04

<P>楼主,在一个纯音频RM文件中,所以的RTP包的大小一样吗?</P>

yeye55 发表于 2007-5-9 14:02

一般来说,在一个文件中音频流数据包的大小是一致的。

tdjdyq 发表于 2007-5-9 17:06

<P>那再什么情况下,有不一直的呢?谢谢</P>

yeye55 发表于 2007-5-9 18:58

在数据包有错误的情况下;或者RM文件经第三方软件(非官方软件)修改生成,软件处理不当的;或者采用特殊动态编码的数据包(这个非常罕见)。

tdjdyq 发表于 2007-5-9 19:04

<P>谢谢楼主!</P>

tdjdyq 发表于 2007-5-9 19:05

今天有碰到一个问题,在PROP中说明一个RTP的数据大小是651,但是实际是640,这是怎么回事呢?
[align=right][color=#000066][此贴子已经被作者于2007-5-9 19:08:43编辑过][/color][/align]

yeye55 发表于 2007-5-9 20:01

一般以MDPR的MaxPacketSize和AvgPacketSize为准,PROP的MaxPacketSize和AvgPacketSize经常不准,特别是第三方软件修改过的文件。

tdjdyq 发表于 2007-5-14 15:14

楼主,你能不能在导出索引数据的时候,同时把音频的索引数据也导出来,现在RM文件查看器好象只能导出音频的索引呢

页: 1 [2] 3

编程论坛