2011-03-15 46 views
6

我正在尝试播放MP4流。该流是从我的Android手机发送的。问题是,只有在电话完成录制进程时才会写入播放mp4所需的moov原子。因此,目前我只能在录制完成后播放流式数据。 我的想法是自己编写ftyp和moov原子,以便在手机正在录制时播放流数据。 我试图使用另一个视频文件中的moov原子,但这不起作用。我也读过,如果只给出mdat原子,通常不可能建立一个moov原子。 但在我的情况下,我知道记录条件,如帧速率等。是否有可能伪造(mp4)moov原子?

所以我的问题是,如果我知道记录参数,是否有可能为传入流生成有效/可用的moov原子?

回答

2

这似乎是不可能的,因为播放器需要特殊的表格和偏移来定位每个数据样本,因此还没有完成mp4文件。您可以伪造FTYP,MOOV和其他原子,但是如果没有完成文件,则无法生成所有表格。更好的策略是生成很多简短的mp4文件并将它们逐个文件发送出去......

+0

但有停止记录器,保存文件,然后重新启动录像机,以便生成很多短文件(Android上)的开销。事实上,每次发生这种情况时,都会导致其中一两个视频被跳过。 – 2013-10-15 15:00:31

4

这是可能的。我在4年前完成了对原始iPhone的“直播”。只需使用恒定大小的帧填充STSZ和STCO原子,然后用零填充每个帧。是的,大小将是巨大的,但你会得到真正的实时流:-)

相关问题