ffmpeg -i input_file.mp4 -an -vcodec copy output_file.mp4
如何将其更改为以下内容?
FFMpeg::fromDisk('local')
->open($filePath.$fileName)
->export()
->toDisk('local')
->inFormat(new \FFMpeg\Format\Video\X264('libmp3lame', 'libx264'))
->save($converted);
答案 0 :(得分:1)
<强> 1。哪一个更好? 太主观,取决于您的要求。我选择.mp4,因为大多数(现代)浏览器的支持都要好得多
-i is the input file e.g. input_file.mp4
-an Disable audio recording.
-c is codec. basically -c copy says copy without reencoding
copy ... well, copies to output file e.g. output_file.mp4
-vcodec sets the vide encoder.
如果与-vcodec副本一起使用,它将影响存储在容器级别的宽高比,但不会影响存储在编码帧中的宽高比(如果存在)。
<强> 2。如何在Laravel中使用 一些选择:
我首先检查一下这个图书馆:https://github.com/pascalbaljetmedia/laravel-ffmpeg
或者如果你想自己动手......
Laravel是从Symfony派生的,因此您可以使用此处的内置Process runner:http://symfony.com/doc/current/components/process.html
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;
$cmd = 'ffmpeg -i input_file.mp4 -an -vcodec copy output_file.mp4';
$process = new Process($cmd);
$process->run();
// executes after the command finishes
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
echo $process->getOutput();