FFMPEG进阶系列01-ffplay命令详解
概述
命令格式
ffplay [options] [input_url]
主要選項
| -x width | 強制顯示寬帶。 |
| -y height | 強制顯示高度。 |
| -s size | 幀尺寸 設置顯示幀存儲(WxH格式),僅適用于類似原始YUV等沒有包含幀大小(WxH)的視頻。該參數已經被廢棄,請嘗試用-video_size代替 |
| -fs | 以全屏模式啟動。 |
| -an | 禁用音頻(不播放聲音) |
| -vn | 禁用視頻(不播放視頻) |
| -sn | 禁用字幕(不顯示字幕) |
| -ss pos | 根據設置的秒進行定位拖動,注意時間單位:比如'55' 55 seconds, '12:03:45' ,12 hours, 03 minutes and 45 seconds, '23.189' 23.189 second |
| -t duration | 設置播放視頻/音頻長度,時間單位如 -ss選項 |
| -bytes | 按字節進行定位拖動。 |
| -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 | 設置音頻濾鏡 |
| -i input_url | input_url |
| ? | ? |
| ? | ? |
| ? | ? |
| ? | ? |
高級選項
| -pix_fmt format | 格式設置像素格式。此選項已被棄用,有利于私有選項,try -pixel_format |
| -stats | 打印多個回放統計信息,包括顯示流持續時間,編×××參數,流中的當前位置,以及音頻/視頻同步差值。默認情況下處于啟用狀態,要顯式禁用它則需要指定-nostats。 |
| -fast | 非標準化規范的多媒體兼容優化 |
| -genpts | 生成pts。 |
| -sync type | 同步類型 將主時鐘設置為audio(type=audio),video(type=video)或external(type=ext),默認是音頻為主時鐘。 |
| -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 h265 強制視頻采用h265解碼 |
| -acodec codec_name | 強制使用設置的音頻×××進行音頻解碼 |
| -vcodec codec_name | 強制使用設置的視頻×××進行視頻解碼 |
| -scodec codec_name | 強制使用設置的字幕×××進行字幕解碼 |
| -autorotate | 根據文件元數據自動旋轉視頻。默認情況下啟用,若需禁用則使用-noautorotate |
| -framedrop | 如果視頻不同步則丟棄視頻幀。當主時鐘非視頻時鐘時默認開啟。若需禁用則使用 -noframedrop |
| -infbuf | 不限制輸入緩沖區大小。盡可能快地從輸入中讀取盡可能多的數據。播放實時流時默認啟用,如果未及時讀取數據,則可能會丟棄數據。此選項將不限制緩沖區的大小。若需禁用則使用-noinfbuf |
播放控制
| q, ESC | 退出播放 |
| f | 全屏切換 |
| p, SPC | 暫停 |
| m | 靜音切換 |
| 9, 0 | 9減少音量,0增加音量 |
| /, * | /減少音量,*增加音量 |
| a | 循環切換音頻流 |
| v | 循環切換視頻流 |
| t | 循環切換字幕流 |
| c | 循環切換節目 |
| w | 循環切換過濾器或顯示模式 |
| s | 逐幀播放 |
| left/right | 向后/向前拖動10秒 |
| down/up | 向后/向前拖動1分鐘 |
| page down/page up | 拖動上一個/下一個?;蛘呷绻麤]有章節向后/向前拖動10分鐘。 |
| 鼠標右鍵單擊 | 拖動與顯示寬度對應百分比的文件進行播放 |
| 鼠標左鍵雙擊 | 全屏切換 |
應用范例
播放媒體文件
ffplay -window_title "rtmp stream" rtmp://202.69.69.180:443/webcast/bshdlive-pc
ffplay -window_title "test time" -ss 2 -t 10 -autoexit test.mp4
強制使用mp3×××解碼aac的音頻,將會報錯:
ffplay -acodec mp3 test.mp4
ffplay -vst 4 -ast 5 ~/Movies/movie/ChinaTV-11.ts
ffplay的數據可視化分析應用
ffplay -debug vis_mb_type -window_title "show vis_mb_type" -ss 20 -t 10 -autoexit Titanic.ts
顯示窗口內容
在輸出的視頻信息中,可以看到不同顏色的方塊,下面來說明一下這些顏色代表著什么信息:
通過ffplay查看B幀預測與P幀預測信息,希望將信息在窗口中顯示出來,使用命令
ffplay -vismv pf Titanic.ts
顯示效果如圖
通過圖中的箭頭可以看到p幀運動估計的信息
而vismv參數則是用來顯示圖像解碼時的運動向量信息的,參數可以設置三種類型的運動向量信息顯示
這個vismv參數將會在未來被替換掉,未來更多的是使用codecview這個filter來進行設置,如上面
圖像,也可以通過下面這條命令完成
ffplay -flags2 +export_mvs Titanic.ts -vf codecview=mv=pf+bf+bb
ffplay -showmode 1 Titanic.ts
過濾器(filter)
在多媒體處理中,filter的意思是被編碼到輸出文件之前用來修改輸入文件內容的一個軟件工具。比如:視頻翻轉,旋轉,縮放等。
語法:[input_link_label1] [input_link_label1]... filter_name=parameters [output_link_label1] [output_link_label2] ...
過濾器圖link label:是標記過濾器的輸入或輸出名稱
- 將原視頻按順時針旋轉90度
ffplay -i test.mp4 -vf transpose=1 - 將原視頻垂直翻轉
ffplay -i test.mp4 -vf vflip transpose=1 - 將以下兩個效果疊加
ffplay -i test.mp4 -vf vflip,transpose=1
- 實現快速播放,聲音速度是原始速度的1.5倍
ffplay -i test.mp4 -af atempo=1.5
待續 尚未完成
資源
可用RTMP鏈接
香港衛視,rtmp://live.hkstv.hk.lxdns.com/live/hks (最近測試已不能連接)
香港財經,rtmp://202.69.69.180:443/webcast/bshdlive-pc
韓國GoodTV,rtmp://mobliestream.c3tv.com:554/live/goodtv.sdp
韓國朝鮮日報,rtmp://live.chosun.gscdn.com/live/tvchosun1.stream
美國1,rtmp://ns8.indexforce.com/home/mystream
美國2,rtmp://media3.scctv.net/live/scctv_800
美國中文電視,rtmp://media3.sinovision.net:1935/live/livestream
多種測試碼流
http://samples.mplayerhq.hu/
參考
https://wenku.baidu.com/view/296eefcaf90f76c661371af1.html
轉自:https://blog.51cto.com/240630/2301523?source=dra
總結
以上是生活随笔為你收集整理的FFMPEG进阶系列01-ffplay命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二期分享 | WebSocket+MS
- 下一篇: 去除git mergetool不产生*.