jreviews:encoding.ffmpeg_mp4_audio_codec
Filters the audio codec used when encoding MP4 videos. Also fired via the legacy `Clickfwd\Hook` system as `ffmpeg_mp4_audio_codec` for V5 compatibility (the legacy call is slated for removal in V7).
You need to have a working knowledge of Hooks before you get started.
Parameters
| Name | Type | Description |
|---|---|---|
$audioCodec |
string |
The selected audio codec after the legacy filter has run. |
$audioCodecs |
array |
The available audio codec options. |
Boilerplate Code
Use the boilerplate code to start using the filter, and add your own logic to modify the first argument and return it.
fwd_add_filter('jreviews:encoding.ffmpeg_mp4_audio_codec', function($audioCodec, $audioCodecs)
{
// Your code here
return $audioCodec;
}, 20, 2);
The , 20, N after your callback are the hook priority and the number of arguments your callback accepts. By default, a hook passes your callback only its first argument; for a filter, that is the value being filtered, so a simple function($value) { ... } needs nothing extra. If your callback declares more parameters, such as function($value, $listing) { ... }, you must add N (the parameter count, 2 here). Because N is the fourth argument to fwd_add_filter() or fwd_add_action(), you must also pass the priority (20 is the default). Leaving these off when your callback expects extra parameters causes a Too few arguments to function ... fatal error.
Examples
Prefer libfdk_aac when available
Use libfdk_aac for MP4 audio encoding when the encoder exposes it; otherwise keep the selected codec.
fwd_add_filter('jreviews:encoding.ffmpeg_mp4_audio_codec', fn($codec, $codecs) => in_array('libfdk_aac', $codecs, true) ? 'libfdk_aac' : $codec, 20, 2);
Source Files
app/Services/Encoding/FFMPEGService.php