ffmpeg常用命令彙總

一只烤红薯發表於2024-07-02

最近在學習ffmpeg,將基礎命令做一次彙總,便於自己以後查閱:

1. ffmpeg 常用命令

ffmpeg 幫助資訊檢視

// 檢視 ffmpeg 的基礎資訊。
ffmpeg --help

// 檢視高階引數部分。
ffmpeg --help long

// 檢視全部的幫助資訊。
ffmpeg --help full

轉封裝

// -hide_banner: 隱去 ffmpeg 的編譯資訊。
// -codec copy : 音訊和影片的編碼方式保持不變。
// -ss         : 指定截切開頭,這裡從影片檔案的第10秒開始擷取內容。
// -t          : 指定影片總長度,這裡擷取120秒的內容。
// -f          : 轉封裝後的格式,這裡採用 Flash Video(flv)。
ffmpeg -i ./故鄉的雲.mp4 -hide_banner -codec copy -ss 10 -t 120 -f flv ./故鄉的雲.flv
// 將 mp4 封裝格式的檔案轉封裝為 flv 封裝格式的檔案。
// 音訊編碼方式不變, 影片編碼採用 h.264。
// 輸出解析度設定為 600x400。
ffmpeg -i ./故鄉的雲.mp4 -acodec copy -vcodec libx264 -s 600x400 ./故鄉的雲_600x400.flv

提取影片

ffmpeg -i ./水流眾生.mp4 -an -vcodec copy -hide_banner ./水流眾生.h264

提取音訊

ffmpeg -i ./水流眾生.mp4 -vn -acodec copy -hide_banner ./水流眾生.aac

原始檔以及提取後的音影片檔案如下:

2. ffprobe 常用命令

ffprobe 有許多選項,可以用來指定輸出的格式、檢視的資訊等。

-v             :  指定輸出的詳細程度。0為較少的資訊,9為更多的資訊。
-show_format   :  檢視媒體檔案的容器資訊,包括格式、時長、位元速率等。與原始碼中的 struct AVFormatContext 對應。
-show_streams  :  檢視媒體檔案的流資訊,包括編碼格式、幀率、解析度等。與原始碼中的 struct AVStream 對應。
-show_packets  :  檢視多媒體資料包資訊,包含多媒體型別、流索引、播放時間戳pts、解碼時間戳dts等。與原始碼中的 struct AVPacket對應。
-show_frames   :  檢視媒體檔案的幀資訊,包含幀型別、色彩格式、幀型別等。與原始碼中的 struct AVFrame 對應。
-show_chapters :  檢視媒體的檔案的章節資訊。
-of            :  指定輸出的格式,支援的格式包括 JSON、XML等。

示例如下:

// 分析多媒體的封裝格式。
ffprobe -v quiet -show_format ./故鄉的雲.mp4

// 檢視多媒體檔案中的流資訊。
ffprobe -v quiet -show_streams ./故鄉的雲.mp4

// 檢視多媒體資料包資訊。
ffprobe -v quiet -show_packets ./故鄉的雲.mp4

// 檢視影片檔案的幀資訊。
ffprobe -v quiet -show_frames ./故鄉的雲.mp4

3. ffplay 常用命令

// 從影片的第 30s 開始播放,播放 10s 的檔案。
ffplay -ss 30 -t 10 ./故鄉的雲.mp4
// 播放影片時播放器的視窗顯示為自定義標題
ffplay -window_title "故鄉的雲" ./故鄉的雲.mp4

相關文章