将filename.mp4.tmp与filename.mp4合并

时间:2014-03-04 11:58:37

标签: video ffmpeg streaming recording wowza

如何将 abc.mp4.tmp 交换文件与实际 abc.mp4 文件合并。我试图使用Wowza Media服务器3.6录制直播事件,并且录制的文件在最后时刻没有正确复用。 abc.mp4.tmp 交换文件未与实际 abc.mp4 文件合并。那么有人可以告诉我如何合并abc.mp4.tmp和abc.mp4文件并创建一个新文件,我可以使用vlc

这是文件的媒体信息

[root@ip-ss-21-98-2 content]# mediainfo 03_03_2014_12_03_08.mp4
General
Complete name                            : 03_03_2014_12_03_08.mp4
Format                                   : MPEG-4
Format profile                           : Adobe Flash
Codec ID                                 : f4v 
File size                                : 5.20 GiB


[root@ip-ss-21-98-2 content]# mediainfo 03_03_2014_12_03_08.mp4.tmp
General
Complete name                            : 03_03_2014_12_03_08.mp4.tmp
File size                                : 38.3 MiB

1 个答案:

答案 0 :(得分:0)

在录制过程中,.mp4文件包含ftypwide个原子,后跟一个mdat原子,其中附加了视频/音频数据。 mdat原子尚未设置sizetype字段。

.mp4.tmp文件包含一个特定于Wowza的格式,用于存储stbl(样本表)条目,这些条目可以在录制时附加到其中。此文件中的每个条目都有一个4字节type字段(stszsttsstscstcostss),后跟一个4字节size字段,后跟size字节数据(type / size字段使用的字节不包含在{{1}的值中}}}。此格式基于我使用Wowza 4.1.2创建的文件,并且可能会随着新的Wowza版本而改变。

我还有一个由Wowza从同一输入源创建的已知好的size文件用作参考。

要创建工作.mp4文件,我将.mp4 atom的size字段设置为mdat文件中剩余的字节数和{{1 }}字段到.mp4,然后在已知的好文件中的原子和type文件中的示例表条目中附加一个mdat原子。

moov文件中的示例表条目并不表示它们是否适用于视频或音轨,因此根据平均样本大小,每个块的平均样本和写入的顺序进行了一些猜测进入.mp4.tmp文件以确定如何将这些条目映射到轨道。由于记录被中断,并非所有样本表都显示相同数量的样本,所以我截断了较长的样本。

Apple's QuickTime File Format docs为我需要重新创建原子的结构提供了一个很好的参考,以获得工作文件。