導航:首頁 > 程序命令 > ffmpeg命令行參數

ffmpeg命令行參數

發布時間:2023-08-17 11:06:39

⑴ 我想用ffmpeg命令行轉換一個視頻文件,視、音頻編碼格式不變,只是將畫面旋轉90度,請問命令行該如何寫

在你的轉碼命令裡面添加上-vf rotate=PI/2或者-vf rotate=3*PI/2,例如
ffmpeg -i E:\ffmpeg\test.mp4 -y -vf rotate=PI/2 E:\ffmpeg\dest1.mp4

⑵ FFMPEG進階系列03-ffmpeg轉碼專題(中)x264參數詳解

更多音視頻知識請點擊 : 專注音視頻開發

x264編碼參數簡介

x264.exe --fullhelp 列印

用於簡化命令行而設計的系統。各預設模板所對應的參數設定,詳見幫助:x264.exe --fullhelp.

21. frame-packing

默認: 20
根據給定的半徑對量化曲線進行高斯模糊(gaussian blur)。分配給各幀的量化值在時間方向上與相鄰幾幀相模糊,以限制量化值波動。
當mb-tree開啟時,cplxblur無效。
參見: --qcomp, --qblur, --no-mbtree

手動忽略標准碼率控制。選擇一個文件,強制指定某些幀的量化值和幀類型。格式為「幀號 幀類型 量化值」。例子:

也叫--subme

默認: 未設定

這些選項在輸出流中設定標志,可以被解碼工具讀取並做相應處理。值得注意的是,大多數選項在大多數情境下都是無意義 的,所以通常都被解碼軟體所忽略。

參見: Gamma Correction
推薦值: 默認,除非你知道源用的是哪種

'auto'會自動根據輸出文件的文件名來挑選。

⑶ ffmpeg-python中文文檔(三)——API參考

表示上游節點的傳出邊緣;可以用來創建更多的下游節點。

輸入文件 URL (ffmpeg -i option)

在一個 ffmpeg 命令行中包含所有給定的輸出

輸出文件地址

不詢問就覆蓋輸出文件(ffmpeg -y 選項)

在指定文件上運行 ffprobe 並返回輸出的 JSON 表示。

構建用於調用 ffmpeg 的命令行。

構建要傳遞給 ffmpeg 的命令行參數。

為提供的節點圖調用 ffmpeg 。

參數

為提供的節點圖非同步調用 ffmpeg。

參數

例子

運行和流式輸入:

運行並捕獲輸出:

使用 numpy 逐幀處理視頻:

通過重新混合顏色通道來調整視頻輸入幀。

連接音頻和視頻流,將它們一個接一個地連接在一起。

篩選器適用於同步視頻和音頻流的片段。所有段必須具有每種類型的相同數量的流,這也是輸出時的流數。

參數

裁剪輸入視頻。

參數

在輸入圖像上繪制一個彩色框。

參數

使用 libfreetype 庫從視頻頂部的指定文件中繪制文本字元串或文本。

要啟用此過濾器的編譯,您需要使用 --enable-libfreetype . 要啟用默認字體回退和字體選項,您需要使用 --enable-libfontconfig . 要啟用 text_shaping 選項,您需要使用 --enable-libfribidi

參數

· box - 用於使用背景顏色在文本周圍繪制一個框。該值必須是 1(啟用)或 0(禁用)。框的默認值為 0。

· boxborderw – 使用 boxcolor 設置要在框周圍繪制的邊框寬度。boxborderw 的默認值為 0。

· boxcolor - 用於在文本周圍繪制框的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。 boxcolor 的默認值為「white」。

· line_spacing – 使用 box 設置要在框周圍繪制的邊框的行間距(以像素為單位)。line_spacing 的默認值為 0。

· borderw – 使用邊框顏色設置要在文本周圍繪制的邊框寬度。邊框的默認值為 0。

· bordercolor – 設置用於在文本周圍繪制邊框的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。邊框顏色的默認值為「黑色」。

· 擴展- 選擇文本的擴展方式。可以是 none、strftime(已棄用)或 normal(默認)。有關詳細信息,請參閱下面的文本擴展部分。

· basetime – 設置計數的開始時間。值以微秒為單位。僅適用於已棄用的 strftime 擴展模式。要在正常擴展模式下進行模擬,請使用 pts 函數,提供開始時間(以秒為單位)作為第二個參數。

