2015年11月12日 星期四

移除dos格式的「^M」

這篇是繼上篇平移字幕時間軸的,因為dos格式斷行後都會有「^M」,以前就曾經因為這個傢伙讓特定程式無法跑,所以有時候會需要移除它們,上網查了些方式後,我認為有兩個方式都不錯使用,都可以直接透過vim處理。

 第一個方式,在終端機用vim打開文件後,輸入以下:

  :e ++ff=unix #用unix file format,這樣^M才會顯示出來。  
 :%s/ˆM//g   
 #%s/ˆM/表示將所有的^M全部取代掉成沒有,/g表示每一行中所有的^M都要取代掉。  
 #^M的輸入方式為先輸入control+v,再輸入control+m。  

2015年11月10日 星期二

字幕檔(.srt)時間軸平移

最近手上有一部電影,而網路上能找到的字幕檔又無法準確地跟電影時間軸對得上,而字幕格式為:

 32 #序號行  
 00:03:16,785 --> 00:03:18,810 #開始時間 --> 結束時間  
 我是字幕 #字幕內容  

目標就是要來平移時間軸,即把時間軸整個往前移動約莫一個小時左右。但是,實在懶得再去載軟體和想其他辦法來達成這件事情,於是花了點時間土法煉鋼地用 Python 寫了一個粗糙的 script ,我就稱之為 shift_time_srt.py 吧,原理就是把開始和結束的時間先統一轉換成秒,再統一加減想平移的時間(ex: 4079.100 sec),最後再存成「time_shift.srt」,以下為該程式碼內容: