2

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

据我了解,MP4 文件具有“video/mp4”mime 类型,这正是我在我的网络应用程序上收到的。问题出在 WMV 文件上,根据我发现的每个站点(例如:thisthat),该文件的 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 类型而不是真实的扩展名。

4

2 回答 2

2

video/x-ms-asf是正确的 MIME 类型,因为它是包含“高级系统格式”系列名称下的音频和视频的 Windows Media 文件的统称。

在“系列”中,仅音频文件 (.wma) 可以使用audio/x-ms-wma,视频/音频文件 (.wmv) 可以使用video/x-ms-wmv,但对于为流式传输优化的内容,通常引用容器系列而不是 MIME 类型中的文件扩展名.

于 2018-12-07T20:51:30.837 回答
0

如果python-magic包装知名libmagic库,原因在于libmagic实际上无法确定 ASF 文件的内容:https ://bugs.astron.com/view.php?id=84

于 2019-06-10T10:49:15.130 回答