ffmpeg:Hyper fast Audio and Video encoder(超快音視頻編碼器)
ffplay:Simple media player (簡單媒體播放器)
ffprobe:Simple multimedia streams analyzer(簡單多媒體流分析器)
ffmpeg基本信息及使用
?ffmpeg查看幫助文檔:
基本信息:ffmpeg -h
高級信息:ffmpeg -h long
所有信息:ffmpeg -h full
輸出信息到文件ffmpeg_h_full.log查看: ffmepg -h full > ffmpeg_h_full.log
查看具體分類所支持的參數 ffmepg -h type=name
比如:
ffmpeg -h muxer=flv
ffmpeg -h filter=atempo (atempo調整音頻播放速率)
ffmpeg -h encoder=libx264
ffmpeg命令分類查詢
-version 顯示版本
-bsfs 顯示可用比特流filter
-buildconf 顯示編譯配置
-protocols 顯示可用的協議
-formats 顯示可用格式 (muxers+demuxers)
-filters 顯示可用的過濾器
-pix_fmts 顯示可用的像素格式
-muxers 顯示可用復用器
-demuxers 顯示可用解復用器
-layouts 顯示標準聲道名稱
-sample_fmts 顯示可用的音頻采樣格式
-codecs 顯示可用編解碼器 (decoders+encoders)
-decoders 顯示可用解碼器
-encoders 顯示可用編碼器
-colors 顯示可用的顏色名稱
ffmpeg基本使用案例:修改視頻編碼格式和分辨率
ffmpeg -i test_1920x1080.mp4 -acodec copy -vcodec libx264 -s 1280x720 test_1280x720.flv
ffmpeg -i test_1920x1080.mp4 -acodec copy -vcodec libx265 -s 1280x720 test_1280x720.mkv
ffplay播放器控制
q, ESC退出播放
t 循環切換字幕流
f 全屏切換
c 循環切換節目
p, SPC 暫停
w 循環切換過濾器或顯示模式
m 靜音切換
s 逐幀播放
9, 0 9減少音量,0增加音量
left/right 向后/向前拖動10秒
down/up 向后/向前拖動1分鐘
a 循環切換音頻流
鼠標右鍵單擊:拖動與顯示寬度對應百分比的文件進行播放
鼠標左鍵雙擊:全屏切換
v 循環切換視頻流
ffplay命令選項
-x width 強制顯示寬度。
-y height 強制顯示高度。
-pixel_format format 格式設置像素格式。?
-video_size size幀尺寸 設置顯示幀存儲(WxH格式),僅適用于類似原始YUV等沒有包含幀大小(WxH)的視頻。
比如: ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv
-fs 以全屏模式啟動。
-an 禁用音頻(不播放聲音)
-vn 禁用視頻(不播放視頻)
-sn 禁用字幕(不顯示字幕)
-ss pos 定位到某個時間點播放,注意時間單位:比如'55' 55seconds, '12:03:45' ,12 hours, 03 minutes and 45 seconds, '23.189' 23.189second
-t duration 設置播放視頻/音頻長度,時間單位如 -ss選項
-bytes 按字節進行定位拖動(0=off 1=on -1=auto)。
-seek_interval interval 自定義左/右鍵定位拖動間隔(以秒為單位),默認值為10秒(代碼沒有看到實現)
-nodisp 關閉圖形化顯示窗口,視頻將不顯示
-noborder 無邊框窗口
-volume vol 設置起始音量。音量范圍[0 ~100]
-f fmt 強制使用設置的格式進行解析。比如-f s16le
-window_title title 設置窗口標題(默認為輸入文件名)
-loop number設置播放循環次數
-showmode mode 設置顯示模式,可用的模式值:0 顯示視頻,1 顯示音頻波形,2 顯示音頻頻譜。缺省為0,如果視頻不存在則自動選擇2
-vf filtergraph 設置視頻濾鏡
-af filtergraph 設置音頻濾鏡
-stats 打印多個回放統計信息,包括顯示流持續時間,編解碼器參數,流中的當前位置,以及音頻/視頻同步差值。默認情況下處于啟用狀態,要顯式禁用它則需要指定-nostats。。
-fast 非標準化規范的多媒體兼容優化。
-genpts 生成pts。
-sync type 同步類型 將主時鐘設置為audio(type=audio),video(type=video)或external(type=ext),默認是audio為主時鐘。
-ast audio_stream_specifier 指定音頻流索引,比如-ast 3,播放流索引為3的音頻流
-vst video_stream_specifier指定視頻流索引,比如-vst 4,播放流索引為4的視頻流
-sst subtitle_stream_specifier 指定字幕流索引,比如-sst 5,播放流索引為5的字幕流
-autoexit 視頻播放完畢后退出
-exitonkeydown 鍵盤按下任何鍵退出播放
-exitonmousedown 鼠標按下任何鍵退出播放
-codec:media_specifier codec_name 強制使用設置的多媒體解碼器,media_specifier可用值為a(音頻), v(視頻)和s字幕。比如-codec:v h264_qsv 強制視頻采用h264_qsv解碼
-acodec codec_name 強制使用設置的音頻解碼器進行音頻解碼
-vcodec codec_name 強制使用設置的視頻解碼器進行視頻解碼
-scodec codec_name 強制使用設置的字幕解碼器進行字幕解碼
-autorotate 根據文件元數據自動旋轉視頻。值為0或1 ,默認為1。
-framedrop 如果視頻不同步則丟棄視頻幀。當主時鐘非視頻時鐘時默認開啟。若需禁用則使用 -noframedrop
-infbuf 不限制輸入緩沖區大小。盡可能快地從輸入中讀取盡可能多的數據。播放實時流時默認啟用,如果未及時讀取數據,則可能會丟棄數據。此選項將不限制緩沖區的大小。若需禁用則使用-noinfbufffplay命
ffplay簡單過濾器
視頻旋轉
ffplay -i test.mp4 -vf transpose=1
視頻反轉
ffplay test.mp4 -vf hflip
ffplay test.mp4 -vf vflip
視頻旋轉和反轉
ffplay test.mp4 -vf hflip,transpose=1
音頻變速播放
ffplay -i test.mp4 -af atempo=2
視頻變速播放
ffplay -i test.mp4 -vf setpts=PTS/2
音視頻同時變速
ffplay -i test.mp4 -vf setpts=PTS/2 -af atempo=2
ffmpeg 命令參數說明
主要參數:
? -i 設定輸入流
? -f 設定輸出格式(format)
? -ss 開始時間
? -t 時間長度
音頻參數:
? -aframes 設置要輸出的音頻幀數
? -b:a 音頻碼率
? -ar 設定采樣率
? -ac 設定聲音的Channel數
? -acodec 設定聲音編解碼器,如果用copy表示原始編解碼數據必須被拷貝。
? -an 不處理音頻
? -af 音頻過濾器
視頻參數:
? -vframes 設置要輸出的視頻幀數
? -b 設定視頻碼率
? -b:v 視頻碼率
? -r 設定幀速率
? -s 設定畫面的寬與高
? -vn 不處理視頻
? -aspect aspect 設置橫縱比 4:3 16:9 或 1.3333 1.7777
? -vcodec 設定視頻編解碼器,如果用copy表示原始編解碼數據必須被拷貝。
? -vf 視頻過濾器