【问题标题】:Creating video file from images and audio( pre-recorded )从图像和音频创建视频文件(预先录制)
【发布时间】:2010-01-25 22:00:06
【问题描述】:

我遇到了一些示例代码,其中添加了一组图像来制作 QTmovie。

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

我不确定哪种格式/扩展名更好。 非常感谢指针。

【问题讨论】:

    标签: iphone cocoa-touch


    【解决方案1】:

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

    QuickTime 会为您完成所有这些(以及更多)工作,而自己编写这一切将是一项艰巨的任务。您在 OS X 上运行但无法使用 QuickTime 是否有某些原因?

    鉴于问题是用 iPhone 标记的,为什么不能只使用 QTKit?

    如果您必须从头开始,您可以采用一个非常简单的解决方案,将您的图像序列存储为一组 JPEG 文件(但您需要 libjpeg;如果必须,请使用原始 RGB 或 PPM) ,音轨作为原始WAV数据,然后有另一个文件(您定义的文本文件)存储时间信息,因此您只需流式传输音频,并将图像的帧号与其相应的时间码一起存储/样本偏移。这是一个非常简单的解决方案,无需太多努力即可实现。

    如果您对您想要实现的目标提供更多想法,我们可以提供一些更具体的建议。

    【讨论】:

    • 感谢您的及时回复。我有一组来自应用程序的图像,应用程序允许用户选择音频文件。我的任务只是用这些创建一个视频文件。然后上传文件。此文件应与其他视频播放器兼容(基本格式)。我不想为文件实现我自己的播放器。是的,这适用于手机(优先考虑 iPhone)
    • 对视频使用 H.264,对音频使用 AAC,对容器使用 M4V (MPEG-4) 应该可以为您提供最广泛的支持。这是 QuickTime 和 iPhone 的首选格式,并且最新版本的 Flash 也支持这种格式。如果您可以使用 QuickTime 创建它们,请查看 QTKit API,您可以在其中创建 QTTrack 并使用 addImage:forDuration:withAttributes: 添加您的图像,将您的音频添加为另一个轨道,然后将其保存。
    • 太棒了!我想我需要更详细地研究这些。感谢您的指导。任何可用的在线帮助?
    • 当然,QTKit 参考文献是 developer.apple.com/mac/library/documentation/QuickTime/…,您可能想阅读一些介绍性文档,例如 developer.apple.com/quicktime/qtkit.html
    • 嗨,我也想在 iphone 上开发类似的东西。我有图像我也有音频。但我无法了解如何合并它们并从中制作视频文件。 ? iPhone 上没有 QuickTime :(
    【解决方案2】:

    如果您想编写一个程序来执行此操作,您可以使用 Java 中的Xuggler 来执行此操作。它将允许您以几乎任何媒体播放器都可以播放的格式保存最终视频。

    首先通过Overly Simplistic Guide to Internet Video了解视频文件(例如 MP4、Quicktime)如何实际表示音频和视频。

    然后,使用MediaTool tutorials。您可以编写将原始图像制作成视频文件的程序(参见sample code)。最后,要编写一个使音频和视频同步的程序,请参阅this tutorial;它会生成一组图像,并在球碰到盒子边缘时发出一些定时变化的音频噪音。

    希望对您有所帮助。

    艺术

    【讨论】:

    • 感谢克拉克,我现在将这个应用程序用于 iPhone。所以java不是一个选项。编码和视频文件创建必须在设备本身上,以便它在桌面等上兼容。所以我要选择 H.264。我可以在 Xcode 中使用任何 C 库或框架来实现这一点吗?
    • FFmpeg 是在 C 语言中的最佳选择(没有什么比这更接近了)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多