2009-12-14 112 views
1

我遇到了一些示例代码,其中添加了一组图像以制作QTmovie。从图像和音频创建视频文件(预先录制)

我针对的是没有任何QT框架的OS X平台。 我有一个想法是创建一个扩展名的文件,并将其嵌入适当的元数据,并找到一种方法来插入所需格式的图像和音频。所以当文件被创建时,它可以被简单地播放。

我不确定什么格式/扩展是更好的。 指针非常感谢。

回答

0

没有QuickTime(或等效的多媒体框架),你描述的是相当多的工作。通常情况下,您将使用视频压缩算法(如H.264)将图像编码为视频,并使用音频压缩算法(如AAC)对音频轨道进行编码。然后,您可以将这些流写入容器文件中,如MPEG-4文件,这些文件交错播放流,包含元数据和索引等。然后为了回放,您解析文件,解码视频和音频数据,并安排它们播放,注意保持它们同步。

QuickTime为您完成所有这些工作(以及更多),您自己写这一切将是一项巨大的任务。有什么理由你为什么在OS X上运行,但不能使用QuickTime?

鉴于问题标记为iPhone,为什么你不能只使用QTKit?如果你不得不从头开始,你可以采用一个非常简单的解决方案,将图像序列存储为一组JPEG文件音轨作为一个原始的WAV数据,然后有另一个文件(你定义的一个文本文件)存储时间信息,所以你只需简单地输出音频,并将图像的帧号与相应的时间码/采样抵消。这是一个非常简单的解决方案,可以在没有太多努力的情况下进行工作。

如果你给我们更多关于你想要达到的目标的想法,我们可以提供一些更具体的建议。

+0

感谢您的及时回复。 我有一套应用程序和应用程序的图像允许用户选择一个音频文件。我的任务就是创建一个视频文件。 然后文件被上传。这个文件应该与其他视频播放器兼容(基本格式)。我不想实现我自己的文件播放器。 是的,这是为手机(优先iPhone) – user219393 2009-12-14 11:26:18

+0

使用H.264的视频,音频AAC和容器M4V(MPEG-4)应该给你最广泛的支持。这是QuickTime和iPhone的首选格式,并且最近版本的Flash也支持这种格式。如果您可以使用QuickTime创建它们,请查看QTKit API,您可以在其中创建“QTTrack”并添加图像addImage:forDuration:withAttributes:,将音频添加为另一个轨道,然后将其保存。 – gavinb 2009-12-14 11:45:33

+0

太棒了!我想我需要更详细地研究这些。感谢您的指导。任何在线帮助可用? – user219393 2009-12-14 12:42:57

0

如果你想编写一个程序来做到这一点,你可以在Java中使用Xuggler来做到这一点。它将允许您以几乎所有媒体播放器可播放的格式保存最终视频。

首先了解视频文件(例如MP4,Quicktime)如何实际用这个Overly Simplistic Guide to Internet Video代表音频和视频。然后,玩弄MediaTool tutorials。您可以编写将原始图像制作成视频文件的程序(请参见此sample code)。最后,要编写一个使音频和视频同步的程序,请参见this tutorial;它会生成一组图像,并在球击中盒子边缘时发出一些定时更改的音频噪声。

希望有所帮助。

艺术

+0

谢谢克拉克, 我现在针对iPhone的这个应用 所以java不是一个选项。编码和视频文件创建必须在设备本身上,以便它在桌面上兼容,等等所以我打算使用H.264。 有没有我可以在Xcode中使用的C库或框架来实现这一目标? – user219393 2009-12-15 10:29:48

+0

FFmpeg是C语言中的一种方式(没有其他东西甚至接近)。 – 2009-12-17 19:42:00