php - 将 PHP 音频和视频上传链接到 Linux 服务器上的 FFMPEG

标签 php linux audio video ffmpeg

我在使用 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/

相关文章:

php - 使用 Elasticsearch 在 Laravel 中搜索查询背后的逻辑

Linux 中的 C++ 可执行文件签名

无法安装 MySQL 服务器

php - 将数据从 PHP 脚本发送到 iOS

php - Mysql创建排序索引性能简单频繁查询

android - 自动播放列表中的歌曲?

Android MediaCodec & MediaExtractor 用于视频和音频播放

visual-c++ - 使用QIODevice播放音频数据(Qt4.6 with VC++)

php - Codeigniter CSRF 仅对一次 ajax 请求有效

linux - 使用 LInux 的 Bash 命令