为啥 .WMV 文件的 mime 类型为“video/x-ms-asf”而不是“video/x-ms-wmv”?
Posted
技术标签:
【中文标题】为啥 .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'?为什么 .WMV 文件的 mime 类型为“video/x-ms-asf”而不是“video/x-ms-wmv”? 【发布时间】:2019-05-09 08:57:10 【问题描述】:我只需要在我正在构建的 Django Web 应用程序中接受 MP4 视频和 WMV 视频。为此,我会在文件到达服务器后检查文件的 MIME 类型。
据我了解,MP4 文件具有“video/mp4”mime 类型,这正是我在我的网络应用程序上收到的内容。问题来自 WMV 文件,根据我发现的每个站点(例如:this 和 that)应该将“video/x-ms-wmv”作为 mime 类型。当我在服务器上获取这些文件并使用 python-magic
检查它们时,我得到 'video/x-ms-asf' 作为它的 mime 类型。
我使用不同的在线转换器将一些 youtube 视频转换为 WMV 视频,但结果始终相同。
所以实际上,我不知道我在这里做错了什么。
-
也许我有一个问题,WMV 视频也可以有“video/x-ms-asf”mime 类型,而不仅仅是“video/x-ms-wmv”
也许
python-magic
没有正确读取mime 类型,我认为这几乎不会发生。
非常感谢任何帮助。
作为旁注,我使用 python-magic
而不是 django 的 file.content_type
,因为第二个不可靠。只需将文件的扩展名更改为错误的扩展名,file.content_type
就会给出扩展名 mime 类型而不是真实的。
【问题讨论】:
【参考方案1】:video/x-ms-asf
是正确的 MIME 类型,因为它是包含“高级系统格式”系列名称下的音频和视频的 Windows Media 文件的统称。
在“系列”中,纯音频文件 (.wma) 可以使用 audio/x-ms-wma
,视频/音频文件 (.wmv) 可以使用 video/x-ms-wmv
,但对于针对流式传输优化的内容,通常会引用容器系列而不是 MIME 类型中的文件扩展名。
【讨论】:
【参考方案2】:如果python-magic
包装了众所周知的libmagic
库,原因在于libmagic
实际上无法确定ASF 文件的内容:https://bugs.astron.com/view.php?id=84
【讨论】:
以上是关于为啥 .WMV 文件的 mime 类型为“video/x-ms-asf”而不是“video/x-ms-wmv”?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Urlmon.dll 中的 FindMimeFromData 函数为许多文件类型返回 MIME 类型“application/octet-stream”?
为啥 Urlmon.dll 中的 FindMimeFromData 函数为许多文件类型返回 MIME 类型“application/octet-stream”?
为啥 Urlmon.dll 中的 FindMimeFromData 函数为许多文件类型返回 MIME 类型“application/octet-stream”?
为啥 Urlmon.dll 中的 FindMimeFromData 函数为许多文件类型返回 MIME 类型“application/octet-stream”?