返回部落格約 5 分鐘

如何去除 MP4 字幕:刪除軌道或清理內嵌字幕

用 FFmpeg 刪除 MP4 中的獨立字幕軌,或用 AI 處理燒錄字幕。包含判斷方法、命令、音軌保留說明與輸出檢查步驟。

MP4 可以包含影片、音訊和獨立字幕軌,畫面本身也可能已經帶字。刪除字幕軌只能解決前一種情況。先判斷字幕類型,避免對不需要修補的影片進行處理。

始終在副本上操作,為輸出使用不同檔名。如果以後還需要字幕做翻譯或無障礙版本,請單獨保留文字檔案。

先關閉字幕顯示

在播放器中開啟 MP4 並關閉字幕。如果文字消失,說明畫面本身是乾淨的。也要檢查外接字幕:播放器可能自動讀取同名 SRT。

文字還在時,確認播放器的自動字幕也已關閉。獨立字幕與內嵌字幕對比 解釋了兩者同時出現的情況,例如內嵌字幕上方還有一套可選擇的譯文。

在本地檢查檔案

安裝 FFmpeg 和 FFprobe 後,可以列出 MP4 內的字幕流:

ffprobe -v error -select_streams s -show_entries stream=index,codec_name:stream_tags=language -of json input.mp4

streams 陣列非空,表示存在字幕流;陣列為空,並不能證明畫面沒有文字,因為內嵌字幕屬於影片流,不會列在這裡,外接 SRT 也不在 MP4 內。

這個檢查只讀取本地檔案,不上傳也不修改它。

另存不含字幕軌的副本

對於只有一條主要影片軌的常見 MP4,可使用:

ffmpeg -i input.mp4 -map 0:v:0 -map '0:a?' -c copy -sn output-without-subtitles.mp4

命令選擇第一條影片流,以及存在的全部音訊流,排除字幕並直接複製所選流,不重新編碼。可選音訊選擇器外面的引號,防止 zsh 等 shell 把問號當作萬用字元。

此命令明確選取影片和音訊,並非對全部輔助流做檔案級複製。多影片軌、特殊後設資料或少見編碼,應先單獨檢查。把 MKV 改名為 MP4,也不會自動讓編碼變得相容。

FFmpeg 官方文件 解釋了流選擇和複製。完成後開啟新檔案,檢查時長和需要的音軌是否正確。

輸出仍然有文字怎麼辦

如果關閉播放器字幕後,輸出仍然有字,通常說明是內嵌字幕。上面的命令沒有修改畫面像素,因此不會擦除這些字。

有無字版本時優先使用;否則可以 開啟線上去字幕工具。下半部分的字幕可先試自動模式,需要自定義區域則使用精準模式。按照 內嵌字幕去除流程,先測試短片段。

線上工具目前限制為最長 10 分鐘、最大 2 GB、最高 2K 輸入,輸出最高 1080p。AI 去除需要點數,且可能改變畫面細節;本地流複製刪除獨立字幕軌,不進行這種重建。

檢查最終檔案

  • 把輸出放進空資料夾播放,避免舊外掛字幕被重新載入。
  • 檢查開頭、中間和結尾的畫面、聲音與時長。
  • 刪除的是內封軌道時,再執行一次 FFprobe 檢查。
  • 使用 AI 時,對比原字幕區域在動態播放中的效果。
  • 新檔案確認合格前,保留原片和字幕檔案。

如果另一個播放器仍顯示字幕,檢查它是否自己生成了自動字幕。檔案不含字幕軌,也不能阻止播放服務自行疊加文字。

常見問題

FFmpeg 刪除字幕軌會降低畫質嗎?

上述命令複製所選壓縮影片和音訊流,不重新編碼;但不保證所有其他資訊,包括每一項後設資料,都完全不變。

線上工具能處理整部電影嗎?

目前工作臺接受最長 10 分鐘的片段。長素材請先在剪輯軟體中準備需要的部分。

後續還需要翻譯字幕怎麼辦?

有原字幕文字就保留它作為參考。需要從畫面或聲音辨識時,參考 字幕翻譯與 SRT 匯出指南。

把方法用到自己的素材

用你的影片試一試

去除畫面文字、翻譯字幕或匯出 SRT。先用短片段測試,再檢查效果是否符合需要。