php m4a文件头,PHP finfo将m4a音频检测为视频

标签:php

在2个不同的AMP服务器(一个Linux,一个Windows)上,PHP的finfo函数为m4a音频文件返回一个“视频/ mp4”的哑剧类型.

$path = '/path/to/some/audio.m4a';

$finfo = finfo_open(FILEINFO_MIME_TYPE);

$mime = finfo_file($finfo, $path);

print $mime; // video/mp4

我相信可以使用Apache的mime.types文件来控制它,但是在找到“ audio / mp4”行并添加m4a扩展名之后:

audio/mp4 mp4a m4a

并重新启动Apache,它仍然报告video / mp4.

如何获取finfo来检测.m4a音频文件的正确(音频)MIME类型?

TYIA.

解决方法:

所使用的“魔术”文件与Apache无关.它被用作table of file signatures,并且取决于您的系统,它是随PHP一起分发的“ magic”文件(大多数时间,PHP目录中的magic或magic.mime),或者系统的“ magic”文件(由07​​001使用)在Unix上).

您还可以要求使用特定的“魔术”文件,如下所示:

$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic.mgc");

?>

您可以更改系统的“魔术”文件,也可以进行自定义.

00 00 00 18 66 74 79 70

33 67 70 35 ....ftyp

3gp5

MP4 MPEG-4 video files

00 00 00 18 66 74 79 70

6D 70 34 32 ... ftyp

mp42

M4V MPEG-4 video/QuickTime file

00 00 00 20 66 74 79 70

4D 34 41 20 ... ftyp

M4A

M4A Apple Lossless Audio Codec file

您可能需要首先检查这些文件是否在您的“魔术”文件中.

据我所知,m4a(音频)和m4v(视频)可能具有相同的mp4签名(由于编码器不正确),因此,您无法始终使用“魔术”文件来区分两者.然后,您可以放一些PHP代码,根据文件扩展名(例如Windows)确定是视频mp4还是音频mp4.

标签:php

来源: https://codeday.me/bug/20191127/2076126.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值