【问题标题】:FFMpeg Merge audio and video filesFFMpeg 合并音频和视频文件
【发布时间】:2020-05-16 01:49:59
【问题描述】:

我需要合并一个音频 (.mp3) 和视频 (.mov) 文件并使用 FFMpeg PHP 库输出一个 mp4 文件。

以下作品:

$ffmpeg = \FFMpeg\FFMpeg::create([
    'ffmpeg.binaries'  => 'C:/ffmpeg/bin/ffmpeg.exe',
    'ffprobe.binaries' => 'C:/ffmpeg/bin/ffprobe.exe'
]);

/* Open video file */
$video = $ffmpeg->open('sample.mov');

/* Resize video */
$video
    ->filters()
    ->resize(new \FFMpeg\Coordinate\Dimension(320, 240))
    ->synchronize();

/* Take screenshot from video */
$video->frame(\FFMpeg\Coordinate\TimeCode::fromSeconds(10))
    ->save('screen.jpg');

但是这不是我所需要的。 以下命令行代码正是我正在寻找的,但我不知道如何将其转换为与上述相同的格式($ffmpeg 版本)。

exec("ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac output.mp4");

问题: 有人知道如何将上面的 exec 转换成 PHP 吗?

谢谢大家。

【问题讨论】:

  • 不需要-strict experimental,除非您的 ffmpeg 已有一千年历史。
  • 谢谢@llogan 我已经删除了它。你用过\FFMpeg\FFMpeg 库吗?如何运行这个 exec 命令它在运行时似乎什么都不做
  • 不,抱歉。只熟悉ffmpeg 命令行工具。

标签: php ffmpeg ffmpeg-php


【解决方案1】:

你可以尝试使用完整路径

$cmd = 'C:\\ffmpeg\\bin\\ffmpeg.exe -i video.mp4 -i audio.mp3 -c:v copy -c:a aac output.mp4';
exec($cmd, $output)

看起来它没有在 PHP-FFMPEG 包中实现,你必须这样做。

https://github.com/PHP-FFMpeg/PHP-FFMpeg/issues/346#issuecomment-292701054

【讨论】:

  • 非常感谢,它现在输出文件但实际上没有声音。尝试使用.mov和.mp4。两者都被转码为 mp4,但我没有听到任何声音..
  • 你必须玩命令,我只是帮助运行命令。查看 ffmped 文档了解更多组合。
  • 试试这个:ffmpeg -i input.mp4 -i input.mp3 -c copy -map 0:v:0 -map 1:a:0 output.mp4
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-07
  • 2019-05-04
  • 2019-11-20
  • 2013-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多