是否有可能伪造(mp4)moov原子?

Raf*_*ffi 6 mp4 quicktime header stream

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

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

Dmi*_*nik 5

这是可能的。我四年前就在原来的 iPhone 上实现了“直播”。只需用恒定大小的帧填充 STSZ 和 STCO 原子,然后用零填充每个帧。是的,尺寸会很大,但你会得到真正的直播:-)


小智 2

流式传输尚未完成的 mp4 文件似乎是相当不可能的,因为播放器需要带有块和偏移量的特殊表来定位每个数据样本。您可以伪造 FTYP、MOOV 和其他原子,但在文件不完整的情况下无法生成所有表。更好的策略是生成许多短 mp4 文件并逐个文件发送它们......