我在使用 php 构建的 Linux 服务器上托管了一个站点,我可以在其中将音频文件上传到一个部分,将视频文件上传到另一个部分。
每个部分都使用 php 上传单个音频文件和单个视频文件。每个上传都被分配了一个唯一的文件名,因此可以在单独的页面上单独查看它们,上传者可以在该页面上发表有关其音频或视频的评论。
我希望能够让本地的音乐家和表演者展示他们的作品。该网站有效,但无法上传大型视频文件,我的音频播放器只能播放几种格式,我喜欢将它们全部转换为 mp3。
我在我的 Linux 服务器上安装了 ffmpeg 来帮助我解决这个问题,并且我能够用我的终端连接到它。我的问题是如何让 ffmpeg 与我上传的 php 文件交互。
例如,当用户上传一个音频文件时,我可以在上传时让ffmpeg转换它,还是我需要为上传设置一个临时文件夹,将它存储在那里,然后让ffmpeg压缩文件,转换它为特定格式并将其保存在另一个文件夹中?
我宁愿让它在上传时压缩和更改格式,以免占用服务器空间,但如果这不是 ffmpeg 的工作方式,那么我别无选择。任何帮助,将不胜感激。
最佳答案
上传时无法转码。但是,可以使用 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");
关于php - 将 PHP 音频和视频上传链接到 Linux 服务器上的 FFMPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32899906/