· fix_bounds - 如果為 true,檢查並修復文本坐標以避免剪切。

· fontcolor - 用於繪制字體的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。fontcolor 的默認值為「黑色」。

· fontcolor_expr – 與文本相同的擴展字元串以獲得動態字體顏色值。默認情況下,此選項具有空值並且不被處理。設置此選項時,它會覆蓋 fontcolor 選項。

· font - 用於繪制文本的字體系列。默認情況下無。

· fontfile – 用於繪制文本的字體文件。必須包含路徑。如果禁用了 fontconfig 支持,則此參數是必需的。

· alpha – 繪制應用 alpha 混合的文本。該值可以是介於 0.0 和 1.0 之間的數字。該表達式也接受相同的變數 x、y。默認值為 1。請參閱 fontcolor_expr。

· fontsize – 用於繪制文本的字體大小。字體大小的默認值為 16。

· text_shaping – 如果設置為 1,則在繪制文本之前嘗試對文本進行整形(例如,反轉從右到左文本的順序並加入阿拉伯字元)。否則,只需按照給定的方式繪制文本。默認為 1(如果支持)。

· ft_load_flags –用於載入字體的標志。這些標志映射了 libfreetype 支持的相應標志,並且是以下值的組合:

默認值為「默認」。有關更多信息,請參閱 FT_LOAD_* libfreetype 標志的文檔。

· shadowcolor – 用於在已繪制文本後面繪制陰影的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。shadowcolor 的默認值為「黑色」。

· shadowx – 文本陰影位置相對於文本位置的 x 偏移量。它可以是正值或負值。默認值為「0」。

· shadowy – 文本陰影位置相對於文本位置的 y 偏移量。它可以是正值或負值。默認值為「0」。

· start_number – n/frame_num 變數的起始幀號。默認值為「0」。

· tabsize - 用於呈現選項卡的空格數大小。默認值為 4。

· timecode – 以「hh:mm:ss[:;.]ff」格式設置初始時間碼表示。它可以帶或不帶文本參數使用。必須指定 timecode_rate 選項。

· rate – 設置時間碼幀率(僅限時間碼)。

· timecode_rate – 的別名rate。

· r – 的別名rate。

· tc24hmax – 如果設置為 1,時間碼選項的輸出將在 24 小時左右回繞。默認值為 0(禁用)。

· text -- 要繪制的文本字元串。文本必須是 UTF-8 編碼字元序列。如果沒有使用參數 textfile 指定文件,則此參數是必需的。

· textfile – 包含要繪制的文本的文本文件。文本必須是 UTF-8 編碼字元序列。如果沒有使用參數 text 指定文本字元串,則此參數是必需的。如果同時指定了 text 和 textfile,則會引發錯誤。

· reload – 如果設置為 1,文本文件將在每一幀之前重新載入。一定要自動更新它,否則它可能會被部分讀取,甚至失敗。

· x – 指定將在視頻幀內繪制文本的偏移量的表達式。它相對於輸出圖像的左邊框。默認值為「0」。

· y - 指定將在視頻幀內繪制文本的偏移量的表達式。它相對於輸出圖像的上邊框。默認值為「0」。有關接受的常量和函數的列表,請參見下文。

表達式常量:

x 和 y 的參數是包含以下常量和函數的表達式:

· dar:輸入顯示縱橫比,同 (w / h) * sar

· hsub:水平色度子樣本值。例如,對於像素格式「yuv422p」,hsub 為 2,vsub 為 1。

· vsub:垂直色度子樣本值。例如,對於像素格式「yuv422p」,hsub 為 2,vsub 為 1。

· line_h:每個文本行的高度

· lh:別名為line_h.

· main_h:輸入高度

· h: 的別名main_h。

· H: 的別名main_h。

· main_w:輸入寬度

· w: 的別名main_w。

· W: 的別名main_w。

· ascent:對於所有渲染的字形,從基線到用於放置字形輪廓點的最高/上網格坐標的最大距離。這是一個正值,因為網格的 Y 軸向上。

· max_glyph_a: 的別名ascent。

· 下降:對於所有渲染的字形,從基線到用於放置字形輪廓點的最低網格坐標的最大距離。由於網格的方向,這是一個負值,Y 軸向上。

