Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 播放时将视频帧附加到mp4_Ios_Video_Mp4 - Fatal编程技术网

Ios 播放时将视频帧附加到mp4

Ios 播放时将视频帧附加到mp4,ios,video,mp4,Ios,Video,Mp4,我需要附加视频帧从流到现有的mp4文件。 我发现我需要使用mdat和stcoatom来更新chunks表。 是否可以添加新的帧/块?我需要在ios应用程序中执行此操作。这样的附加是可能的,但可能不实用——特别是如果您希望一次添加一帧 MP4在很大程度上是一种“烘焙”格式,生成后很难修改。这是因为“moov”框中的结构数据包含到“mdat”框中重要媒体数据的文件偏移量。如果moov框位于mdat框之前(通常允许渐进下载),则添加到moov框的任何数据(即附加视频中对新关键帧的引用)都会将mdat框

我需要附加视频帧从流到现有的mp4文件。 我发现我需要使用mdatstcoatom来更新chunks表。
是否可以添加新的帧/块?我需要在ios应用程序中执行此操作。

这样的附加是可能的,但可能不实用——特别是如果您希望一次添加一帧

MP4在很大程度上是一种“烘焙”格式,生成后很难修改。这是因为“moov”框中的结构数据包含到“mdat”框中重要媒体数据的文件偏移量。如果moov框位于mdat框之前(通常允许渐进下载),则添加到moov框的任何数据(即附加视频中对新关键帧的引用)都会将mdat框推得更远。不仅需要重写文件,还需要相应地更新所有文件偏移量。(也许有一些聪明的技巧可以保持moov框的大小不变……)如果先定位mdat框,操作仍然会很尴尬,因为您需要将moov框复制到内存中,将新视频附加到mdat的末尾,相应地更新moov字段,并附加新的moov框

如果您可以收集所有新的视频帧,并在录制结束时在重写操作期间添加它们,这可能是可行的。您也可以查看片段化MP4(使用“moof”框),但我不确定读取此类文件的支持有多广泛