星際爭霸戰繼續:ffmeg dvdsub:重疊字幕

星際爭霸戰繼續:ffmeg dvdsub:重疊字幕

所以我下載了免費的粉絲創建的星際爭霸戰繼續藍光 ISO第 1-3 集我正在嘗試將 FHD 1920x1080 轉換為 SD 960x540 以便能夠在我的手機上觀看:

ffmpeg -canvas_size 960x540 \
-i /media/STC_VOL1_BR/BDMV/STREAM/00000.m2ts \
-map_metadata -1 \
-c:v libx264 -map 0:0 -strict -2 -r 24 -s 960x540 \
-c:a libmp3lame -map 0:1 -b:a 384K \
-metadata:s:s:0 language=EN -c:s dvdsub -map 0:2 \
/media/Videos/Star\ Trek\ Continues/S01E01\ Pilgrim\ Of\ Eternity.mkv

但觀看轉換後的 mkv 幾秒鐘後,字幕變成:

  • 由於重疊而無法讀取
  • 有點大(沒問題)
  • 移動到螢幕的右側和底部

VLC 截圖

完整的 ffmpeg 輸出在這裡

我究竟做錯了什麼?

註1:我只處理過srt字幕,而且我知道 dvdsub 是圖像,所以這就是為什麼我認為該canvas_size參數可能有幫助,但它沒有什麼區別。
筆記2:是的,這並不是一個純粹的 Ubuntu 作業系統問題,但繼續影片網站沒有得到任何關注,即使有賞金因此,如果有人進行任何視訊轉換並遇到相同的情況,請嘗試此處。

答案1

從技術上講最乾淨的看看這些字幕會是:

  1. 擷取字幕
  2. 使用您最喜歡的 OCR 應用程式將它們轉換為文字
  3. 仔細審查和編輯文本
  4. 將它們按照您選擇的大小、顏色、方向和格式刻錄回媒體串流中

這是一項龐大且耗時的工作我過去曾親自承擔過但可能是矯枉過正在這種情況下。

更好的選項是簡單地添加 FFmpeg 選項-fix_sub_duration(放置輸入檔案),這將修復雙重字幕,如下所示,並使字幕易於閱讀:

在此輸入影像描述

該選項的詳細資訊-fix_sub_duration可以在 FFmpeg-all 手冊頁中找到,但我冒昧地在這裡引用了這些詳細資訊:

-fix_sub_duration

修復字幕持續時間。對於每個字幕,等待同一流中的下一個資料包並調整第一個資料包的持續時間以避免重疊。這對於某些字幕編解碼器(尤其是 DVB 字幕)是必要的,因為原始資料包中的持續時間只是粗略估計,並且結尾實際上由空白字幕幀標記。必要時未能使用此選項可能會導致持續時間過長或因非單調時間戳而導致多重化失敗。

請注意,此選項將延遲所有資料的輸出,直到解碼下一個字幕包:它可能會增加記憶體消耗和延遲。

你會注意到這是第一的進階字幕選項中,第二-canvas_size你已經用過的...

相關內容