FFmpeg-更改音频编解码器

问题描述 投票:1回答:1

这是我的代码:

$format = new X264('aac', 'libx264');
$format->setKiloBitrate(500);

但是当视频使用pascalbaljetmedia/laravel-ffmpeg转码时,此程序包默认将音频编解码器设置为mp3,而不是aac

如何解决此问题?

laravel laravel-5.8 ffmpeg-php
1个回答
0
投票

我告诉过您有关libfaac编码器的信息。但我发现此编码器已于2016年弃用。因为还有其他更好的编码器,例如aaclibfdk_aacaac_at等。请查看更多here

您应该首先在命令行工具上检出那些编码器,以确保ffmpeg是使用这些编码器编译的。让我们使用aac编码器,因为在所有ffmpeg版本中默认都包含它。

ffmpeg -i real_audio.mp3 -c:a aac converted_audio.aac

我使用laravel-ffmpegaac编码器将mp3转换为aac。它像魅力一样运作。参见以下代码:

<?php

namespace App\Http\Controllers;

use FFMpeg\Format\Video\X264;
use ProtoneMedia\LaravelFFMpeg\Support\FFMpeg;

class TestController extends Controller
{
    public function index() 
    {
        echo "<p>Converting...</p>";

        FFMpeg::fromDisk('public')
            ->open('audio.mp3')
            ->export()
            ->toDisk('public')
            ->inFormat(new X264('aac'))
            ->save('converted_audio.aac');
    }
}

要了解有关aac编码器的更多信息,请使用以下命令:

ffmpeg -h encoder=aac

我的laravel-ffmpeg软件包版本为

"pbmedia/laravel-ffmpeg": "^7.0"

和ffmpeg版本是

ffmpeg version 3.4.6

希望这对您有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.