【问题标题】:Linking PHP audio and video uploads to FFMPEG on a linux server将 PHP 音频和视频上传链接到 Linux 服务器上的 FFMPEG
【发布时间】:2015-12-30 05:38:48
【问题描述】:

我在使用 php 构建的 Linux 服务器上托管了一个站点,我可以在其中将音频文件上传到一个部分,并将视频文件上传到另一个部分。

每个部分使用 php 上传单个音频文件和单个视频文件。每个上传文件都分配有一个唯一的文件名,因此可以在单独的页面上单独查看它们,上传者可以在其中发布有关其音频或视频的 cmets。

我希望能够让当地的音乐家和表演者展示他们的作品。该网站可以正常工作,但无法上传大型视频文件,而且我的音频播放器只能播放几种格式,我喜欢将它们全部转换为 mp3。

我在我的 linux 服务器上安装了 ffmpeg 来帮助我解决这个问题,并且能够通过我的终端连接到它。我的问题是如何让 ffmpeg 与我上传的 php 文件交互。

例如,当用户上传一个音频文件时,我可以让 ffmpeg 在上传时对其进行转换,还是我需要为上传设置一个临时文件夹,将其存储在那里,然后让 ffmpeg 压缩文件,转换它到特定格式并将其保存在另一个文件夹中?

我希望它在上传时压缩并更改格式,以免使用服务器空间,但如果这不是 ffmpeg 的工作方式,那么我别无选择。任何帮助,将不胜感激。

【问题讨论】:

标签: php linux audio video ffmpeg


【解决方案1】:

大约 4 年前,我曾经有机会从事这项工作。我仍然记得我是怎么做到的。 我安装了 ffmpeg,它也应该在 shell 上使用命令工作。我使用 php 的 exec 库来执行 ffmpeg 命令,这些命令将视频文件转换为所需的格式,即 mp4。您最好查看 exec 并学习 ffmpeg 命令将文件转换为所需的格式。希望对你有帮助

【讨论】:

    【解决方案2】:

    上传时无法转码。但是,可以使用 ffmpeg 命令将所有视频转码为 mp4 文件,将所有音频文件转码为 mp3 文件,您可以使用 exec 语句从 PHP 代码中调用该命令。

    H264 BP 是几乎通用的视频编解码器,支持大多数平台设备、浏览器、播放器等。AAC 是用于在线流媒体的最佳音频编解码器。

    所以,使用 PHP 中的以下 exec 语句转换所有视频。

    exec("ffmpeg -i INPUT.avi -r 25 -b:v 1M -pass 1 -c:v libx264 -profile:v baseline -c:a aac -strict experimental -b:a 192k OUTPUT.mp4");
    

    并在 PHP 中使用以下 exec 语句转换所有音频。

    exec("ffmpeg -i INPUT.wav -c:a aac -strict experimental -b:a 192k OUTPUT.mp3");
    

    【讨论】:

      猜你喜欢
      • 2014-04-26
      • 1970-01-01
      • 2015-11-25
      • 2011-06-16
      • 2023-04-06
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      相关资源
      最近更新 更多