我需要在正在构建的Django网络应用中仅接受MP4视频和WMV视频。为此,一旦文件到达服务器,我将检查文件的mime类型。
据我了解,MP4文件具有“ video / mp4” mime类型,这正是我在Web应用程序上收到的。问题来自WMV文件,根据我发现的每个网站(例如:this和that),MIME类型应该为“ video / x-ms-wmv”。当我在服务器上获取此文件并使用python-magic
检查它们时,会得到'video / x-ms-asf'作为其mime类型。
我已使用不同的在线转换器将一些youtube视频转换为WMV视频,但结果始终相同。
实际上,我不知道我在做什么错。
python-magic
不能正确读取mime类型,我认为情况并非如此。任何帮助深表感谢。
作为旁注,我使用python-magic
而不是django的file.content_type
,因为第二个不可靠。只需将文件的扩展名更改为错误的扩展名,file.content_type
就会给出扩展名mime类型,而不是真实的扩展名。
答案 0 :(得分:1)
video/x-ms-asf
是正确的MIME类型,因为它是包含“高级系统格式”系列名称下的音频和视频的Windows Media文件的全部内容。
在“家庭”中,仅音频文件(.wma)可以使用audio/x-ms-wma
,而视频/音频文件(.wmv)可以使用video/x-ms-wmv
,但是对于经过流媒体优化的内容,通常引用容器系列而不是MIME类型的文件扩展名。
答案 1 :(得分:0)
如果python-magic
包装了著名的libmagic
库,则原因是libmagic
实际上无法确定ASF文件的内容:https://bugs.astron.com/view.php?id=84