學習目標
- 了解 FFmpeg
- 學習 FFmpeg 工具的下載及環境配置
- 了解 FFmpeg 工具的使用方式
- 了解 FFmpeg play 的使用方法
- 了解 FFmpeg paly 的音量設置、窗口設置、音量設置等設置方法
一、了解 FFmpeg
FFmpeg 是一個音視頻處理的工具,通過 FFmpeg 可以對視頻進行旋轉、縮小、添加水印、截圖、添加馬賽克、直播推流、轉化音頻等操作。
在使用 FFmpeg 前需要了解一些專業術語,例如容器、媒體流、數據幀(包)、編解碼器、復用、解復用這些概念釋義如下:
- 容器:容器是指一種特定格式的多媒體文件,例如 mp4、flv 文件等;
- 媒體流:媒體流一般是指時間軸上的連續的數據,這些數據是需要連續的,如一段音頻數據、一段視頻數據等;
- 數據幀:數據幀是指媒體流中的最小處理單元,例如很多張圖片組成一段連續的視頻,每一幀則是每一張圖片;
- 編解碼器:指對一個數據流進行變換的程序;
- 復用:把不同的流根據某種容器(mp4、flv)的規則集合在一起成為一個文件稱為 復用;
- 解復用:解復用則是與復用相反,把一個文件中不同的流解析出來稱之為 解復用;
二、下載及環境配置
在使用 FFmpeg 前我們需要下載 FFmpeg 工具以及對其配置環境,方便接下來的使用及開發。
2.1 下載
首先進入官網 https://ffmpeg.org/download.html 后,找到 Windows 下(本教程使用 win 作為基礎開發環境),隨后點擊 win 圖標:
之后再點擊 Windows build ****:
隨后找到對應的文件:
隨后下載完畢后解壓,解壓之后的文件夾打開發現有一個bin目錄,進入bin 目錄后發現有如下 exe 工具:
2.2 環境配置
下載 FFmpeg 工具之后,我們需要配置對應的環境變量,使其具備在 系統 中可直接進行調用。首先我們需要把當前 bin 目錄作為一個系統環境目錄,打開編輯系統環境窗口:
在系統環境中找到 path:
隨后復制對應的 bin 目錄到 path 之中:
配置這個目錄目的是將該目錄放到 path 后,當使用一些“工具” 或其他東西時,系統將會在已配置的目錄下循環對應的“工具” 并執行對應的操作,例如我配置完畢后,打開 cmd 輸入 FFmpeg -version
查看對應的 FFmpeg 版本,此時結果如下:
若沒有配置,將會找不到命令。
三、FFmpeg play 初嘗試
3.1 簡單使用 FFmpeg 的 play 播放器
在使用 FFmpeg 的其他功能前,我們先從 FFmpeg 的 play 播放器入手,了解 FFmpeg 的使用方式,為之后的使用奠定基礎。FFmpeg有一個 play 播放器,通過這個播放器我們可以播放對應的視頻。
使用這個播放器我們需要使用命令行形式調用,在 dos 窗口中切換到對應目錄下(當然你可以直接指定文件),在此切換到到視頻文件目錄是為了方便接下來的操作:
接著,我們可以通過 dir 查看當前目錄下的文件內容:
當前目錄下有一個 jsgd 的 mp4 文件,在此我們通過 ffplay 命令可通過 FFmpeg 的播放器播放當前的視頻文件:
enter 鍵確認后,將會彈出播放窗口:
此時在 dos 窗口中我們可以觀察到對應的播放信息:
播放時,可以按 esc 鍵對應的退出播放。
3.2 FFmpeg play 播放器的一些指令操作
接著我們了解一下這個 play 播放器如何進行操作,我們可以使用 ffplay -help 對這個 ffplay 播放器的所有指令進行查看:
不過此時輸出的內容過多,并不方便查看,我們可以通過命令 ffplay -help > ffplayHelp.txt
將輸出的信息存儲到對應的文本文件下:
該命令會將對應的輸出信息保存到指定的文件之中:
在此打開,我們可以看到很多的幫助信息,在此我們先拉到最下面(這部分是播放時可通過某些按鍵發出指令進行操作的部分):
此處的幫助信息是對應操作 ffplay 播放器的一些手動指令,這些按鍵指令對應如下的表功能(在此我做了翻譯):
按鍵指令 | 功能 |
---|---|
q, ESC | 退出 |
f | 切換到全屏 |
m | 開關靜音 |
q, ESC | 退出 |
9、0 | 分別減少和增加音量 |
/, * | 分別減少和增加音量 |
a | 循環當前節目中的音頻通道 |
v | 循環視頻通道 |
t | 循環播放當前節目中的字幕通道 |
c | 循環項目 |
w | 循環播放視頻過濾器或顯示模式 |
left/right | 前進或后退10秒 |
down/up | 前進或后退1分鐘 |
page down/page up | 前進或后退10分鐘 |
right mouse click | 右鍵在屏幕上拖動可以對應的拖動播放進度條 |
left double-click | 左鍵雙擊全屏 |
s | 逐幀播放 |
此時我們可以嘗試以上所述命令對 ffplay 的作用。
3.3 FFmpeg play 播放設置
音量設置
在使用 ffplay 時還可以通過對應的命令提前設置播放參數。例如播放時,可能音量過大對用戶并不友好,此時我們可以在播放前就設置對應的播放音量,此時需要使用 volume 參數,在我們導出的 help 文本中,可以查找后看到對應的參數:
此時 volume 再 help 幫助中,所描述的是 “ 設置初始音量(從-900到0)(默認為0)”,那么此時我們設置一個 0 試試是否靜音:
此時再次輸入命令后,enter 執行 視頻并沒有任何聲音,測試成功。(由于音頻無法用文本形式感知音量大小,在此也不再截圖)
指定播放窗口大小
在使用 FFmpeg 時,若播放設備分辨率有局限,那么可以設置對應的 x、y 指定播放大小,例如命令:ffplay -x 400 -y 400 jsgd.mp4
。該命令設置視頻大小為 400*400,此時輸入命令后,播放窗口如下:
其他設置參數
除了指定大小之外,還有以下命令(不限于)可以指定對應播放形式:
命令 | 功能 |
---|---|
fs | 全屏啟動 |
an | 禁用音頻 |
vn | 禁用視頻只有音頻 |
sn | 禁用字幕 |
ss pos | 指定位置開始播放,其中 pos 是定位的秒數位置 |
t duration | 設置視頻、音頻的播放長度 |
video_size size | 幀尺寸設置 |
nodisp | 關閉圖形化顯示窗口(播放但不顯示視頻) |
noborder | 播放無邊框 |
loop number | 設置播放循環次數 |
showmode mode | 設置顯示模式(0顯示視頻 1顯示音頻波形 2顯示音頻頻譜) |
window_title title | 設置窗口標題 |
vf filtergraph | 設置視頻濾鏡 |
af filtergraph | 設置視頻濾鏡 |
autoexit | 播放完畢自動退出 |
例如 靜音命令的使用命令為 :ffplay -x 400 -y 400 -an jsgd.mp4
。此時你使用命令播放視頻后,視頻將會靜音播放。
若你禁用視頻,則會只播放音頻,命令為:ffplay -x 400 -y 400 -vn jsgd.mp4
,播放效果如下:
如果你想從某個位置(秒數)開始播放視頻,那么此時直接使用 ss 命令定位到對應的秒數即可,命令為: ffplay -x 400 -y 400 -ss 60 jsgd.mp4
,播放效果如下:
不過你可能對于長視頻的秒數并不感冒,那么此時還可以對應的指定多少分多少秒(格式為:00:05:15)進行播放,例如命令 ffplay -x 400 -y 400 -ss 00:05:15 jsgd.mp4
,播放效果如下:
若你只想播放一個視頻固定時間,例如你指向播放10秒,那么此時可以使用 -t 命令,命令如:ffplay -x 400 -y 400 -ss 00:05:15 -t 10 jsgd.mp4
,運行命令后,播放 10 秒后將會結束;
若你想指定多少分鐘,但并不好計算時間,也可以使用時間格式進行指定的播放時間,例如:ffplay -x 400 -y 400 -ss 00:05:15 -t 00:00:05 jsgd.mp4
:
總結
本章節主要講解了 FFmpeg 工具的安裝和使用。由于本章節是第一章,主要通過 ffplay 學習 FFmpeg 工具的使用方法,并且學習了 ffplay 對視頻文件的播放設置,通過本章節的學習為之后 FFmpeg 的使用奠定基礎。