ffmpeg — как удалить аудио из видео в laravel

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. Какой из них лучше?
Слишком субъективно, зависит от ваших требований. Я бы пошел с .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, так что вы можете использовать встроенный 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();
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector