【问题标题】:using ffmpeg/ffprobe to create a waveform json using php使用 ffmpeg/ffprobe 创建波形 json 使用 php
【发布时间】:2015-05-05 19:38:17
【问题描述】:

我的服务器上有许多 ogg 和 opus 文件,需要根据需要生成 json 波形数字数组(示例如下)。

最近我发现了基于节点的waveform-util,它使用 ffmpeg/ffprobe 来渲染 JSON 波形,并且效果很好。我不确定是否让节点进程不断运行是解决我的问题的最佳解决方案。

由于 ffmpeg 似乎能够处理任何我可以扔给它的东西,我希望坚持使用 ffmpeg 解决方案。

我有三个问题:

1) 是否有 php 等价物?我找到了一对生成 PNG 图像但没有生成 JSON 波形数字数组的一对

2) 使用基于节点的解决方案而不是基于 php 的解决方案有什么显着优势(假设有基于 php 的解决方案)?

3) 有没有办法使用 CLI ffmpeg/ffprobe 生成 json-waveform ?我看到了所有的 -show_ 选项(-show_data、-show_streams、-show_frames),但没有任何东西看起来像它产生了我正在寻找的东西。

json-waveform 需要采用这种格式:

[ 0.0002, 0.001, 0.15, 0.14, 0.356 ....]

谢谢大家。

【问题讨论】:

  • stackoverflow.com/questions/6807388/… - micha 发布了非常有趣的使用节点 CGI 的想法。
  • 更新:节点 CGI 运行良好。但我仍然想知道是否有 PHP 解决方案。另外,我仍然对 CLI 问题很感兴趣。
  • 你能找到如何生成这种格式的 json-waveform [0.0002, 0.001, 0.15, 0.14, 0.356 ....]??
  • hi nd17 - 我担心这个超出了我的范围,我放弃了。可能有一种简单的方法可以仅使用 ffmpeg 获取此信息,但我不知道那会是什么。

标签: php node.js ffmpeg ffprobe


【解决方案1】:

这听起来好像与我的服务器处理 cgi 的方式有冲突。我正在使用 virtualmin 并使用以下设置:

PHP 脚本执行模式:CGI 包装器(以虚拟服务器所有者身份运行)

经过大量研究,似乎使用纯 node.js 比使用 shell 可执行文件更轻量级。我仅仅通过放置一条 schbang 行来调用 node 就能够取得一些成功,但是让 node.js 脚本始终驻留在内存中可能是要走的路。

【讨论】:

    猜你喜欢
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    相关资源
    最近更新 更多