FFmpeg 以其高度靈活而著稱,但這種靈活性同時也帶來了顯著的學習成本。對于初學者而言,最常見的困惑并不在于“不會寫命令”,而在于不清楚參數從何而來、參數之間如何分類、哪些參數屬于通用語義,哪些又是特定模塊的私有能力。
FFmpeg 的參數體系具有以下特點:
? 參數集合依賴于編譯配置與啟用的第三方庫
? 編碼器、解碼器、濾鏡各自擁有獨立的私有參數
? 不同 FFmpeg 版本會新增、棄用或調整參數
因此,理解 FFmpeg 參數的正確方式,是掌握其參數分類邏輯,并學會通過命令行自行查詢當前環境下的完整參數集。
1. 查看命令參數
在使用 FFmpeg 前,首先應掌握如何查詢參數本身。
(1)查看當前可用參數總覽
ffmpeg -h該命令用于查看當前版本下的常用參數摘要,適合快速查閱。
(2)查看完整高級參數
ffmpeg -h full該命令會輸出完整參數列表,包括高級選項與內部參數,是排查復雜問題時的重要工具。
(3)查看某個編碼器的全部私有參數
ffmpeg -h encoder=libx264不同編碼器擁有各自的私有參數,此命令用于查看指定編碼器的完整配置項。
(4)查看濾鏡的完整參數
ffmpeg -h filter=scaleffmpeg -h filter=aresample濾鏡是 FFmpeg 參數體系中最為復雜的部分,必須按濾鏡名稱單獨查詢。
2. FFmpeg 命令參數詳解
(1)全局參數
參數
英文全稱
中文說明
-version
Version
顯示 FFmpeg 版本信息
-formats
Formats
列出支持的封裝格式
-codecs
Codecs
列出全部編解碼器
-encoders
Encoders
列出可用編碼器
-decoders
Decoders
列出可用解碼器
-filters
Filters
列出所有濾鏡
-devices
Devices
列出輸入 / 輸出設備
-hwaccels
Hardware Accelerations
列出硬件加速方式
-loglevel
Log Level
設置日志輸出級別
-hide_banner
Hide Banner
隱藏啟動版權信息
-y
Yes
自動覆蓋輸出文件
-n
No
禁止覆蓋輸出文件
(2)輸入/輸出通用參數
參數
英文全稱
中文說明
-i
Input
指定輸入文件
-f
Format
強制指定封裝格式
-map
Stream Mapping
顯式指定流映射關系
-shortest
Shortest Stream
以最短流長度結束
-copyts
Copy TimeStamp
保留原始時間戳
-start_at_zero
Start At Zero
時間戳從 0 開始
(3)視頻參數
參數
英文全稱
中文說明
-c:v
Codec: Video
指定視頻編碼器
-vn
Video None
禁用視頻流
-r
Frame Rate
設置視頻幀率
-s
Size
設置分辨率
-aspect
Aspect Ratio
設置寬高比
-pix_fmt
Pixel Format
設置像素格式
-profile:v
Profile: Video
編碼 Profile
-level:v
Level: Video
編碼 Level
-b:v
Bitrate: Video
視頻碼率
-maxrate
Maximum Bitrate
最大碼率
-bufsize
Buffer Size
碼率緩沖區大小
-g
GOP Size
關鍵幀間隔
-keyint_min
Keyframe Interval Minimum
最小關鍵幀間隔
(4)音頻參數
參數
英文全稱
中文說明
-c:a
Codec: Audio
指定音頻編碼器
-an
Audio None
禁用音頻流
-ac
Audio Channels
設置聲道數
-ar
Audio Rate
設置采樣率
-b:a
Bitrate: Audio
音頻碼率
-sample_fmt
Sample Format
采樣格式
-af
Audio Filter
音頻濾鏡
(5)字幕參數
參數
英文全稱
中文說明
-c:s
Codec: Subtitle
指定字幕編碼器
-sn
Subtitle None
禁用字幕流
-map 0:s:0
Stream Mapping: Subtitle
映射字幕流
-scodec
Subtitle Codec
字幕編碼格式
(6)時間控制與裁剪
參數
英文全稱
中文說明
-ss
Start Seek
設置起始時間
-to
Time Out
設置結束時間
-t
Duration Time
指定持續時長
-itsoffset
Input Time Offset
輸入時間偏移
(7)流復制與同步控制
參數
英文全稱
中文說明
-c copy
Codec Copy
復制流,不重新編碼
-copy_unknown
Copy Unknown Streams
復制未知流
-re
Read at Native Rate
按實時速率讀取
(8)濾鏡系統參數
參數
英文全稱
中文說明
-vf
Video Filter
視頻濾鏡
-af
Audio Filter
音頻濾鏡
-filter_complex
Complex Filtergraph
復雜濾鏡圖
-lavfi
Libavfilter
使用濾鏡作為輸入
(9)硬件加速相關參數
參數
英文全稱
中文說明
-hwaccel
Hardware Acceleration
指定硬件加速方式
-hwaccel_device
Hardware Device
指定硬件設備
-hwaccel_output_format
Hardware Output Format
硬件輸出格式
h264_nvenc
NVIDIA Encoder
NVIDIA 硬件編碼
h264_qsv
Quick Sync Video
Intel QSV 編碼
h264_vaapi
Video Acceleration API
Linux VAAPI 編碼
(10)調試與分析參數
參數
英文全稱
中文說明
-report
Report
生成詳細日志
-benchmark
Benchmark
輸出性能統計
-stats
Statistics
顯示處理進度
-debug
Debug Mode
調試輸出
小結
FFmpeg 的參數體系并非簡單的“命令選項集合”,而是一套圍繞流(Stream)、編解碼器、濾鏡與封裝格式構建的完整控制語言。
理解參數的分類邏輯,比死記具體參數更為重要。
在實際工程與 AI 音視頻處理場景中,應遵循以下原則:
先用查詢命令理解當前環境支持的能力,再根據數據目標選擇必要參數組合。
只有在理解語義的前提下使用參數,FFmpeg 才能真正成為穩定、可控、可預期的多媒體基礎設施工具。
![]()
“點贊有美意,贊賞是鼓勵”
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.