我使用finfo_file和mime_content_type,它在MKV和WMV上返回:应用程序/八位字节流PHP不能确定2这个视频格式?
如果必须使用FFMPEG决定(我不知道它可能或不可能)。那么什么是检查格式的命令。
发布于 2010-12-17 22:12:29
您可以做的一件事是读取文件的前几个字节,以检查它们是否与已知的文件签名相对应。
MKV文件签名特别是(十六进制):
1a 45 df a3至于WMV,它应该是:
30 26 b2 75请参阅以供参考:
Extensible Binary Meta Language
Advanced Systems Format
发布于 2010-12-17 20:45:09
使用文件扩展名:
http://www.php.net/manual/en/function.mime-content-type.php#94279
在Apache上,您只需将条目添加到mime.types文件(Apache/conf/mime.type)。只需使用任意编辑打开该文件,然后添加两行即可。
your/mimetype mkv
another/type mvw 如果您在共享主机上或不想打乱服务器设置,则可以将文件复制到脚本可以访问它的位置,并将路径作为mime_content_type的第二个参数传递。
分析文件内容:
如果你必须验证它是否真的是一个mkv/mvm,有另一个解决方案,但它在共享主机上不起作用:
http://www.php.net/manual/de/function.mime-content-type.php#91646
发布于 2010-12-18 00:11:04
最新版本的magic_mime数据库可以毫无问题地识别mkv/wmv文件。最像你的共享主机有一个古老的数据库版本。
您可以通过执行以下操作强制使用其他数据库文件(包括mkv/wmv定义):
$handle = finfo_open('FILEINFO_MIME_TYPE', '/path/to/updated/database/file').您应该能够从Linux发行版的fileinfo类型的包中提取更新后的数据库文件。
https://stackoverflow.com/questions/4470367
复制相似问题