PHP:如何检查电影格式是MKV还是WMV
我使用 finfo_file 和 mime_content_type,它在 MKV 和 WMV 上返回: 应用程序/八位字节流 PHP无法确定2这种视频格式?
是否必须使用 FFMPEG 确定(我不知道可能与否)。那么检查格式的命令是什么。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以做的一件事是读取文件的前几个字节以检查它们是否对应于已知的文件签名。
特别是 MKV 文件签名是(十六进制):
至于 WMV 应该是:
请参见参考:
可扩展二进制元语言
高级系统格式
One thing you could do is to read the first few bytes of the file to check if they correspond to known file signatures.
The MKV file signature, in particular, is (in hex):
As for WMV it should be:
See for reference:
Extensible Binary Meta Language
Advanced Systems Format
使用文件扩展名:
http ://www.php.net/manual/en/function.mime-content-type.php#94279
在 Apache 上,您只需将条目添加到 mime.types 文件(Apache/conf/mime.php)。类型)。
只需使用任何编辑器打开文件并添加两行即可。
如果您位于共享主机上或者不想弄乱服务器设置,则可以将文件复制到脚本可以访问它的位置,并将路径作为 mime_content_type 的第二个参数传递。
分析文件内容:
如果您必须验证它是否真的是 mkv/mvm,还有另一种解决方案,但它不适用于共享主机:
http://www.php.net/manual/de/function.mime-content-type.php#91646< /a>
Using the file extension:
http://www.php.net/manual/en/function.mime-content-type.php#94279
On Apache you just have to add to entrys to the mime.types file (Apache/conf/mime.types).
Just open the file with any edito and add two lines.
If you are on a shared host or do not want to mess with the server settings, you can copy the file to a location where your script can access it, and pass the path as second parameter of mime_content_type.
Analysing the file content:
If you have to validate if it REALLY is a mkv/mvm there is another sollution but it wont work on shared hosts:
http://www.php.net/manual/de/function.mime-content-type.php#91646
最新版本的 magic_mime 数据库可以毫无问题地识别 mkv/wmv 文件。就像您的共享主机有一个古老版本的数据库一样。
您可以通过执行以下操作强制使用不同的数据库文件(包含 mkv/wmv 定义):
您应该能够从 Linux 发行版的 fileinfo-type 包中提取更新的数据库文件。
Recent versions of magic_mime database can identify mkv/wmv files without trouble. Most like your shared host has an ancient version of the database.
You can force the use of a different database file (with the mkv/wmv definitions included) by doing:
You should be able to extract the updated database file from an Linux distro's fileinfo-type package.