CSS Styles

Friday, February 24, 2017

【DOS】String - Lowercase

lowercase 不像 uppercase 擁有美麗巧合, 無法與 find 或其它指令擦出火花, 只能土法練鋼。 DOS 基本指令中皆未含字碼轉換能力, 所以最快的方法就是查表法。

:LOWERCASE
 set r=
 set "i=%~1"
 set tab=AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
:LRC1
 if "%i%" == "" exit /b
 set c=%i:~0,1%
 if "%c%" GEQ "A" if "%c%" LEQ "Z" call set c=%%tab:*%c%=%%& set c=%c:~0,1%
 set r=%r%%c%
 set i=%i:~1%
 goto :LRC1
r = returned uppercase string

Wednesday, February 1, 2017

【Media】QSV2FLV Time Code Fix

愛奇藝影片緩存之副檔名為 QSV, 乃愛奇藝特有的封裝格式, 愛奇藝萬能播放器自然直接支援, 但鑑於通用性與系統安全, 無安裝該播放器之念。

網路上雖可尋獲 QSV 轉 FLV 的應用程式, 轉換過的檔案可用一般播放器回放, 卻存在時間碼 (timecode) 錯亂的情形, 造成影片搜尋困難, 無法驟跳至任意點觀賞。 欲修正此問題, 得重新封裝視訊與音訊, 並提供正確的時間資訊。

分析 FLV 的內容, 視訊是 H264, 音訊是 AAC, 皆為 MPEG4 首選格式, 很適合封裝成 MKV 檔案。 使用 MKVToolNix 中 mkvmerge 工具, 遞予正確的 frame rate, 即可讓 MKV 擁正確時間碼。 以 NTSC 影片『浪漫醫生金師傅』為例, 以下指令可達此目的。

 mkvmerge --default-duration 0:30000/1001p
          --default-duration 1:22054/1024p -o OUTPUT.MKV INPUT.FLV