windows安裝配置ffmpeg


 

ffmpeg是一個開源的音視頻轉碼工具,它提供了錄制、轉換以及流化音視頻的完整解決方案,可以轉碼、壓制、提取、截取、合並、錄屏等。
一、下載FFmpeg

http://ffmpeg.org/download.html

二、FFmpeg組成

    構成FFmpeg主要有三個部分,

    2.1第一部分是四個作用不同的工具軟件,分別是:ffmpeg.exe,ffplay.exe,ffserver.exe和ffprobe.exe。

  • ffmpeg.exe:音視頻轉碼、轉換器
  • ffplay.exe:簡單的音視頻播放器
  • ffserver.exe:流媒體服務器
  • ffprobe.exe:簡單的多媒體碼流分析器

    2.2第二部分是可以供開發者使用的SDK,為各個不同平台編譯完成的庫。如果說上面的四個工具軟件都是完整成品形式的玩具,那么這些庫就相當於樂高積木一樣,我們可以根據自己的需求使用這些庫開發自己的應用程序。這些庫有:

  • libavcodec:包含音視頻編碼器和解碼器
  • libavutil:包含多媒體應用常用的簡化編程的工具,如隨機數生成器、數據結構、數學函數等功能
  • libavformat:包含多種多媒體容器格式的封裝、解封裝工具
  • libavfilter:包含多媒體處理常用的濾鏡功能
  • libavdevice:用於音視頻數據采集和渲染等功能的設備相關
  • libswscale:用於圖像縮放和色彩空間和像素格式轉換功能
  • libswresample:用於音頻重采樣和格式轉換等功能

 

二、下載工具

 在官網上我們可以找到"Download"頁面,該頁上可以下載FFmpeg的工具、庫和源代碼等。在選擇"Windows Packages"下的Windows Builds后,會跳轉到Windows版本的下載頁面:

 

 

1.下載后解壓到指定目錄(如D盤),如:D:\ffmpeg\bin,把這個地址設置成環境變量(這個應該都會,作用就是在任意目錄都可以運行它的exe命令)

2.設置好cmd運行命令 ffmpeg -version,應該如下如:

 

 

 

 

 

 

參:https://www.jianshu.com/p/2b609afb9800

https://www.cnblogs.com/xiezhidong/p/6924775.html

 

獲取視頻封面圖: https://www.cnblogs.com/jxl1996/p/10138964.html

 

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 */


getVideoCover("C:\\Users\\Administrator\\Desktop\\tmp\\1233\\25.mp4");


/**
 * ffmpeg百度雲盤下載地址:https://pan.baidu.com/s/1Am_x0abBvXTrbCFPHs5e9Q
 * 提取碼:4y2r
 * 獲取視頻封面圖片
 * @param string $inFile 視頻文件地址
 * @param int $time 截圖的秒數
 * @param int $width 圖片寬度
 * @param int $height 圖片高度
 */
function getVideoCover($inFile, $time = 1, $width = 320, $height = 240)
{
    //項目根目錄
    if(!defined('_PHP_FILE_')) {
            define('IS_CGI', (0 === strpos(PHP_SAPI, 'cgi') || false !== strpos(PHP_SAPI, 'fcgi')) ? 1 : 0);
        if(IS_CGI) {
            //CGI/FASTCGI模式下
            $_temp  = explode('.php',$_SERVER['PHP_SELF']);
            define('_PHP_FILE_',    rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/'));
        }else {
            define('_PHP_FILE_',    rtrim($_SERVER['SCRIPT_NAME'],'/'));
        }
    }
    if(!defined('__ROOT__')) {
        $_root  =   rtrim(dirname(_PHP_FILE_),'/');
        var_dump(dirname(_PHP_FILE_),$_root);
        define('__ROOT__',  (($_root=='/' || $_root=='\\')?'':$_root));
    }
        
    //文件根目錄
    $rootPath = realpath(__ROOT__) . './Public';
    

    //輸入文件路徑
    //$inFile = $rootPath . $inFile;

    //輸出文件名
    $outFileName = uniqid('video_') . ".jpg";

    //輸出文件目錄
    $outFileDir = '/uploads/videocover/' . date("Ymd", time()) . '/';
    if (!is_dir($rootPath . $outFileDir)) {
        mkdir($rootPath . $outFileDir, 0777, true);
    }
    //輸出文件路徑
    $outFile = $rootPath . $outFileDir . $outFileName;

    //ffmpeg.exe文件路徑
    //$ffmpeg = realpath(__ROOT__) . './ffmpeg/ffmpeg.exe';
    $ffmpeg = 'D:\\ffmpeg\\bin\\ffmpeg.exe ';

    //運行命令
    $command = $ffmpeg . " -i " . $inFile . " -y -f image2 -t {$time} -s {$width}x{$height} " . $outFile;
    echo $command;
    system($command);//有可能要修改php.ini文件
    exec($command);
    return $outFileDir . $outFileName;
}

 

 

其他有可能用到的文字:

https://www.jianshu.com/p/4664ee042772

https://www.cnblogs.com/peteremperor/p/6477743.html

https://github.com/PHP-FFMpeg/PHP-FFMpeg

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM