最近在學習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