国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Laravel 10.x 里如何使用ffmpeg

這篇具有很好參考價值的文章主要介紹了Laravel 10.x 里如何使用ffmpeg。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

原理上很簡單,就是使用命令行去調(diào)用ffmpeg,然后分析一下輸出是不是有錯誤。

安裝

首先安裝?symfony/process,主要用于包裝一下,用來代替?exec,?passthru,?shell_exec?and?system?。

composer require symfony/process
composer require symfony/filesystem

要注意 Laravel 10.x 是鎖定 symfony 6.4的,所以無法安裝最新的 7.0 ,但用起來也沒什么問題。

創(chuàng)建服務(wù)

照例創(chuàng)建服務(wù),服務(wù)類:VideoMakerService,接口類:VideoMakerContract,服務(wù)提供類:VideoMakerProvider,快捷名稱:videomaker,F(xiàn)acade類:VideoMaker

參考?保姆級教程:Laravel中添加Service

暫時就提供一個服務(wù),把圖片生成幾秒視頻。

    public function imageToBaseVideo(string $imageFile, string $targetFile, float $duration): bool{
        // $workingDir=$this->ffmpegTempDir;
        $params=[
            $this->ffmpegFile,
            '-loop', '1',
            '-framerate', '30',
            '-i', $imageFile,
            '-vf', 'scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2,setsar=1',
            '-c:v', 'libx264',
            '-t', $duration,
            '-y',
            $targetFile,
        ];
        return ExecHelper::run($params);
    }

這里使用了 ExecHelper 來運行,只是對Process做了包裝

class ExecHelper{

    public static function run(array $params){
        $success=false;
        $process = new Process($params);
        $code=$process->run(function ($type, $buffer): void {
            if (Process::ERR === $type) {
                Log::debug('ERR > ', $buffer);
            } else {
                Log::debug('OUT > ', $buffer);
            }
        });
        $success=$code===0;

        return $success;
    }
}

創(chuàng)建命令行

命令行類:ProcessVideo

    public function handle(VideoMakerContract $videoMakerContract)
    {
        $imageFile = $this->argument('imageFile');
        $targetFile = $this->argument('targetFile');
        $duration = $this->option('duration');
        // print params
        $this->info('imageFile: '.$imageFile.' , targetFile: '.$targetFile.' , duration: '.$duration);
        // convert to absolute path
        $imageFile=PathHelper::toAbsolutePath($imageFile);
        // validate imageFile
        if(!file_exists($imageFile)){
            $this->error('imageFile not exists');
            return;
        }
        $targetFile=PathHelper::toAbsolutePath($targetFile);
        // validate targetFile
        if(!file_exists($targetFile)){
            $this->error('targetFile not exists');
            return;
        }
        // validate duration
        if(!is_numeric($duration)){
            $this->error('duration must be numeric');
            return;
        }
        $success=$videoMakerContract->imageToBaseVideo($imageFile, $targetFile, $duration);

        $this->info('success: '.$success);
    }

參考:保姆級教程:Laravel里如何創(chuàng)建自己的命令行?

這里面用到PathHelper就是簡要地補全一下路徑

class PathHelper{
    public static function toAbsolutePath(string $path): string{
        return Path::makeAbsolute($path, self::currentPath());
    }

    public static function currentPath(): string{
        return realpath('.');
    }
}

準備好圖片

復(fù)制任意一張圖片到 storage/app/tmp/t.jpg

運行命令行

./artisan process:video ./storage/app/tmp/t.jpg ./storage/app/tmp/t.mp4 --duration=5

?Laravel 10.x 里如何使用ffmpeg,ffmpeg,php,laravel,laravel,php

輕松生成 t.mp4?,ffmpeg 的參數(shù)可以參考專欄里其他文章文章來源地址http://www.zghlxwxcb.cn/news/detail-817616.html

