如何将 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
答案 0 :(得分:0)
在录制过程中,.mp4
文件包含ftyp
和wide
个原子,后跟一个mdat
原子,其中附加了视频/音频数据。 mdat
原子尚未设置size
或type
字段。
.mp4.tmp
文件包含一个特定于Wowza的格式,用于存储stbl
(样本表)条目,这些条目可以在录制时附加到其中。此文件中的每个条目都有一个4字节type
字段(stsz
,stts
,stsc
,stco
或stss
),后跟一个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为我需要重新创建原子的结构提供了一个很好的参考,以获得工作文件。