FFmpeg實踐兼BAT入門
目錄
-前言
-詞典
-發(fā)現(xiàn)需求&定制方案
-完成方案

前言
這篇文章,目標讀者為剛安裝完FFmpeg的小白,也就是讀過我的上篇文章FFmpeg——從完全不懂,到輕松入門,當然在讀它前,需要先讀第一篇文章——視頻、音頻、字幕…基礎知識,從完全不懂,到輕松入門,因為我基本不會寫重復內(nèi)容哦,如果你發(fā)現(xiàn)哪里不懂,很可能是你前面的文章看得不仔細。
在讀完以上文章后,你可能不清楚CMD的基礎命令,以及如何寫一個BAT,那么這篇文章將幫助你輕松入門。
這篇文章將采用“發(fā)現(xiàn)需求→定制方案→完成方案”的形式進行講解,這將非常有利于小白的學習,所以建議按順序閱讀,我覺得小白可能不懂的詞匯會寫在詞典里,如果你還有其他不懂的詞匯,記得善用搜索引擎。

詞典
這期木有新詞,太棒啦!

發(fā)現(xiàn)需求&定制方案
之前我在測試幾種無損圖片編碼時,發(fā)現(xiàn)Windows 10的圖片查看軟件——“照片”——不能解碼WebP,更不能解碼JPEG-XL與JPEG-LS,所以我查了查有哪些好用的圖片查看器,然后下載了XnViewMP,這個軟件的操作邏輯和UI還是比較符合我的習慣和審美的,但是我發(fā)現(xiàn)XnViewMP并不能解碼JPEG-LS,而JPEG-LS恰好是我測試的幾個格式里壓縮率最高的,這就令我有些頭疼了,因為的查了可以解碼JPEG-LS的圖片查看器,沒找到能解碼的。
這里我就直接說結(jié)果吧,一位網(wǎng)友告訴我IrfanView就可以解碼,不過它需要在官網(wǎng)下載相關插件,具體安裝操作不難,我就不細說了。IrfanView的啟動速率和解碼速率,特別是解碼JPEG-XL的速率比XnViewMP快很多,所以大家有需求的話,直接下載IrfanView即可。
OK,插敘結(jié)束,繼續(xù)說:我當時突發(fā)奇想,既然FFmpeg可以編解碼這些格式,那我用FFmpeg不就行了嗎?比如FFplay。然后我就查了一下,把打開文件的默認軟件換成BAT,文件的路徑會不會作為變量傳遞給BAT的環(huán)境,發(fā)現(xiàn)可以,并且我立刻驗證了一下:
輸出結(jié)果就是該文件路徑。
再來個插敘:FFplay確實可以查看圖片,但不方便,比如放大等操作,所以使用XnViewMP等軟件打開即可,你是不是在想:
其實可以直接
當然,不用FFplay的缺點就是需要先用FFmpeg轉(zhuǎn)碼,所以這個BAT需要以下功能:
處理輸入文件的路徑名
決定輸出路徑名
FFmpeg轉(zhuǎn)碼
處理路徑是非常重要的,如果你跟著我上面的提示做了,你會發(fā)現(xiàn)"cmd /?"的最后幾行寫著:
如果你不加"",你的路徑一旦碰到特殊字符就炸啦~
所以我教大家一個我常用的手段來解決路徑加引號問題:

完成方案
首先我們處理一下輸入路徑名
因為要在該文件的同路徑下創(chuàng)建一個臨時文件,并且因為我們需要轉(zhuǎn)碼后的圖片也跟JPEG-LS一樣是無損,所以格式選擇PNG,PNG的編解碼壓力都不大,兼容性也好,于是就
丟給FFmpeg轉(zhuǎn)碼
最后打開輸出的圖片,并在圖片查看器關閉后刪除它
至此,這個簡單BAT就能實現(xiàn)這個小功能啦。
當然,我們可以接著完善一下,增加一些細節(jié),這是我當時寫的BAT: