【问题标题】:FFMPEG Audio merging using the PHP library使用 PHP 库进行 FFMPEG 音频合并
【发布时间】:2020-09-28 11:27:08
【问题描述】:

我一直在使用 FFMPEG,虽然还是个初学者,但我学到了很多。

所以我必须合并 2 个音频,一个属于视频,另一个是 .mp3 文件。 我得到了正确的 shell exec,但现在我想使用 FFMPEG php 库。

这是正确的(我认为)和有效的 shell 命令:

/usr/bin/ffmpeg -y -i video-short.mp4 -i audio-short.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2 [a]" -map 0:v -map "[a]" -c:v copy -c:a aac -ac 2 -b:a 128k video3-audio-output.mp4

这会输出一个带有 2 个音频的视频。

在我编写了 php 代码并编辑了一些输出的代码以使脚本正常工作后,我得到了这个想法。 这是php代码,我似乎无法弄清楚如何返回正确的shell。

        $video = $this->ffmpeg->openAdvanced([
        'video-short.mp4',
        'audio-short.mp3'
    ]);
    $video
        ->filters()
        ->custom('[0:a][1:a]', 'amerge=inputs=', '2[a]' );
    $video
        ->map(array('0:v', '"[a]"'), new X264('aac'),
        'video3-audio-output.mp4'
    )
        ->save();

现在我需要让代码返回类似于 shell 的东西,我已经尝试了很多小时。

这是我的 php 返回的内容,它给出了编码错误,加上

No channel layout for input 1

/usr/bin/ffmpeg -y -i video-short.mp4 -i audio-short.mp3 -filter_complex [0:a][1:a]amerge=inputs=2[a] -map 0:v -map "[a]" -vcodec libx264 -acodec aac -b:a 128k video3-audio-output.mp4

(编辑) 所以我在 FFMpeg\Format\Video\X264 getAvaiableVideoCodecs() 中添加了“复制”。

如果我将 'copy' 添加到 new X264('aac', 'copy') 它确实会转储正确的 Shell 命令,但它仍然会在“编码失败”时崩溃

【问题讨论】:

    标签: php bash shell ffmpeg


    【解决方案1】:

    我找到了解决方案,这可能是一个常见问题。

    因此您需要将“复制”添加到 FFMpeg\Format\Video\X264 getAvaiableVideoCodecs()。

    但不是“amerge”,由于某种原因,它不会在前端合并给定的音频文件并返回编码失败。我们使用 amix。

    使用混合。下面是一个示例,说明代码在运行时的样子。

    $video = $this->ffmpeg->openAdvanced(array(
        'videoplayback.mp4',
        'audio-short.mp3'
    ));
    $video
        ->filters()
        ->custom('[0:a][1:a]', 'amix=inputs=', '2[a]' );
    $video
        ->map(array('0:v', '[a]'), new X264('aac', 'copy'),
       'video3-audio-output.mp4'
    )
        ->save();
    

    这可以帮助未来的人们。

    【讨论】:

      猜你喜欢
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 1970-01-01
      相关资源
      最近更新 更多