为什么某些 MP4 文件的 mime-type 是 application/octet-stream 而不是 video/mp4?

ARo*_*ods 6 video ruby-on-rails paperclip-validation

为什么某些 MP4 文件的 mime-type 是 application/octet-stream 而不是 video/mp4?

我已经在终端 (CLI) 中使用文件命令进行了检查

user@anto:~/Videos/VTB$ file --mime-type -b GDPR.mp4 
video/mp4
user@anto:~/Videos/VTB$ file --mime-type -b Test-vid1.mp4 
application/octet-stream
user@anto:~/Videos/VTB$ file --mime-type -b SampleVideoLarge.mov 
video/quicktime
user@anto:~/Videos/VTB$ file --mime-type -b SampleVideo21.mp4 
video/mp4
user@anto:~/Videos/VTB$ file --mime-type -b VTBSample-new.mp4 
application/octet-stream.
Run Code Online (Sandbox Code Playgroud)

谁能告诉我原因吗?如何处理这种哑剧类型。带有application/octet-stream 的视频文件是正确的 mp4 文件还是错误的文件?

Rap*_*tor 1

它仍然是 MP4 的正确 MIME 类型。<video>如果说“正确”,则在大多数情况下(使用播放器软件、使用HTML 中的标签播放等)都可以毫无问题地播放。

某些 Web 服务器没有配置 MIME 类型来提供官方记录的 MIME 类型,因此 MIME 类型将由Web 服务器video/mp4设置为,这是用于二进制文件下载的通用 MIME 类型。application/octet-stream

例如,要处理application/octet-streamHTML 中的 MP4,您可以在<source>标记中指定 MIME 类型:

<video>
  <source src="video.mp4" type="video/mp4" />
</video>
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。


更新:

如果您确实关心这些视频,您可以使用诸如强制更新的视频文件为 MIME 类型之类的application/octet-stream程序重新渲染它们。ffmpegvideo/mp4