1. 工具簡介
ffmpeg是一個非常強大的工具,使用它可以轉換視頻格式,包括視頻容器格式、視頻編碼格式。可以更改視頻的其他的參數,比如幀率-每秒播放的幀數,視頻的大小-尺寸等等。這裏所說的視頻,包括了視頻和音頻。另外,它還可以將圖片轉換爲視頻。
2. 工具安裝
Windows下安裝包地址:https://ffmpeg.zeranoe.com/builds/win64/static/
下載安裝包直接解壓即可使用。
如圖,其中bin目錄爲ffmpeg可執行程序所在目錄,可設置環境變量,以方便後續使用命令。
Linux下安裝較Windows稍微複雜,需安裝轉碼器。
詳見:http://www.cnblogs.com/wanghetao/p/3386311.html
命令行下執行ffmpeg–version 提示如下:
說明安裝成功。
3. 常用幫助命令
可用的bit流:ffmpeg–bsfs
可用的編解碼器:ffmpeg–codecs
可用的解碼器:ffmpeg–decoders
可用的編碼器:ffmpeg–encoders
可用的過濾器:ffmpeg–filters
可用的視頻格式:ffmpeg–formats
可用的聲道佈局:ffmpeg–layouts
可用的license:ffmpeg–L
可用的像素格式:ffmpeg–pix_fmts
可用的協議:ffmpeg-protocals
4. ffmpeg命令使用語法
命令格式:
ffmpeg -i [輸入文件名] [參數選項] -f [格式] [輸出文件]
ffmpeg [[options][`-i' input_file]]... {[options] output_file}...
1、參數選項:
(1) -an: 去掉音頻
(2) -acodec: 音頻選項,一般後面加copy表示拷貝
(3) -vcodec:視頻選項,一般後面加copy表示拷貝
2、格式:
(1) h264: 表示輸出的是h264的視頻裸流
(2) mp4: 表示輸出的是mp4的視頻
(3)mpegts: 表示ts視頻流
如果沒有輸入文件,那麼視音頻捕捉(只在Linux下有效,因爲Linux下把音視頻設備當作文件句柄來處理)就會起作用。作爲通用的規則,選項一般用於下一個特定的文件。如果你給–b 64選項,改選會設置下一個視頻速率。對於原始輸入文件,格式選項可能是需要的。缺省情況下,ffmpeg試圖儘可能的無損轉換,採用與輸入同樣的音頻視頻參數來輸出。(by ternence.hsu)
格式詳見:http://www.cnblogs.com/AllenChou/p/7048528.html
5. 常用功能/命令
5.1. 視頻容器轉換
ffmpeg -i input.avi out.mp4 將input.avi轉爲out.mp4
ffmpeg -i input.avi -b:v 640k output.mp4 將input.avi轉爲out.mp4 並設置視頻的碼率爲640kbps
另外,可將視頻轉爲MP3、swf、gif等
5.2. 提取音頻
ffmpeg -i input.mp4 -acodec aac -vn out.aac
5.3. 爲視頻添加logo
左上角: ffmpeg -i 3.mp4 -i logo.png -filter_complex overlay pair1.mp4
右上角: ffmpeg -i 3.mp4 -i logo.png -filter_complex overlay=W-w pair2.mp4
左下角: ffmpeg -i 3.mp4 -i logo.png -filter_complexoverlay=0:H-h pair3.mp4
右下角: ffmpeg -i 3.mp4 -i logo.png -filter_complex overlay=W-w:H-h pair4.mp4
刪除logo
語法: -vfdelogo=x:y:w:h[:t[:show]]
x:y 離左上角的座標
w:h logo的寬和高
t: 矩形邊緣的厚度默認值4
show:若設置爲1有一個綠色的矩形,默認值0.
ffplay -i pair1.mp4 -vfdelogo=x=1:y=1:w=220:h=91:show=0 預覽
ffmpeg -i pair1.mp4 -vf delogo=x=1:y=1:w=220:h=91outaa.mp4
5.4. 視頻文件截圖
ffmpeg -i 3.mp4 -t 10 -pix_fmt rgb24 a.gif 從視頻中生成GIF圖片
ffmpeg -i 3.mp4 -vframes 30 -y -f gif a.gif 把視頻的前30幀轉換成一個Gif
ffmpeg -ss 00:00:45 -i 3.mp4 image.jpg 從視頻指定時間截取一張圖片
ffmpeg -i 3.mp4 -f image2 -vf fps=fps=1out%d.png 每隔1秒截一張圖
ffmpeg -i 3.mp4 -f image2 -vf fps=fps=1/20out%d.png 每隔20秒截一張圖
6. 結論
已測試。可實現常規視頻格式間的轉換;視頻到音頻的轉換;視頻圖片的截取;視頻水印的增加、刪除。