ffmpeg工具調研

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.   常用幫助命令

可用的bitffmpeg–bsfs

可用的編解碼器:ffmpeg–codecs

可用的解碼器:ffmpeg–decoders

可用的編碼器:ffmpeg–encoders

可用的過濾器:ffmpeg–filters

可用的視頻格式:ffmpeg–formats

可用的聲道佈局:ffmpeg–layouts

可用的licenseffmpeg–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.   結論

已測試。可實現常規視頻格式間的轉換;視頻到音頻的轉換;視頻圖片的截取;視頻水印的增加、刪除。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章