· max_glyph_d: 的別名descent。

· max_glyph_h:最大字形高度,即渲染文本中包含的所有字形的最大高度,相當於上升-下降。

· max_glyph_w:最大字形寬度,即渲染文本中包含的所有字形的最大寬度。

· n:輸入幀數,從0開始

· rand(min, max):返回一個包含在 min 和 max 之間的隨機數

· sar:輸入樣本縱橫比。

· t:時間戳,以秒為單位,如果輸入時間戳未知,則為 NAN

· text_h:渲染文本的高度

· th: 的別名text_h。

· text_w:渲染文本的寬度

· tw: 的別名text_w。

· x:繪制文本的 x 偏移坐標。

· y:繪制文本的 y 偏移坐標。

這些參數允許 x 和 y 表達式相互引用,因此您可以例如指定 y=x/dar.

應用自定義過濾器。

filter通常由更高級別的過濾器函數使用,例如 hflip ,但如果缺少過濾器實現 ffmpeg-python ,您可以 filter 直接調用以 ffmpeg-python 將過濾器名稱和參數逐字傳遞給 ffmpeg 。

參數

函數名稱後綴_是為了避免與標准 pythonfilter 函數混淆。

例子

替代名稱 filter ,以免與內置的 pythonfilter 運算符沖突。

應用具有一個或多個輸出的自定義過濾器。

這 filter 與過濾器可以產生多個輸出相同。

要引用輸出流,請使用 .stream 運算符或括弧簡寫:

例子

水平翻轉輸入視頻。

修改輸入的色調和/或飽和度。

參數

將一個視頻疊加在另一個視頻之上。

參數

更改輸入幀的 PTS(表示時間戳)。

FFmpeg里有兩種時間戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顧名思義,前者是解碼的時間,後者是顯示的時間。

參數

修剪輸入,使輸出包含輸入的一個連續子部分。

參數

垂直翻轉輸入視頻。

應用縮放和平移效果。

參數

⑷ FFmpeg命令行使用

FFmpeg的命令非常多,經常看著會雲里霧里的,個人認為沒必要去硬背,只要打開Terminal,輸入 ffmpeg -help 命令,這條命令會告述你FFmpeg支持的大部分常用命令以及使用方式。查看這些輸出的信息,基本上就會使用很多常用的命令了。
你會發現執行 ffmpeg -help 會輸出一大坨,那都是些啥玩意呢,不著急,咱們一步一步來慢慢品嘗。

第一個就是輸出我們安裝的FFmpeg的版本號

--prefix 是指FFmpeg的安裝路徑
--enable 是你安裝的FFmpeg支持的三方庫 這里可以看出支持 libx264 、 libx265 的編碼,以及支持 videotoolbox , videotoolbox 是Mac、iOS上的一個系統自帶硬編解碼庫,FFmpeg也給予了支持,非常的給力。

這是輸出FFmpeg裡麵包含的庫,這些都是獨立的,是可以單獨拎出來使用的,你如果只要編解碼,那你就只要在項目中導入 libavcodec 即可

這是告訴我們命令行使用格式
[options] 這個是全局參數
[infile options] 這個是輸入文件的參數
infile 這個是輸入文件的路徑
[outfile options] 這個是輸出文件的參數
outfile 這個是輸出文件的路徑
細心的你肯定發現 infile 、 outfile 的後面有個 ... ,這是在告訴我們輸入、輸出文件可以分別有一個或者多個。
比如執行 ffmpeg -i test.h264 -i test.aac -c test.mp4
這條命令會把一個h264文件和一個aac的音頻文件合並並輸出一個mp4格式的文件,這其中就有兩個輸入文件、一個輸出文件。

這些是詳細的幫助信息
-h long 列印更多的選項參數。
-h full 列印所有的選項參數,包括所有針對於 format 和 codec 的選項,信息特別的長。
man ffmpeg : 查看FFmpeg的幫助手冊。
-h type=name 列印指定名稱的 decoder/encoder/demuxer/muxer/filter 的所有選項信息。
比如你要查詢 scale 濾鏡的使用方式,我們就執行 ffmpeg -h filter=scale
輸出如下:

