Как мы можем уменьшить размер аудиофайла после загрузки? - PullRequest
0 голосов
/ 07 ноября 2019

Я использовал эту команду в терминале для установки пакета: composer require pbmedia/laravel-ffmpeg. Пакет успешно загружен, но я не знаю, как его использовать. Я даже не знаю, может ли этот пакет уменьшить размер аудиофайла или нет.

Кто-нибудь знает какую-либо другую библиотеку или пакет?

<!DOCTYPE html>
<html>
    <body>
        <form action="{{route('upload')}}" method="post" enctype="multipart/form-data">
            Select Audio to upload:
            <input type="file" name="featured_mp3" id="featured_mp3">
            <input type="submit" value="upload MP3" name="submit">
        </form>
    </body>
</html>

<?php

Вот мой контроллер. Напишите основной код для файла сохранения:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Pbmedia\LaravelFFMpeg\FFMpeg;

class FileCompress extends Controller
{   
    public function compressFile(Request $request)
    {
          $uploadFileName = mt_rand().time(). '.' . $file->getClientOriginalExtension();
          $filetype = substr($file->getClientMimeType(), 0, strpos($file->getClientMimeType(), "/"));

        if($filetype == 'video'){

          $localpath =  public_path().'/videos/'.$uploadFileName;
         //code for video file compress.
        }else{
          //code for audio file compress.
        }
    }
}

Но мне нужно уменьшить размер аудиофайла при его загрузке или уменьшить размер файла сразу после загрузки файла. Как я могу это сделать?

1 Ответ

0 голосов
/ 07 ноября 2019

Извините за мой код установки, ребята, это очень плохо. но главное в том, как мы можем уменьшить размер аудиофайла в Laravel. И теперь, после нескольких часов чтения, я нашел решение.

1. Сначала нужно настроить проект laravel, а затем просто запустить его. команда в вашем терминале

композитору требуется pbmedia / laravel-ffmpeg

2.Добавить поставщика услуг и Фасад вваш файл конфигурации app.php


'provider' => [... Pbmedia \ LaravelFFMpeg \ FFMpegServiceProvider :: class, ...];



'aliases' => [... 'FFMpeg' => Pbmedia \ LaravelFFMpeg \ FFMpegFacade :: class ...];


Опубликуйте файл конфигурации с помощью ремесленного интерфейса командной строки:

php artisan vendor: publish provider = "Pbmedia \ LaravelFFMpeg \ FFMpegServiceProvider"


После этого загрузите ваш файл и получите в свой контроллер (создайте файл просмотра для загрузки и напишите свой код для загрузки в контроллер) и используйте этот однострочный код
 $file = file location after upload(in php stores in temp location).
 $compress = location where to save after compress.

shell_exec("ffmpeg -i $file -ab 64 $compress 2>&1");

Вот и все, готово. Еще одна вещь, вы можете проверить эту вещь в вашей системе локально, без использования какого-либо сервера в Linux, используя Terminal . Для окна и Mac просто зайдите на Официальный сайт . А затем просто используйте эту команду в своем терминале.

$ file = полное местоположение вашего аудиофайла, в моем случае Arjun / downloads / song.mp3 .

$ compress = Full Местоположение, где вы хотите сохранить имя.

ffmpeg -i $ file -ab 64 $ compress 2> & 1

Для Video Compress используйте этот код. Все одинаковые.

shell_exec (ffmpeg -i input.mp4 -vcodec libx265 -crf 20 output.mp4);

...