6

我正在尝试从 Smooth Streaming 服务器重建视频文件。Smooth Streaming 提供 fMP4 文件,这些文件是常规 MP4 文件,既没有 FTYP 也没有 MOOV 原子。

存储在这些原子中的所有信息都放入我拥有的 Manifest XML 文件中。

有没有办法以编程方式重建原始 MP4 文件,方法是:

  • 直接从位于 MDAT 中的 H264/AAC 内容(和图片格式信息)重建新文件;或者
  • 重建 FTYP 和 MOOV 原子

或者,有没有可以合并fMP4的工具?

4

2 回答 2

3

是的。这是完全可能的。

你可以用 FFmpeg 做到这一点。从 libavformat 研究 mov.c [MP4 demuxer]。

您将需要使用 fMP4 中“丢失”的所有数据来完成内存中的 MP4。换句话说,当你需要一个 fMP4 [几乎所有] 中不存在的原子时,你将不得不输入所有硬编码的信息(这些信息,大部分来自清单)。

这并不容易……但肯定有可能。我自己做过。不幸的是,代码不是我的财产。

祝你好运!;-)

更新: PIFF 格式规范将非常有用(http://go.microsoft.com/?linkid=9682897),因此人们可以了解 fMP4 中已有的内容和没有的内容!

于 2012-08-27T14:02:30.240 回答
0

如果存在与碎片化的mp4文件相关的ism和ismc文件,则重建mp4文件很简单。

要求您了解每个 trak 的媒体类型、编解码器类型、编解码器特定数据和时间尺度,以重建 moov 和 ftyp 原子。

这些信息可以从 ism 和 ismc 文件中检索。

您可以从 ism 文件中检索每个轨道的媒体类型。您可以从 ismc 文件中检索编解码器类型、编解码器特定数据和每个轨道的时间刻度。

简单来说,ism/ismc 文件是服务器和客户端的元数据,因此您可以为 mp4 文件重建元数据(ftyp、moov atom)。

于 2013-12-19T02:53:45.970 回答