FFMPEG是特別強大的專門用於處理音視頻的開源庫,既可以使用它的API對音視頻進行處理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,來編輯你的音視頻文件。
我們在開發TSINGSEE青犀視頻產品過程中也會采用FFMPEG來對現有的系統進行簡單的編譯及調整,比如TSINGSEE青犀視頻通道FFmpeg獲取視頻片段。本文將簡要介紹一下 FFMPEG 庫的基本目錄結構及其功能,然后詳細介紹一下我們在日常工作中,如何使用 ffmpeg 提供的工具來處理音視頻文件。
ffmpeg通過 -i 選項讀取任意數量的輸入“文件”(可以是常規音視頻文件,網絡流,抓取設備等,並寫入任意數量的輸出“文件”。
原則上,每個輸入/輸出“文件”都可以包含任意數量的不同類型的視頻流(視頻/音頻/字幕/附件/數據)。 流的數量和/或類型是由容器格式來限制。 選擇從哪個輸入進入到哪個輸出將自動完成或使用 -map 選項。
要引用選項中的輸入文件,您必須使用它們的索引(從 0 開始)。 例如。 第一個輸入文件是 0,第二個輸入文件是 1,等等。類似地,文件內的流被它們的索引引用。 例如 2:3 是指第三個輸入文件中的第四個流。
上面就是 FFMPEG 處理音視頻的常用命令,下面是一些常用參數:
拉流保存命令:
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
該命令就是將rtmp://server/live/streamName視頻流保存為dump.flv文件
實時推流命令
ffmpeg -framerate 15 -f avfoundation -i “1” -s 1280x720 -c:v libx264 -f flv rtmp://localhost:1935/live/room
該命令就是將源文件作為1280x720並且作為264編碼推到 rtmp://localhost:1935/live/room地址上進行直播。
在部分常見的應用場景中,由於ffmpeg的領先性、包容性,並且還具有高度的便攜性,很多客戶都會使用ffmpeg來進行視頻的處理,通過ffmpeg推流到視頻服務器,如果大家對ffmpeg推流比較感興趣,也可以和我們交流。TSINGSEE
青犀視頻各視頻平台均歡迎大家免費下載測試。