天天看點

【流媒體開發】6、ffplay指令一、ffplay播放控制二、ffplay指令主要選項三、ffplay指令進階選項四、ffplay指令播放五、ffplay簡答過濾器

一、ffplay播放控制

下面的指令是在播放之後的界面下操作:

【流媒體開發】6、ffplay指令一、ffplay播放控制二、ffplay指令主要選項三、ffplay指令進階選項四、ffplay指令播放五、ffplay簡答過濾器

二、ffplay指令主要選項

  • -x width   強制顯示寬帶。
  • -y height   強制顯示高度。
  • -video_size size    幀尺寸 設定顯示幀存儲(WxH格式),僅适用于類似原始YUV等沒有包含幀大小(WxH)的視訊。
比如: ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv
           
  • -pixel_format format    格式設定像素格式。
  • -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    按位元組進行定位拖動(0=off 1=on -1=auto),是指開始播放之後左右鍵快慢拖動,flv支援(幀頭和幀資料連續存儲),mp4不支援(幀頭和幀資料不是連續存儲)
  • -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    設定音頻濾鏡

三、ffplay指令進階選項

  • -stats   列印多個回放統計資訊,包括顯示流持續時間,編解碼器參數,流中的目前位置,以及音頻/視訊同步內插補點。預設情況下處于啟用狀态,要顯式禁用它則需要指定-nostats。
    【流媒體開發】6、ffplay指令一、ffplay播放控制二、ffplay指令主要選項三、ffplay指令進階選項四、ffplay指令播放五、ffplay簡答過濾器
  • -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    不限制輸入緩沖區大小。盡可能快地從輸入中讀取盡可能多的資料。播放實時流時預設啟用,如果未及時讀取資料,則可能會丢棄資料。此選項将不限制緩沖區的大小。若需禁用則使用-noinfbuf(适用于實時流這種)

四、ffplay指令播放

  • 播放本地檔案
    • -ss從2秒開始播放,-t 10播放10s停止,-autoexit播放完之後退出,-window_title視窗标題
ffplay -window_title "test time" -ss 2 -t 10 -autoexit test.mp4
ffplay buweishui.mp3
           
  • 播放網絡流
  • 強制解碼器
mpeg4解碼器:ffplay -vcodec mpeg4 test.mp4
h264解碼器:ffplay -vcodec h264 test.mp4 
           
  • 禁用音頻或視訊
禁用音頻:ffplay test.mp4 -an
禁用視訊:ffplay test.mp4 -vn
           
  • 播放YUV資料
    • YUV使用media info無法解析出顔色空間和分辨率,并且是一直播放,是以需要指定(幀率預設是25)
ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv
           
  • 播放RGB
ffplay -pixel_format rgb24 -video_size 320x240 -i rgb24_320x240.rgb
ffplay -pixel_format rgb24 -video_size 320x240 -framerate 5 -i rgb24_320x240.rgb
           
  • 播放PCM
    • -ar采樣率,-ac通道數,-f采樣格式,
ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm
           

五、ffplay簡答過濾器

  • 視訊旋轉: 過濾器transpose
ffplay -i test.mp4 -vf transpose=1
ffplay -h filter=transpose		//可以檢視目前濾波器的指令

           
  • 視訊反轉
ffplay test.mp4 -vf hflip		//水準翻轉
ffplay test.mp4 -vf vflip		//垂直反轉
           
【流媒體開發】6、ffplay指令一、ffplay播放控制二、ffplay指令主要選項三、ffplay指令進階選項四、ffplay指令播放五、ffplay簡答過濾器
  • 視訊旋轉和反轉
    • 多指令組合時用逗号
  • 音頻變速播放
  • 視訊變速播放
    • 音頻不變,視訊2倍快放,因為pts變小了,1s能放幀數變多
  • 音視訊同時變速
  • 更多參考

http://www.ffmpeg.org/ffmpeg-filters.html