I need to Merge an audio (.mp3) and video (.mov) file and output an mp4 file using FFMpeg PHP library.
The following works:
$ffmpeg = FFMpegFFMpeg::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 FFMpegCoordinateDimension(320, 240))
->synchronize();
/* Take screenshot from video */
$video->frame(FFMpegCoordinateTimeCode::fromSeconds(10))
->save('screen.jpg');
However it’s not quite what I need.
The following command line code is exactly what I’m looking for but I can’t figure out how to convert it into the same format as the above ($ffmpeg version).
exec("ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac output.mp4");
Question:
Anyone know how to convert the exec into PHP above?
Thanks guys.
2
Answers
Can you try with full paths
Looks like its not implemented in PHP-FFMPEG package, you have to do it that way.
https://github.com/PHP-FFMpeg/PHP-FFMpeg/issues/346#issuecomment-292701054
There is not an explicit PHP-FFMPEG function, but it is possible to build your custom command.
Here an example to generate an MP4 video merging a PNG image and an MP3 file.
More details in the "AdvancedMedia" paragraph of the documentation.