這就告訴我們 scale 濾鏡有 w 、 h 等參數,我們就這樣使用 scale 濾鏡,
ffmpeg -i input.mp4 -filter_complex "scale=w=iw/2h=ih/2" output.mp4
其中 iw 代表輸入視頻的寬, ih 代表輸入視頻的高,這條命令就把輸入的視頻縮小一倍,這里你可能會有疑問,我都不記得那些濾鏡的名字,就無法使用這個去查了,哈哈不要急,還記得上面的幫助命令嗎, ffmpeg -filters 可以輸出所有的濾鏡名字了,如果你覺的輸出太多,你不好找的話,你只要記得這個濾鏡大概是叫什麼名字、包含什麼字母,你就藉助 grep 指令去輸出裡面搜索關鍵字,這樣就只會輸出你關心的濾鏡名了,如 ffmpeg -filters | grep over

以上是幫助命令,如果你忘記了某個編譯器、像素格式或者濾鏡的名字,你就可以用這些命令去查看。

以上就是全局參數

以上是音視頻的公共參數

以上是視頻處理相關參數

以上是音頻處理相關

以上字幕處理相關參數

以上就是 ffmpeg -help 的輸出說明了,下面咱們來看看常用的命令。

-r 10 表示1秒視頻會生成10張圖片

-f avfoundation 指定採用avfoundation採集數據使用
-i 1:0 表示 指定視頻設備索引為1,指定錄音設備索引為0。
使用 ffmpeg -list_devices 1 -f avfoundation -i '' 可以列印出設備列表,如下:

因此上述命令中的 -i 1:0 表示採用【Capture screen 0】【Built-in Microphone】即採用屏幕和系統自帶的麥克風進行採集。

⑸ ffmpeg錄屏/錄音/錄攝像頭----命令行實現

原文地址: https://blog.csdn.net/lailaiquququ11/article/details/80968272

ffmpeg在linux下支持的採集設備的種類比較多。

在操作設備之前,我們可以查看當前系統可以支持的操作設備:

ffmpeg -hide_banner -devices

///////////////////////////////////

採集設備fbdev的參數:我們能看出fb(FrameBuffer)的操作參數,指定幀率就行(默認值為25).

ffmpeg -h demuxer=fbdev

ffmpeg -framerate 30 -f fbdev -i /dev/fb0 out.mp4

/////////////////////////////////////

v4l2 即就是video4linux2的縮寫,也是常見視頻設備。獲取攝像頭的視頻圖片~

通過ffmpeg -h demuxer=v4l2 查看相關的操作參數

例子:

獲取本電腦的v4l2攝像頭所支持的色彩格式和解析度:

ffmpeg -hide_banner -f v4l2 -list_formats all -i /dev/video0

接下來可以使用下面的命令行,用攝像頭採集視頻文件:

ffmpeg -hide_banner -s 1920*1080 -i /dev/video0 out2.avi

對應的輸出信息為:

因為我的攝像頭不支持1920 1080,默認還原成了前面他所支持的參數 1280 720,輸出的視頻編碼採用了avi的默認編碼和碼率參數。

////////////////////////////////////////////////

ffmpeg在linux下桌面圖形的時候,通常是用x11grab設備採集桌面圖像。

ffmpeg -h demuxer=x11grab 可以獲得操作的參數:

參數包括了,採集解析度-video_size , 支持滑鼠游標 -draw_mouse, 跟中滑鼠軌跡 -follow_mouse, 指定採集區域 -region_border等參數。

例子:

1)錄制桌面

ffmpeg -f x11grab -framerate 25 -video_size 1366*768 -i :0.0 out.mp4

圖像的解析度,以實際電腦的支持來,我的因為是1366*768,所剛好錄制下整個屏幕

我設置的參數為: 幀率為25幀 ,解析度為 1366*768,採集設備為 0.0,輸出的文件為out.mp4

2)帶滑鼠的錄制桌面

ffmpeg -f x11grab -framerate 25 -video_size 1366*768 -follow_mouse 1 -i :0.0 out.mp4

3)指定錄制區域

ffmpeg -f x11grab -framerate 25 -video_size 352*288 -i :0.0+300,200 out4.mp4

-i :0.0+300,200 制定了x坐標為300 y坐標為200

這樣就可以錄制桌面了。

⑹ FFmpeg功能命令匯總

前言

