我正在尝试从Smooth Streaming服务器重建视频文件。 Smooth Streaming提供fMP4文件,这些文件是常规MP4文件,既没有FTYP也没有MOOV原子。
存储在那些atom中的所有信息都放在一个Manifest XML文件中,我有。
是否可以通过以下方式以编程方式重建原始MP4文件:
否则,是否有可以合并fMP4的工具?
答案 0 :(得分:3)
是。这完全有可能。
你可以用FFmpeg做到这一点。从libavformat研究mov.c [MP4 demuxer]。
您需要在内存中使用fMP4中“缺失”的所有数据完成MP4。换句话说,当你需要fMP4 [几乎所有]中不存在的原子时,你必须输入硬编码的所有信息(这些信息,大多数来自清单)。
这并不容易......但肯定有可能。我自己完成了。不幸的是,代码不是我的财产。
祝你好运! ; - )更新: PIFF格式规范非常有用(http://go.microsoft.com/?linkid=9682897),因此可以了解fMP4中已有的内容以及不适用的内容!
答案 1 :(得分:0)
如果存在与碎片化mp4文件相关的ism和ismc文件,则重建mp4文件很简单。
要求您了解每个trak的媒体类型,编解码器类型,编解码器特定数据和时间刻度,以重建moov和ftyp原子。
可以从ism和ismc文件中检索这些信息。
您可以从ism文件中检索每个曲目的媒体类型。 您可以从ismc文件中检索每个轨道的编解码器类型,编解码器特定数据和时间刻度。
简单来说,ism / ismc文件是服务器和客户端的元数据,因此您可以为mp4文件重建元数据(ftyp,moov atom)。