Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检测MOV文件';持续时间_C#_Quicktime_Duration_Clip_Mov - Fatal编程技术网

C# 检测MOV文件';持续时间

C# 检测MOV文件';持续时间,c#,quicktime,duration,clip,mov,C#,Quicktime,Duration,Clip,Mov,我有一个用C#编写的客户端应用程序,想读取MOV文件的持续时间。我必须在Windows窗体中创建并托管Quicktime COM控件,然后在其中加载电影并获取持续时间。这在我的情况下是不可行的,因为客户端应用程序不是windows窗体应用程序 另一种方法是打开MOV文件raw,检查字节,直到超过剪辑的电影头原子('mvhd')12个字节,并从中获取时间刻度和持续时间,我实际上已经这样做了。我对这种黑客行为感到不舒服,因为如果苹果将来改变文件格式,它可能不会起作用 我宁愿避免将MOV加载到控件,因

我有一个用C#编写的客户端应用程序,想读取MOV文件的持续时间。我必须在Windows窗体中创建并托管Quicktime COM控件,然后在其中加载电影并获取持续时间。这在我的情况下是不可行的,因为客户端应用程序不是windows窗体应用程序

另一种方法是打开MOV文件raw,检查字节,直到超过剪辑的电影头原子('mvhd')12个字节,并从中获取时间刻度和持续时间,我实际上已经这样做了。我对这种黑客行为感到不舒服,因为如果苹果将来改变文件格式,它可能不会起作用


我宁愿避免将MOV加载到控件,因为我只想获取剪辑的持续时间,而不想获取其他内容。理想情况下,我需要提供一个字符串,其中包含mov文件到应用程序的路径,并获得这样的持续时间。有人使用非托管代码吗?

读取原始文件是正确的方法。

读取原始文件是正确的方法。

首先,没有处理特殊文件格式的“内置”方法。您必须自己解析文件,或者让一些组件来为您解析文件

事实上,只要代码遵循文档,解析就不是一种黑客行为。您应该获得(对于某些公司,购买)官方的格式规范,并根据规范解析文件头。这些规范是强制性的,因此您不应该期望同一文件类型的格式发生更改

你可以试着找到一个能帮你做这件事的组件。包含用于显示电影的控件的库也可能包含一些实用程序类。当然,组件将以与您完全相同的方式解析标头,因此如果Quicktime格式发生更改(我个人对此表示怀疑),所有组件都将以相同的方式失败。

首先,没有“内置”方式来处理特殊的文件格式。您必须自己解析文件,或者让一些组件来为您解析文件

事实上,只要代码遵循文档,解析就不是一种黑客行为。您应该获得(对于某些公司,购买)官方的格式规范,并根据规范解析文件头。这些规范是强制性的,因此您不应该期望同一文件类型的格式发生更改


你可以试着找到一个能帮你做这件事的组件。包含用于显示电影的控件的库也可能包含一些实用程序类。当然,组件将以与您完全相同的方式解析头部,因此如果Quicktime格式发生变化(我个人对此表示怀疑),所有组件都会以同样的方式出现故障。

还有另一种很好的方法可以做到这一点,如果您想要查找quicktime.mov文件和其他媒体容器的持续时间或其他信息,可以选择后者来改进您的应用程序:使用MediaInfo.dll,您可以在项目中引用它并查找持续时间加上媒体文件的几乎所有其他方面。

还有另一种很好的方法,如果您想查找quicktime.mov文件加上其他媒体容器的持续时间或其他信息,可以选择后者来改进应用程序:使用MediaInfo.dll,您可以在项目中引用它并找到持续时间以及媒体文件的几乎所有其他方面。

对于阅读本文的未来用户,您可以从以下链接找到描述.mov文件格式的Apple Quick Time文件格式文档:

:


对于阅读本文的未来用户,您可以从以下链接找到描述.mov文件格式的Apple Quick Time文件格式文档:

:


为什么不能在非Windows窗体应用程序中使用相同的COM对象?或者它只是一个控件?它是一个控件,因此需要一个主机才能“生存”。考虑到.mov的使用寿命,在这一点上,他们更改标题的可能性不是很小吗?另外,请注意,一定有很多玩家依赖相同的信息。查找用于定义.mov文件布局的文档并从中进行开发。为什么不能在非Windows窗体应用程序中使用相同的COM对象?或者它只是一个控件?它是一个控件,因此需要一个主机才能“生存”。考虑到.mov的使用寿命,在这一点上,他们更改标题的可能性不是很小吗?另外,请注意,一定有很多玩家依赖相同的信息。找到用于定义.mov文件布局的文档,并从中进行开发。您能告诉我如何读取原始文件吗?这只是将文件加载到一个流中并循环通过吗?@AbeMiessler先读一下。你可以在谷歌上搜索规格,我认为ISO/IEC 14496是你正在寻找的,你可以告诉我如何读取原始文件吗?这只是将文件加载到一个流中并循环通过吗?@AbeMiessler先读一下。你可以在谷歌上搜索规格,我想ISO/IEC 14496就是你要找的