如何将每帧数据存储在可以通过Matlab打开的iOS电影文件中?

Posted

技术标签:

【中文标题】如何将每帧数据存储在可以通过Matlab打开的iOS电影文件中?【英文标题】:How to store per frame data in a movie file on iOS that can be opened by Matlab? 【发布时间】:2013-02-18 01:37:48 【问题描述】:

我正在对 iPhone 上的相机输出执行只能在设备上执行的处理。我现在需要将每个处理过的帧与处理步骤提供的一些附加信息一起存储。最终我需要在 Matlab 中打开数据进行进一步分析。

目前我使用 AVAssetWriter 编写一个 mov 文件并同时构建一个单独的 data.txt 文件,我在每次录制结束时通过电子邮件发送给自己。

这个过程很不愉快,因为这意味着我每次录制东西时都必须下载 data.txt 文件。然后我必须从手机中导入电影文件(我显然不能通过电子邮件发送电影文件,因为它对于电子邮件来说太大了),然后我必须给它们两个通用名称。

是否有 ios 支持的视频格式,并且我可以在 Matlab 中打开它来获取每帧数据和元数据?有没有比我现在做的更好的方法?我看到有一个 AVMediaTypeText 但我没有找到它的示例代码,我怀疑我可以将它交错到一个 mov 文件中......

【问题讨论】:

mathworks.com.au/help/matlab/ref/videoreaderclass.html - 显然你可以打开 .mov 文件。 @F*** Tamp 我知道如何打开 mov 文件。我希望能够保存单个视频格式并在 matlab 中打开电影文件,并能够同时获取机器人图像数据和每帧元数据,而不是我上面描述的冗长过程。 ...明白了,我现在明白你的问题了。对此感到抱歉。 【参考方案1】:

在我看来,您应该创建一个“元文件”,其中包含有关电影名称和位置的信息 - 然后将元文件的名称传递给 matlab,从该元文件中它可以访问所有元数据并确定要使用的电影文件打开。换句话说 - 扭转问题:不是将元数据添加到 mov,而是将 mov 信息添加到元文件。

我认为这可以解决您提到的 90% 的问题?

【讨论】:

这是我最初的解决方案,但我不知道如何以编程方式获取电影文件的名称。我可以得到它的 NSURL 但这似乎不包括它的文件名... 这很奇怪。您能否在创建新资产之前和之后立即获得 NSURL 的目录列表,并从差异中推断出文件名?或者为给定文件创建一个唯一位置 - 这样您就知道该位置中的唯一文件就是您想要的文件。这似乎是一个可怕的黑客......

以上是关于如何将每帧数据存储在可以通过Matlab打开的iOS电影文件中?的主要内容,如果未能解决你的问题,请参考以下文章

Matlab:如何将“fitcecoc”的输出存储在数据库中

如何打开mat文件

Qt SQLite 批量插入优化(SQLite默认将每条语句看成单独的事务)good

matlab中,如何将.txt格式文件转换成.mat格式文件

如何逐行读取文本文件并使用android将每一行存储在数组中?可以在android中读取xls文件吗?

COSBrowser iOS 版 | 如何不打开 App 查看监控数据?