为什么 .WMV 文件的 MIME 类型是 'video/x-ms-asf' 而不是 'video/x-ms-wmv'?

Why .WMV files have mime type 'video/x-ms-asf' instead of 'video/x-ms-wmv'?

我需要在我正在构建的 Django 网络应用程序中只接受 MP4 视频和 WMV 视频。为此,我会在文件到达服务器后检查文件的 MIME 类型。

据我所知,MP4 文件有 'video/mp4' mime 类型,这正是我在我的网络应用程序上收到的。问题出在 WMV 文件上,根据我发现的每个站点(例如:this and that),它的 mime 类型应该是 'video/x-ms-wmv'。当我在服务器上获取这些文件并使用 python-magic 检查它们时,我得到 'video/x-ms-asf' 作为它的 mime 类型。

我使用不同的在线转换器将一些 youtube 视频转换为 WMV 视频,但结果总是一样。

所以实际上,我不知道我在这里做错了什么。

  1. 也许我有一个问题,WMV 视频也可以有 'video/x-ms-asf' mime 类型,而不仅仅是 'video/x-ms-wmv'
  2. 可能 python-magic 没有正确读取 MIME 类型,我认为情况并非如此。

非常感谢任何帮助。

作为旁注,我使用 python-magic 而不是 django 的 file.content_type 因为第二个不可靠。只需将文件的扩展名更改为错误的扩展名,file.content_type 将给出扩展名 mime 类型而不是真实的。

video/x-ms-asf 是正确的 MIME 类型,因为它是 Windows 包含 "Advanced System Format" 系列名称下的音频和视频的媒体文件的全部。

在 'family' 中,仅音频文件 (.wma) 可以使用 audio/x-ms-wma,而 Video/Audio 文件 (.wmv) 可以使用 video/x-ms-wmv,但针对内容进行了优化对于流式传输,通常引用容器系列而不是 MIME 类型中的文件扩展名。

如果python-magic换行well-knownlibmagic library, the reason is in that libmagic actually can't determine the content of ASF files: https://bugs.astron.com/view.php?id=84