[FFmpeg] 匯出或匯入字幕

FFmpeg

簡介與其他資料:
 http://www.mobile01.com/topicdetail.php?f=510&t=3734550

其他範例:
  http://www.mobile01.com/topicdetail.php?f=510&t=4487462


參考資料

FFmpeg 官方:
  https://trac.ffmpeg.org/wiki/HowToConvertSubtitleToASS

若要將字幕烙印至影像上做成 Hardsub,可以參考以下這篇文章:
  http://www.mobile01.com/topicdetail.php?f=510&t=4462836


轉換字幕格式

如果需要轉換字幕格是可以使用 -c / -codec 來做

將 MP4 檔內的 mov_text 字幕轉換 subrip 格式:
ffmpeg -i input.mp4 -c copy -c:s subrip output.mkv

轉換 srt 字幕檔為 ass 格式:
ffmpeg -i input.srt -c:s ass output.ass


從影片檔內匯出字幕

若要匯出影片內的字幕為獨立字幕檔,
可以使用 "-c:s copy",並搭配合適的輸出副檔名。

直接匯出 MKV 檔內的 ASS 字幕:
ffmpeg -i input.mkv -c:s copy output.ass

某些字幕格式無法直接輸出為單一字幕檔案,
例如 mov_text 格式,必須使用 -c:s 字幕格式 轉換為其他格式。

MP4 檔內的 mov_text 字幕轉換為 srt 格式並匯出為字幕檔:
ffmpeg -i input.mp4 -c:s srt output.srt

如果需要指定影片檔內某個字幕串流,可以使用 -map 串流說明符
map 選項用法: http://www.mobile01.com/topicdetail.php?f=510&t=4200388

匯出 MKV 檔內的第一個(#0)字幕串流:
ffmpeg -i input.mkv -map s:0 -c:s copy 輸出字幕檔名


將字幕封裝到影片內

若要將一個影片與一個 SRT 字幕封裝為單一 MKV 影片,
必須使用多個 -i INPUT 讀取輸入影片與字幕,
並使用 "-c copy" 複製全部串流 或是 "-c:s copy" 複製字幕串流。

封裝字幕到MKV檔內:
ffmpeg -i input.mkv -i input.srt -c copy output.mkv

如果要封裝兩個字幕:
ffmpeg -i input.mkv -i input.ass -i input.srt -c copy output.mkv

若要將一個 MP4 影片與 DVD 字幕 (*.idx + *.sub) 封裝單一 MP4 影片,
必須要將 .idx/.sub 放置在相同目錄下並使用相同的檔名 (例如: input.idx input.sub),
然後只需使用 -i INPUT 指定 .idx 檔案路徑即可。

命令:
ffmpeg -input.mkv -i input.idx -c copy output.mkv

必須確認輸出檔案格式有支援輸入字幕格式才可以封裝,
若輸出檔案不支援輸入字幕格式可以使用 -c:s 字幕格式 轉換為有支援的。
例如 MP4 只有支援封裝 mov_text 與 dvdsub 格式,
若要將 SRT 字幕插入 MP4 檔內,就必須轉為 mov_text 格式。

命令:
ffmpeg -input.mp4 -i input.srt -c copy -c:s mov_text output.mp4
2015-07-15 18:27 #1
限制級
您即將進入之討論頁 需滿18歲 方可瀏覽。
提醒:內容可能因過於寫實、驚悚而令人感到不舒服,是否繼續觀看?

根據「電腦網路內容分級處理辦法」修正條文第六條第三款規定,已於該限制級網頁,依台灣網站分級推廣基金會規定作標示。
評分
複製連結