ubuntu使用ffmpeg把圖片生成視頻

1.首先是ffmpeg的安裝

    ubuntu下很簡單apt-get install ffmpeg 就可以安裝成功,其他系統自己查看官網吧 ffmpeg開源庫的網址: http://ffmpeg.org/

2.調用php的系統命令

    system('ffmpeg -threads 2 -y -r 1 -i ' . $file . '%d.png  ' . $file . 'out.flv');

其中參數介紹:

     $file是自己的路徑         -threads 2 以兩個線程進行運行, 加快處理的速度。    -y 對輸出文件進行覆蓋      -r 10 fps設置爲10幀/秒          -i 輸入的圖片(%d表示 1 2 3等數字)

#ffmpeg -i file.avi output.flv-i 表示輸入文件 :現在有個視頻video.avi,有個音頻 audio.mp3,將其合併成output.avi  兩個命令(file.avi 是中間文件,用完可刪)

#ffmpeg -i video.avi -vcodec copy -an video2.avi  
#ffmpeg -i video2.avi -i audio.mp3 -vcodec copy -acodec copy output.avi-i 表示輸入文件

-vcodec copy 表示 force video codec (‘copy’ to copy stream) 這個不知怎麼譯 ,估計是直接copy
-acodec copy 這個說的應該是音頻了 跟上面一樣
-an:表示 disable audio 估計是audio no 之類的縮寫,表示去掉video.avi 原有的音頻

方法2 好像可以直接指定兩個輸入文件 ,

#ffmpeg -i /tmp/a.wav -i /tmp/a.avi /tmp/a.avi兩個文件的順序很重要
從視頻裏提取聲音(聲音與視頻的分離)

#ffmpeg -i 人生若只如初見.flv -vnr.mp3從flv 文件中提取聲音並保存爲mp3格式
-vn : 表示忽略視頻 估計是video no 之類的縮寫

#ffmpeg -i 人生若只如初見.flv -an r.flv只留視頻不留聲音
-an : 表示 忽略 聲音 估計是audio no 之類的縮寫

從視頻裏提取圖片( )

 代碼如下 複製代碼
#ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg   

-ss第8秒處截一圖
壓縮mp3 文件
如果你覺得mp3文件有點大,想變小一點那麼可以通過-ab 選項改變音頻的比特率 (bitrate)

 代碼如下 複製代碼

#ffmpeg -i input.mp3 -ab 128 output.mp3//這裏將比特率設爲128

你可以用file 命令查看一下源文件 的信息

 代碼如下 複製代碼
z.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo

其中的192 kbps 就是這個東西

mp3中比特率的含義是:在壓縮音頻文件至mp3時,由壓縮軟件所確定數碼文件在播放時每秒傳 送給播放器大小,其單位是:千位/秒;英文的含義是:kbps – = kilobits per second。現在mp3文件的最高數位率是320 kbps。這樣的文件體積很大,每分鐘的音樂超過兩兆字節。如果採用可變比特率(VBR)編碼來生成mp3文件,獲得與320 kbps相當音質,文件的體積會縮小25~50%。請注意:播放時間相同,而歌曲不同,所獲的壓縮mp3文件的一般不相同,這是因爲VBR編碼所生成的 mp3文件的大小不僅僅取決於播放時間的長度,還取決於源音頻文件的其它因素。

錄音(要有可用的麥克風,並且如果用alsa 的話,好像得安alsa-oss,重啓)

 代碼如下 複製代碼
#ffmpeg -f oss -i /dev/dsp out.avi
#ffmpeg -f alsa -ac 2 -i hw:0,0 ut.avi
#ffmpeg -f alsa -ac 2 -i pulseoss

linux 下的聲音相關的東西,與alsa 一樣,不過oss 是商業的, 而/dev/dsp 是oss 用到的麥克的設備吧,可以這樣理解

屏幕錄像

 代碼如下 複製代碼
#ffmpeg -f x11grab -s xga -r 10 -i :0.0+0+0 wheer.avi 
#ffmpeg -f x11grab -s 320x240  -r 10 -i :0.0+100+200 wheer.avi:0:0

表示屏幕(個人理解,因爲系統變量$DISPLAY值就是:0.0) 而100,表示距左端100象素,200表示距上端200
-s 設置窗口大小
-r 10 好像是設置頻率,不懂

 代碼如下 複製代碼
#ffmpeg -f x11grab -s xga-qscale 5-r 10 -i :0.0+0+0 wheer.avi-qscale 8

 設定畫面質量,值越小越好

屏幕錄像,同時錄音

 代碼如下 複製代碼
#ffmpeg -f oss -i /dev/dsp-f x11grab -r 30 -s 1024x768 -i :0.0  output.mkv
#ffmpeg -ac 2 -f oss -i /dev/dsp -f x11grab -r 30 -s 1024x768 -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 output.mkv


轉載來自:http://www.111cn.net/sys/Ubuntu/58890.htm




發佈了25 篇原創文章 · 獲贊 10 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章