影像處理的範圍過於龐大, 包含ffmpeg, opencv, 作業系統, 安裝方式, 操作方式, 及Python的支援方式. 所以才獨立此項目分別說明.
FFmpeg簡介
FFmpeg是一套可以用來記錄, 轉換音頻視頻, 並能將其轉化為stream的開源程式. 採用LGPL/GPL授權模式. 提供了錄制, 轉換及流化音視頻的完整解決方案.
FFmepg是在Linux平台上開發出來的. 但經過重新編譯後, 在Windows及Mac OS X也可以使用. 早期由Fabrice Bellard發起, 後來由Michael Niedermayer負責維護. 裏面的成員都來自於MPlayer這個專案. FF 表示 Fast Forward 的意思
FFmepg組成
ffmpeg由三個部份組成. 第一個為完成品工具, 第二為 SDK, 第三為完整代碼
完成品工具
共有四個工具
ffmpeg : 音視頻轉碼
ffplay : 簡易音視頻播放器
ffserver : stream媒体服務器
ffprobe : 分析器
SDK
可供自行撰寫程式碼調用的函數庫, 常見的有如下
libavcode : 編碼器及解碼器
libavutil : 常用工具, 如隨機亂數生成器, 數據結構, 數學函數
libavformat : 多媒体容器格式的封裝, 解封裝
libavfilter : 瀘鏡功能
libavdevice : 音視頻數據採集和渲染等功能的相關設備
libswscale : 圖像網放及其他轉換功能
libswresample : 音訊頻重新採樣和格式轉換
Linux安裝
sudo apt-get install ffmpeg
Windows安裝
進入 http://ffmpeg.org/download.html , 然後選取 shared的版本, 解開後即可使用, 請記得設定系統環境變數 path
簡易操作
ffmpeg -h : 相關命令查詢
ffmpeg -i test.mp4 : 查詢影片的編碼方式及相關資訊
參數格式
ffmpeg [options] [[infile options] -i infile] {[outfile options] outfile}
optoins : 針對 ffmpeg的設定選項
infile option : 針對輸入影像的設定選項
outfile option :針對輸出影像的設定選項
常用查詢
ffmpeg -f v4l2 -list_formats all -i /dev/video0 #查詢解析度
ffprobe -v quiet -print_format json -show_format -show_streams -i /dev/video0 #查webcam參數
v4l2-ctl --list-formats-ext
轉檔
在Windows下,直接使用ffmpeg轉檔指令如下
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i 魔鬼終結者6.黑暗宿命.Terminator.Dark.Fate.2019.2160p.mkv -b:v 6000k -c:v h264_nvenc out.mp4
使用此方法轉檔,比格式化工廠更快,畫質更好。