【问题标题】:Creating a Motion JPEG frame by frame with variable frame-rate以可变帧速率逐帧创建 Motion JPEG
【发布时间】:2012-03-06 12:48:49
【问题描述】:

我正在分析我手头的问题的一些解决方案:我正在从设备接收图像,我需要从中制作视频文件。但是,图像到达时会有一些随机延迟,我正在寻找最好的编码方式。我必须逐帧创建此视频,并且在每一帧之后,我必须有一个带有新帧的新视频文件,替换旧视频文件。

我正在考虑将帧速率固定为比我可能获得的最小延迟“更快”一点,然后重复最后一帧直到新的帧到达,但我猜这个解决方案不是最佳的。

另外,这个项目是用 Delphi 制作的(不,我不能改变它),我需要在每一帧之后将这些帧转换成视频文件。我正在考虑使用mencoder 作为外部工具,但我正在阅读文档,但仍然没有找到一个选项来让它在已经编码的 Motion JPEG 视频文件中插入帧。由于我的图像以 JPEG 格式出现,我认为使用 Motion JPEG 是合理的,但目前还不确定。另外,我不知道 mencoder 是否可以用作库。如果这样做,将有很大帮助。

你有什么建议?

【问题讨论】:

    标签: delphi video jpeg mjpeg mplayer


    【解决方案1】:

    有一些媒体容器格式支持variable frame rate,但由于存储开销,我认为 MJPEG 不是一个好的选择。我相信最好的方法是同时使用 I 帧和 P 帧将 JPEG 帧转码为 MP4 格式。

    您可以使用FFMPEG Delphi/FP header files进行转码。

    编辑:

    最新版本的 FFMPEG 标头可以在 GLScene repository on SourceForge.net 找到。要查看文件,您可以使用this link

    【讨论】:

    • 哇,我也迫切需要这样的东西。仔细看avformat-??.dll的版本号。从提供的链接中,您将获得版本 50,而代码指定为 52。接下来,您需要下载 swscale-0.dll,您可以从 dll-file-download.com/dll-files/… 下载它。我会进一步试验,如果有人让它工作我有兴趣听到。
    • 实际上,我可以在 SourceForge.net 上的 GLScene 存储库中找到与最新 DLL 匹配的最新版本。 SVN查看链接为:glscene.svn.sourceforge.net/viewvc/glscene/branches/…
    • 好吧,avcodec 需要 ctypes 并且需要更多我在 sourceforge 上找不到的连续文件。好像少了点什么,有什么想法吗?
    • 转到gtk.org/download/win32.php 然后下载所需的包。如果您不确定,请从ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/…下载一体式捆绑包
    • 恐怕这行不通。它不包含 cTypes、cUtils 等所需的功能。我现在放弃了。非常感谢您的时间和建议。我会以更笼统的方式问同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多