如此強大的FFmpeg,能夠實現視頻採集、視頻格式轉化、視頻截圖、視頻添加水印、視頻切片、視頻錄制、視頻推流、更改音視頻參數功能等。通過終端命令如何實現這些功能,Richy在本文做一記錄,以備之後查閱。

注意:下面一一列舉的命令,未歸類整理,命令參數供參考。

如果參數有誤,大家可對照文章- FFmpeg參數命令 ,進行修改。

第一組

1.分離視頻音頻流

ffmpeg -i input_file -vcodec -an output_file_video//分離視頻流ffmpeg -i input_file -acodec -vn output_file_audio//分離音頻流

2.視頻解復用

ffmpeg –i test.mp4 –vcodec –an –f m4v test.264

ffmpeg –i test.avi –vcodec –an –f m4v test.264

3.視頻轉碼

ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264

//轉碼為碼流原始文件

ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264 //轉碼為碼流原始文件

ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi //轉碼為封裝文件

說明: -bf B幀數目控制,-g 關鍵幀間隔控制,-s 解析度控制

4.視頻封裝

ffmpeg –i video_file –i audio_file –vcodec –acodec output_file

5.視頻剪切

ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg //提取圖片

ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec -acodec output.avi //剪切視頻//-r 提取圖像的頻率,-ss 開始時間,-t 持續時間

6.視頻錄制

ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec out.avi

7、利用ffmpeg視頻切片

主要把視頻源切成若干個.ts格式的視頻片段然後生成一個.m3u8的切片文件索引提供給html5的video做hls直播源

命令如下:

ffmpeg -i 視頻源地址 -strict -2 -c:v libx264 -c:a aac -f hls m3u8文件輸出地址

8、ffmpeg縮放視頻

假設原始視頻尺寸是 1080p(即 1920×1080 px,16:9),使用下面命令可以縮小到 480p:

命令如下:

ffmpeg -i 視頻源地址 -vf scale=853:480 -acodec aac -vcodec h264 視頻輸出地址(如:out.mp4)

各個參數的含義:-i a.mov 指定待處理視頻的文件名-vf scale=853:480 vf 參數用於指定視頻濾鏡,其中 scale 表示縮放,後面的數字表示縮放至 853×480 px,其中的 853px 是計算而得,因為原始視頻的寬高比為 16:9,所以為了讓目標視頻的高度為 480px,則寬度 = 480 x 9 / 16 = 853-acodec aac 指定音頻使用 aac 編碼。註:因為 ffmpeg 的內置 aac 編碼目前(寫這篇文章時)還是試驗階段,故會提示添加參數 「-strict -2」 才能繼續,盡管添加即可。又或者使用外部的 libfaac(需要重新編譯 ffmpeg)。-vcodec h264 指定視頻使用 h264 編碼。註:目前手機一般視頻拍攝的格式(封裝格式、文件格式)為 mov 或者 mp4,這兩者的音頻編碼都是 aac,視頻都是 h264。out.mp4 指定輸出文件名上面的參數 scale=853:480 當中的寬度和高度實際應用場景中通常只需指定一個,比如指定高度為 480 或者 720,至於寬度則可以傳入 「-1」 表示由原始視頻的寬高比自動計算而得。即參數可以寫為:scale=-1:480,當然也可以 scale=480:-1

9、ffmpeg裁剪

有時可能只需要視頻的正中一塊,而兩頭的內容不需要,這時可以對視頻進行裁剪(crop),比如有一個豎向的視頻 1080 x 1920,如果指向保留中間 1080×1080 部分命令如下:ffmpeg -i 視頻源地址 -strict -2 -vf crop=1080:1080:0:420 視頻輸出地址(如:out.mp4)

其中的 crop=1080:1080:0:420 才裁剪參數,具體含義是 crop=width:height:x:y,其中 width 和 height 表示裁剪後的尺寸,x:y 表示裁剪區域的左上角坐標。比如當前這個示例,我們只需要保留豎向視頻的中間部分,所以 x 不用偏移,故傳入0,而 y 則需要向下偏移:(1920 – 1080) / 2 = 420

10. 轉視頻格式

ffmpeng -i source.mp4 -c:v libx264 -crf 24 destination.flv

其中 -crf 很重要,是控制轉碼後視頻的質量,質量越高,文件也就越大。

此值的范圍是 0 到 51:0 表示高清無損;23 是默認值(如果沒有指定此參數);51 雖然文件最小,但效果是最差的。

