为什么一些MP4文件的MIME类型是application/octet-stream而不是video/mp4?

6

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

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

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.

有人可以告诉我原因吗?如何处理这个MIME类型呢?使用application/octet-stream的视频文件是正确的MP4文件还是错误的?

1个回答

1
这仍然是 MP4 的正确 MIME 类型。所谓“正确”,指的是它在大多数情况下可以无问题地播放(使用播放器软件,在 HTML 中使用 <video> 标签等)。
一些 Web 服务器没有配置 MIME 类型以提供官方文档中记录的 MIME 类型 video/mp4,因此 Web 服务器将设置 MIME 类型为 application/octet-stream,这是用于二进制文件下载的通用 MIME 类型。
例如,要处理 HTML 中的 application/octet-stream MP4,可以在 <source> 标签中指定 MIME 类型:
<video>
  <source src="video.mp4" type="video/mp4" />
</video>

希望这有所帮助。

更新:

如果您真的担心这些application/octet-stream视频,您可以使用像ffmpeg这样的程序重新渲染它们,以强制更新的视频文件成为video/mp4 MIME类型。


感谢您的回复。我正在为我的一个产品使用paperclip ruby gem。在此之前,我们使用的是版本5.0.0,但是使用mime-type为application/octet-stream的相同mp4视频时,paperclip gem没有报告任何问题。现在我们已经将gem版本更新到6.0.0。现在它报告了mime-type的问题(不匹配-mp4文件应该是video/mp4)。这就是确切的问题。 - ARods
阅读这篇文章 - Raptor
1
对于任何想知道如何转换的人,可以使用以下命令与ffmpeg一起使用: ffmpeg -i broken.mp4 -pix_fmt yuv420p -crf 18 good.mp4 - crazynx
@crazynx 这取决于具体情况。你的命令并不一定适用于所有场景。 - Raptor
我使用媒体录制API从Safari录制了音频,并且它以八进制流的MIME类型给了我一个文件。所以我将其保存为.mp3格式,但是当我尝试使用FFmpeg将其转换为实际的MP3文件时,只转换了1秒钟。 - dhruvin vaghasiya
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接