【发布时间】:2010-01-25 22:00:06
【问题描述】:
我遇到了一些示例代码,其中添加了一组图像来制作 QTmovie。
我的目标是针对没有任何 QT 框架的 OS X 平台。 我有一个想法,即创建一个带有扩展名的文件并将其嵌入适当的元数据,并找到一种以所需格式插入图像和音频的方法。因此,当文件被创建时,它可以简单地播放。
我不确定哪种格式/扩展名更好。 非常感谢指针。
【问题讨论】:
标签: iphone cocoa-touch
我遇到了一些示例代码,其中添加了一组图像来制作 QTmovie。
我的目标是针对没有任何 QT 框架的 OS X 平台。 我有一个想法,即创建一个带有扩展名的文件并将其嵌入适当的元数据,并找到一种以所需格式插入图像和音频的方法。因此,当文件被创建时,它可以简单地播放。
我不确定哪种格式/扩展名更好。 非常感谢指针。
【问题讨论】:
标签: iphone cocoa-touch
如果没有 QuickTime(或等效的多媒体框架),您所描述的工作量相当大。通常,您将使用视频压缩算法(例如 H.264)将图像编码为视频,并使用音频压缩算法(例如 AAC)对音轨进行编码。然后,您可以将这些流写入容器文件,例如 MPEG-4 文件,该文件交织流以进行播放,包含元数据和索引等。然后为了播放,您解析文件,解码视频和音频数据,并安排它们播放,注意保持同步。
QuickTime 会为您完成所有这些(以及更多)工作,而自己编写这一切将是一项艰巨的任务。您在 OS X 上运行但无法使用 QuickTime 是否有某些原因?
鉴于问题是用 iPhone 标记的,为什么不能只使用 QTKit?
如果您必须从头开始,您可以采用一个非常简单的解决方案,将您的图像序列存储为一组 JPEG 文件(但您需要 libjpeg;如果必须,请使用原始 RGB 或 PPM) ,音轨作为原始WAV数据,然后有另一个文件(您定义的文本文件)存储时间信息,因此您只需流式传输音频,并将图像的帧号与其相应的时间码一起存储/样本偏移。这是一个非常简单的解决方案,无需太多努力即可实现。
如果您对您想要实现的目标提供更多想法,我们可以提供一些更具体的建议。
【讨论】:
QTTrack 并使用 addImage:forDuration:withAttributes: 添加您的图像,将您的音频添加为另一个轨道,然后将其保存。
如果您想编写一个程序来执行此操作,您可以使用 Java 中的Xuggler 来执行此操作。它将允许您以几乎任何媒体播放器都可以播放的格式保存最终视频。
首先通过Overly Simplistic Guide to Internet Video了解视频文件(例如 MP4、Quicktime)如何实际表示音频和视频。
然后,使用MediaTool tutorials。您可以编写将原始图像制作成视频文件的程序(参见sample code)。最后,要编写一个使音频和视频同步的程序,请参阅this tutorial;它会生成一组图像,并在球碰到盒子边缘时发出一些定时变化的音频噪音。
希望对您有所帮助。
艺术
【讨论】: