FFMPeg處理視頻的核心操做方式是命令,不管是在Windows上仍是Linux上。那麼下邊就簡單介紹下,常見的處理命令。php
示例1:
截取一張352×240尺寸大小的,格式爲jpg的圖片:shell
ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352×240 a.jpg
示例2:
把視頻的前30幀轉換成一個Animated Gif :apache
ffmpeg -i test.asf -vframes 30 -y -f gif a.gif
示例3:這個是我須要的!
在視頻的第8.01秒處截取 320*240 的縮略圖安全
ffmpeg -i test.flv -y -f mjpeg -ss 3 -t 0.001 -s 320×240 test.jpg
示例4:網絡
把視頻轉換成flv文件(這個用得最多,如今Flv基本上已經成了網絡視頻的標準了)函數
ffmpeg -i source -s 320×240 -b 700k -aspect 4:3 -y -f flv dest.flv 。
其中:
source:是原始文件的名字,能夠是mov,mpeg,avi,wmv各種格式,ffmpeg基本都支持。
-s wxh: 指定視頻的寬和高
-b : 設定視頻的比特率
-aspect: 保持視頻的比率。如4:3或者16:9
-y : 若是目標文件存在時,直接覆蓋原有的目標文件。
-f : 指定轉換的文件格式,這裏是flv格式。(其實若是不指定文件格式,ffmpeg也會按文件的後綴名來進行轉換)。
dest: 轉換的目標文件名字,並不必定須要是flv,能夠是mov,mpeg以及其餘的經常使用格式。
參數說明:spa
-L licensecode
-h 幫助視頻
-fromats 顯示可用的格式,編解碼的,協議的blog
-f fmt 強迫採用格式fmt
-I filename 輸入文件
-y 覆蓋輸出文件
-t duration 設置紀錄時間 hh:mm:ss[.xxx]格式的記錄時間也支持
-ss position 搜索到指定的時間 [-]hh:mm:ss[.xxx]的格式也支持
s wxh: 指定視頻的寬和高
****************************************************************************
示例3:是針對flv格式的視頻得到指定處的縮略圖,記住 -f強制轉換的格式是mjpeg由於我要得到.jpg的縮略圖,網上有不少寫成文章都是寫成ffmpeg -i test.flv -y -f image2 -ss 08.010 -t 0.001 -s 352×240 b.jpg 這個是錯誤,不可能輸出.
下面是PHP調用shell命令得到縮略圖的代碼
若是沒有什麼圖片生成的可能緣由:
①對於存儲生成圖片的文件夾須要有寫入權限 #chomd 777 /usr/local/apache/htdocs
②在php.ini中有disable_functions禁用了php調用shell命令函數,
disable_functions = proc_open, popen,exec, system, shell_exec, passthru
解決辦法:註釋掉disable_functions這一項
#disable_functions = proc_open, popen,exec, system, shell_exec, passthru
或者disable_functions = (把禁言的函數除去)
保存關閉開啓就能夠了
③php.ini中的安全模式必須關閉 才能夠調用exec函數
safe_mode = off
④圖片時間截取也很重要,頗有多是無效圖片或者是黑屏
建議 增長關鍵幀,一般第一幀爲關鍵幀,可使用:vframes:幀參數,捨棄微秒參數,只保留時間參數
/usr/bin/ffmpeg -i /usr/local/apache/htdocs/test.flv -y -f mjpeg -ss 3 -vframes 1 -s 320×240 /usr/local/apache/htdocs/test.jpg