值越小,質量越高,但文件也越大,建議的值范圍是 18 到 28。而值 18 是視覺上看起來無損或接近無損的,當然不代表是數據(技術上)的轉碼無損。

第二組

1.ffmpeg 把文件當做直播推送至伺服器 (RTMP + FLV)

ffmpeg - re -i demo.mp4 -c - f flv rtmp://w.gslb.letv/live/streamid

2.將直播的媒體保存到本地

ffmpeg -i rtmp://r.glsb.letv/live/streamid -c streamfile.flv

3.將一個直播流,視頻改用h264壓縮,音頻改用faac壓縮,送至另一個直播伺服器

ffmpeg -i rtmp://r.glsb.letv/live/streamidA -c:a libfaac -ar 44100 -ab 48k -c:v libx264 -vpre slow -vpre baseline -f flv rtmp://w.glsb.letv/live/streamb

4.提取視頻中的音頻,並保存為mp3 然後輸出

ffmpeg -i input.avi -b:a 128k output.mp3

第三組

1.獲取視頻的信息

ffmpeg -i video.avi

2.將圖片序列合成視頻

ffmpeg -f image2 -i image%d.jpg video.mpg

上面的命令會把當前目錄下的圖片(名字如:image1.jpg. image2.jpg. 等...)合並成video.mpg

3.將視頻分解成圖片序列

ffmpeg -i video.mpg image%d.jpg

上面的命令會生成image1.jpg. image2.jpg. ...

支持的圖片格式有:PGM. PPM. PAM. PGMYUV. JPEG. GIF. PNG. TIFF. SGI

4.為視頻重新編碼以適合在iPod/iPhone上播放

ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4

5.為視頻重新編碼以適合在PSP上播放

ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4

6.從視頻抽出聲音.並存為Mp3

ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3

7.將wav文件轉成Mp3

ffmpeg -i son_origine.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3

8.將.avi視頻轉成.mpg

ffmpeg -i video_origine.avi video_finale.mpg

9.將.mpg轉成.avi

ffmpeg -i video_origine.mpg video_finale.avi

10.將.avi轉成gif動畫(未壓縮)

ffmpeg -i video_origine.avi gif_anime.gif

11.合成視頻和音頻

ffmpeg -i son.wav -i video_origine.avi video_finale.mpg

12.將.avi轉成.flv

ffmpeg -i video_origine.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv

13.將.avi轉成dv

ffmpeg -i video_origine.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 video_finale.dv

或者:

ffmpeg -i video_origine.avi -target pal-dv video_finale.dv

14.將.avi壓縮成divx

ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi

15.將Ogg Theora壓縮成Mpeg dvd

ffmpeg -i film_sortie_cinelerra.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 film_terminate.mpg

16.將.avi壓縮成SVCD mpeg2

NTSC格式:

ffmpeg -i video_origine.avi -target ntsc-svcd video_finale.mpg

PAL格式:

ffmpeg -i video_origine.avi -target pal-dvcd video_finale.mpg

17.將.avi壓縮成VCD mpeg2

NTSC格式:

ffmpeg -i video_origine.avi -target ntsc-vcd video_finale.mpg

PAL格式:

ffmpeg -i video_origine.avi -target pal-vcd video_finale.mpg

18.多通道編碼

ffmpeg -i fichierentree -pass 2 -passlogfile ffmpeg2pass fichiersortie-2

19.從flv提取mp3

ffmpeg -i source.flv -ab 128k dest.mp3

第四組

1、將文件當做直播送至live

ffmpeg -re -i localFile.mp4 -c -f flv rtmp://server/live/streamName

2、將直播媒體保存至本地文件

ffmpeg -i rtmp://server/live/streamName -c mp.flv

3、將其中一個直播流,視頻改用h264壓縮,音頻不變,送至另外一個直播服務流

ffmpeg -i rtmp://server/live/originalStream -c:a -c:v libx264 -vpre slow -f flv rtmp://server/live/h264Stream

4、將其中一個直播流,視頻改用h264壓縮,音頻改用faac壓縮,送至另外一個直播服務流

ffmpeg -i rtmp://server/live/originalStream -c:a libfaac -ar 44100 -ab 48k -c:v libx264 -vpre slow -vpre baseline -f flv rtmp://server/live/h264Stream

