这是我的代码:
$format = new X264('aac', 'libx264');
$format->setKiloBitrate(500);
但是当视频使用pascalbaljetmedia/laravel-ffmpeg
转码时,此程序包默认将音频编解码器设置为mp3
,而不是aac
。
如何解决此问题?
我告诉过您有关libfaac
编码器的信息。但我发现此编码器已于2016年弃用。因为还有其他更好的编码器,例如aac
,libfdk_aac
,aac_at
等。请查看更多here。
您应该首先在命令行工具上检出那些编码器,以确保ffmpeg是使用这些编码器编译的。让我们使用aac
编码器,因为在所有ffmpeg版本中默认都包含它。
ffmpeg -i real_audio.mp3 -c:a aac converted_audio.aac
我使用laravel-ffmpeg
和aac
编码器将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
希望这对您有帮助!