到了這里,關(guān)于Laravel 10.x 里如何使用ffmpeg的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • PHP的Laravel的數(shù)據(jù)庫遷移

    PHP的Laravel的數(shù)據(jù)庫遷移

    在終端輸入以下代碼 php artisan migrate 我的報錯啦!?。。?! 數(shù)據(jù)庫里面只有兩張表,實際上應(yīng)該有四張的?。?! 反正表已經(jīng)遷移完成了,就把遷移完成的表的內(nèi)容注釋掉,接著執(zhí)行php artisan migrate,得到下一個表的內(nèi)容。 然后依次類推直至所有表都創(chuàng)建完成?。?! 當(dāng)然啦!

    2024年02月04日
    瀏覽(27)
  • PHP Laravel 路由、中間件、數(shù)據(jù)庫等例子

    以下是使用Laravel框架時的一些常見示例: 1. 路由(Routes): // 定義基本路由 Route::get(\\\'/home\\\', \\\'HomeController@index\\\'); // 帶有參數(shù)的路由 Route::get(\\\'/user/{id}\\\', \\\'UserController@show\\\'); // 路由組 Route::middleware([\\\'auth\\\'])-group(function () { ? ? Route::get(\\\'/dashboard\\\', \\\'DashboardController@index\\\'); ? ? Route::pos

    2024年02月16日
    瀏覽(37)
  • laravel如何使用scout+elasticsearch搜索,并支持IK分詞

    本擴展包支持IK分詞設(shè)置。 在按下文操作前請先閱讀 laravel scout 全文搜索文檔 安裝 您可以通過composer安裝軟件包 wannanbigpig/laravel-scout-elastic: Laravel 會自動注冊驅(qū)動服務(wù)提供者。 Elasticsearch 配置 安裝完成后,您應(yīng)該使用vendor:publish Artisan命令發(fā)布Scout配置文件。該命令將把scou

    2024年02月06日
    瀏覽(56)
  • 學(xué)習(xí)路之PHP--laravel postman 提交表單出現(xiàn)419錯誤

    學(xué)習(xí)路之PHP--laravel postman 提交表單出現(xiàn)419錯誤

    問題圖片 解決: 白名單 有時候你可能希望設(shè)置一組不需要 CSRF 保護的 URL 。例如,如果你正在使用 Stripe 處理付款并使用了他們的 webhook 系統(tǒng),你會需要從 CSRF 的保護中排除 Stripe webhook 處理程序路由,因為 Stripe 不知道要發(fā)送什么樣的 CSRF 令牌到你的路由。 通常,你應(yīng)該把

    2024年01月19日
    瀏覽(34)
  • larvel 中的api.php_Laravel 開發(fā) API

    Laravel10中提示了Target *classController does not exist,為什么呢? 原因是:laravel8開始寫法變了。換成了新的寫法了 解決方法一: 在路由數(shù)組加入 AppHttpControllers 即可。 再次訪問URL,搞定。 解決方法二: 打開 appProvidersRouteServiceProvider.php 修改,添加一個namespace變量

    2024年02月06日
    瀏覽(35)
  • 醫(yī)療安全不良事件管理系統(tǒng)源碼(PHP+ vue+laravel)

    醫(yī)療安全不良事件管理系統(tǒng)源碼(PHP+ vue+laravel)

    醫(yī)療安全不良事件管理系統(tǒng)全套源碼 不良事件上報系統(tǒng)源碼 不良事件 管理系統(tǒng) 幫助醫(yī)院梳理建立不良事件上報與管理的一體化解決方案,包含上報內(nèi)容、歸口科室、上報流程及管理辦法。提供面向醫(yī)院的不良事件全過程管理平臺,包含事件上報、事件處理、事件追蹤、RC

    2024年02月06日
    瀏覽(29)
  • 如何使用Laravel的HTTP客戶端與外部API交互

    如何使用Laravel的HTTP客戶端與外部API交互

    Laravel使API交互對新的和有經(jīng)驗的Web開發(fā)人員來說都是輕而易舉的。Larvel的HTTP客戶端是建立在PHP的Guzzle HTTP客戶端之上,讓開發(fā)者在進行HTTP請求時有更順暢的體驗。它的主要功能包括認證, 路由, 和有效的對象關(guān)系映射(ORM). 本文將探討如何使用Laravel的HTTP客戶端來進行請求, 調(diào)

    2024年01月21日
    瀏覽(46)
  • 甘特圖控件DHTMLX Gantt教程:dhtmlxGantt 與PHP: Laravel(下)

    DHTMLX Gantt是用于跨瀏覽器和跨平臺應(yīng)用程序的功能齊全的Gantt圖表??蓾M足項目管理應(yīng)用程序的大部分開發(fā)需求,具備完善的甘特圖圖表庫,功能強大,價格便宜,提供豐富而靈活的JavaScript API接口,與各種服務(wù)器端技術(shù)(PHP,ASP.NET,Java等)簡單集成,滿足多種定制開發(fā)需求

    2024年02月06日
    瀏覽(51)
  • 【PHP面試題42】Laravel依賴注入實現(xiàn)的原理是怎么樣的

    本文已收錄于PHP全棧系列專欄:PHP面試專區(qū)。 計劃將全覆蓋PHP開發(fā)領(lǐng)域所有的面試題, 對標資深工程師/架構(gòu)師序列 ,歡迎大家提前關(guān)注鎖定。 Laravel是一個流行的PHP開發(fā)框架,它提供了許多方便和強大的功能來簡化開發(fā)過程。其中一個關(guān)鍵功能是依賴注入(Dependency Injecti

    2024年02月16日
    瀏覽(16)
  • PHP - Laravel 創(chuàng)建項目到服務(wù)器(nginx、apache)運行(附帶目錄結(jié)構(gòu)

    PHP - Laravel 創(chuàng)建項目到服務(wù)器(nginx、apache)運行(附帶目錄結(jié)構(gòu)

    // 對應(yīng) composer.json 中的 require,一般用這個 $ composer require barryvdh/laravel-ide-helper // 如果只想在開發(fā)環(huán)境安裝請加上 --dev,對應(yīng) composer.json 中的 require-dev $ composer require barryvdh/laravel-ide-helper --dev 如果報錯 Installation failed, reverting ./composer.json and ./composer.lock to their original content 點這

    2024年04月27日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包