【问题标题】:PHP ffmpeg fetch metadata missing title, author, comment, artistPHP ffmpeg 获取元数据缺少标题、作者、评论、艺术家
【发布时间】:2012-04-01 16:39:36
【问题描述】:

我一直在尝试使用 php5-ffmpeg 扩展来获取远程 mp3(和其他格式)元数据。

虽然我总是缺少标题、作者、评论、艺术家详细信息,但它正在工作。

我一直在网上搜索答案,但没有找到任何解决方案。

我确实找到了这个补丁http://cvs.pld-linux.org/cgi-bin/viewvc.cgi/cvs/packages/php-ffmpeg/tests-metadata-api.patch,我认为它可以解决问题,但是即使没有补丁我也无法编译 php-ffmpeg,因此无法确定它是否可以解决问题。

似乎这个扩展在几年前就被放弃了,所以我对让它发挥作用并不抱太大希望。

有人知道如何使用其他工具从音频视频文件中获取远程元数据吗?

我正在考虑使用“-i”选项解析 ffmpeg itelf 的输出,因为这确实返回了正确的元数据。出于安全原因,在 PHP 中调用 exec 有点谨慎。

【问题讨论】:

  • 为了它的价值,我也只是用exec() 调用FFMPEG。但是,我这样做主要是因为我一直无法正确构建/安装 PHP 扩展。部分原因与托管我的服务器的人有关,但最后,致电exec() 似乎总是容易得多。只需验证您传递给它的任何参数,就可以了。
  • 我也在我的服务器上使用 exec(),即使是基于用户请求的 wget(获取文件)(因为它们可以在后台运行而无需 php 等待)。在那种情况下,我将函数本身不是放在 public_html 中,而是放在由脚本或 crontab 包含/需要或执行的某些路径中。我也让它尽可能静态,只有函数需要的必要变量。人们可以做坏事的唯一方法是登录我的 ftp 并更改它 - 这在任何时候都不应该是可能的:)
  • 很公平,感谢到目前为止的 cmets。我只是要做类似的事情并解析 ffmpeg 输出本身。如果我知道更多 C 语言,我可能会尝试自己修复 PHP 扩展。也许我应该学习!

标签: php ffmpeg metadata


【解决方案1】:

在尝试了网络上的其他一些旧代码后,我找到了解决此问题的方法。

查看https://github.com/char0n/ffmpeg-php 以获取基于 OO PHP 的包装 ffmpeg 的解决方案。它消除了对 php-ffmpeg 的需求,它一直在为我工作。

我只对检索远程文件信息感兴趣,并且必须对其进行非常小的修改才能使用远程文件,但它运行良好,现在可以执行以下操作并返回正确的信息!

$movie = new FFmpegMovie('URI');
$title = $movie->getTitle();
$author = $movie->getAuthor();

如果您想获取远程信息,请在此处查看我的 fork:https://github.com/chrismacp/ffmpeg-php

我确实在我的 fork 中添加了命名空间,并删除了自动加载器和旧的 php-ffmpeg 适配器,以防万一您需要该功能或正在运行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    相关资源
    最近更新 更多