5、將其中一個直播流,視頻不變,音頻改用faac壓縮,送至另外一個直播服務流

ffmpeg -i rtmp://server/live/originalStream -acodec libfaac -ar 44100 -ab 48k -vcodec -f flv rtmp://server/live/h264_AAC_Stream

6、將一個高清流,復制為幾個不同視頻清晰度的流重新發布,其中音頻不變

ffmpeg -re -i rtmp://server/live/high_FMLE_stream -acodec -vcodec x264lib -s 640×360 -b 500k -vpre medium -vpre baseline rtmp://server/live/baseline_500k -acodec -vcodec x264lib -s 480×272 -b 300k -vpre medium -vpre baseline rtmp://server/live/baseline_300k -acodec -vcodec x264lib -s 320×200 -b 150k -vpre medium -vpre baseline rtmp://server/live/baseline_150k -acodec libfaac -vn -ab 48k rtmp://server/live/audio_only_AAC_48k

7、功能一樣,只是採用-x264opts選項

ffmpeg -re -i rtmp://server/live/high_FMLE_stream -c:a -c:v x264lib -s 640×360 -x264opts bitrate=500:profile=baseline:preset=slow rtmp://server/live/baseline_500k -c:a -c:v x264lib -s 480×272 -x264opts bitrate=300:profile=baseline:preset=slow rtmp://server/live/baseline_300k -c:a -c:v x264lib -s 320×200 -x264opts bitrate=150:profile=baseline:preset=slow rtmp://server/live/baseline_150k -c:a libfaac -vn -b:a 48k rtmp://server/live/audio_only_AAC_48k

8、將當前攝像頭及音頻通過DSSHOW採集,視頻h264、音頻faac壓縮後發布

ffmpeg -r 25 -f dshow -s 640×480 -i video=」video source name」:audio=」audio source name」 -vcodec libx264 -b 600k -vpre slow -acodec libfaac -ab 128k -f flv rtmp://server/application/stream_name

9、將一個JPG圖片經過h264壓縮循環輸出為mp4視頻

ffmpeg.exe -i INPUT.jpg -an -vcodec libx264 -coder 1 -flags +loop -cmp +chroma -subq 10 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -flags2 +dct8x8 -trellis 2 -partitions +parti8x8+parti4x4 -crf 24 -threads 0 -r 25 -g 25 -y OUTPUT.mp4

10、將普通流視頻改用h264壓縮,音頻不變,送至高清流服務(新版本FMS live=1)

ffmpeg -i rtmp://server/live/originalStream -c:a -c:v libx264 -vpre slow -f flv 「rtmp://server/live/h264Stream live=1〃

文/騷之哈塞給(作者)

⑺ ffmpeg 命令大全

前言
FFMPEG是特別強大的專門用於處理音視頻的開源庫。你既可以使用它的API對音視頻進行處理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,來編輯你的音視頻文件。
本文將簡要介紹一下 FFMPEG 庫的基本目錄結構及其功能,然後詳細介紹一下我們在日常工作中,如何使用 ffmpeg 提供的工具來處理音視頻文件。

在講解 FFMPEG 命令之前,我們先要介紹一些音視頻格式的基要概念。

我們按使用目的可以將 FFMPEG 命令分成以下幾類:

除了 FFMPEG 的基本信息查詢命令外,其它命令都按下圖所示的流程處理音視頻

先是解復用獲取到編碼的數據包,然後將編碼的數據包傳送給解碼器(除非為數據流選擇了流拷貝,請參閱進一步描述)。 解碼器產生未壓縮的幀(原始視頻/ PCM音頻/ ...),可以通過濾波進一步處理(見下一節)。 在過濾之後,幀被傳遞到編碼器,編碼器並輸出編碼的數據包。 最後,這些傳遞給復用器,將編碼的數據包寫入輸出文件。

默認情況下,ffmpeg只包含輸入文件中每種類型(視頻,音頻,字幕)的一個流,並將其添加到每個輸出文件中。 它根據以下標准挑選每一個的「最佳」:對於視頻,它是具有最高解析度的流,對於音頻,它是具有最多channel的流,對於字幕,是第一個字幕流。 在相同類型的幾個流相等的情況下,選擇具有最低索引的流。

您可以通過使用-vn / -an / -sn / -dn選項來禁用某些默認設置。 要進行全面的手動控制,請使用-map選項,該選項禁用剛描述的默認設置。

FFMPEG 可以使用下面的參數進行基本信息查詢。例如,想查詢一下現在使用的 FFMPEG 都支持哪些 filter,就可以用 ffmpeg -filters 來查詢。詳細參數說明如下:

查詢編譯器libfdk_aac的信息

FFMPEG 處理音視頻時使用的命令格式與參數

ffmpeg 通過 -i 選項讀取輸任意數量的輸入「文件」(可以是常規文件,管道,網路流,抓取設備等,並寫入任意數量的輸出「文件」。

原則上,每個輸入/輸出「文件」都可以包含任意數量的不同類型的視頻流(視頻/音頻/字幕/附件/數據)。 流的數量和/或類型是由容器格式來限制。 選擇從哪個輸入進入到哪個輸出將自動完成或使用 -map 選項。

要引用選項中的輸入文件,您必須使用它們的索引(從0開始)。 例如。 第一個輸入文件是0,第二個輸入文件是1,等等。類似地,文件內的流被它們的索引引用。 例如。 2:3是指第三個輸入文件中的第四個流

上面就是 FFMPEG 處理音視頻的常用命令,下面是一些常用參數

首先通過下面的命令查看一下 mac 上都有哪些設備。

注意,桌面的輸入對幀率沒有要求,所以不用限制桌面的幀率。其實限制了也沒用。

由於沒有解碼或編碼,速度非常快,沒有質量損失。 但是,由於許多因素,在某些情況下可能無法正常工作。 應用過濾器顯然也是不可能的,因為過濾器處理未壓縮的數據

上面的命令表式的是音頻、視頻都直接 ,只是將 mp4 的封裝格式轉成了flv。

在編碼之前,ffmpeg可以使用libavfilter庫中的過濾器處理原始音頻和視頻幀。 幾個鏈式過濾器形成一個過濾器圖形。 ffmpeg區分兩種類型的過濾器圖形:簡單和復雜。

請注意,某些濾鏡會更改幀屬性,但不會改變幀內容。 例如。 上例中的fps過濾器會改變幀數,但不會觸及幀內容。 另一個例子是setpts過濾器。

復雜的過濾器圖使用-filter_complex選項進行配置。 請注意,此選項是全局性的,因為復雜的過濾器圖形本質上不能與單個流或文件明確關聯。

-lavfi選項等同於-filter_complex。

一個復雜的過濾器圖的一個簡單的例子是覆蓋過濾器,它有兩個視頻輸入和一個視頻輸出,包含一個視頻疊加在另一個上面。 它的音頻對應是amix濾波器

添加文字水印

添加本地時間水印

https://www.jianshu.com/p/e4ad7e1e7ed5

先通過 ffplay 找到要刪除 LOGO 的位置

使用 delogo 濾鏡刪除 LOGO

crop 格式:crop=out_w:out_h:x:y

https://blog.csdn.net/matrix_laboratory/article/details/53158307

首先創建一個 inputs.txt 文件,文件內容如下:

然後執行下面的命令:

播放yuv數據,需要指定解析度

閱讀全文

與ffmpeg命令行參數相關的資料

熱點內容
android獲取apn 瀏覽:69
phpfpm進程池 瀏覽:791
解壓掏耳朵音頻 瀏覽:670
爬香山解壓 瀏覽:948
演算法導論回溯 瀏覽:339
開盤指標源碼查詢 瀏覽:526
有道雲保存伺服器出錯 瀏覽:639
生成360文件夾 瀏覽:1004
圖庫的文件夾是哪個 瀏覽:505
程序員為什麼葯學日語 瀏覽:423
熟悉linux常用命令 瀏覽:860
印度外賣小哥是程序員 瀏覽:413
紹興程序員開發駐場流程 瀏覽:546
索納塔8的壓縮比 瀏覽:16
私有雲主要伺服器 瀏覽:939
為什麼主題解壓那麼慢 瀏覽:862
怎麼下載掃描二維碼的手機app 瀏覽:729
雲伺服器創建私有鏡像的時候一定要關機嗎 瀏覽:117
php開發學習門戶 瀏覽:387
傳奇游戲伺服器怎麼設置 瀏覽:825