Get a Free Quote

Upholsterer

Furniture

Pellentesque in ipsum id dapibus.

Automotive

Pellentesque in ipsum id dapibus.

Commercial

Pellentesque in ipsum id dapibus.

Pillows & Cushions

Pellentesque in ipsum id dapibus.

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores.

– Johnny Adkins

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati.

– Johnny Adkins

Quality

Top Quality Craftsmanship

Sed porttitor lectus nibh. Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit

Why choose us

Cras ultricies ligula sed magna dictum porta. Curabitur non nulla.

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati.

^

At vero eos et accusamus

^

Et iusto odio dignissimos ducimus

^

Qui blanditiis

^

Praesentium voluptatum deleniti atque

^

Corrupti quos dolores

REpair, Design, Renew

Nulla porttitor accumsan tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices.

Contact Us or Visit Our Shop Today.

View Our Recent Work

目的

觀看影片時,通常需要將繁體中文的字幕檔與影片放在同一個資料夾底下。播放的時候,大多數的播放器(像是 VLC)會自動偵測字幕檔的存在,並且在影片播放時載入,將字幕顯示在影片底部。

本篇文章主要是希望將影片與字幕檔合併在一起,讓影片本身即包含了我們希望看到的字幕檔,而不需要另外放在同一個資料夾。

以下的流程,會先從原始影片取出需要的字幕檔,再將取出的字幕檔與額外的字幕檔,與原始影片中的 video track 與 audio track 合併,產生新的影片檔案。

方法

從原始影片取出英文字幕檔

.\ffmpeg.exe -i .\original_video.mkv -map 0:2 eng-sub.srt

以上是在 Windows PowerShell 使用的指令

-i 後面跟著的檔名指的是輸入的原始影片檔案
-map 0:2 指的是取出原始檔案中第三個 track 的資料,在本範例中,原始檔案第三個 track 是英文字幕的 track
eng-sub.srt 指的是輸出的檔名

合併字幕與影片

.\ffmpeg.exe -i .\original_video.mkv -i .\cht.srt -i .\eng-sub.srt -c:v copy -c:a copy -c:s subrip -map 0:0 -map 0:1 -map 1 -map 2 -metadata:s:s:0 language=chi -metadata:s:s:1 language=eng -disposition:s:0 default output.mkv

第一個 -i 後面跟著的是原始影片檔
第二個 -i 後面跟著的是要加入的中文字幕檔
第三個 -i 後面跟著的是要加入的英文字幕檔
-c:v copy 代表直接複製原始影片檔的 video codec
-c:a copy 代表直接複製遠使影片檔的 audio codec
-c:s subrip 指定字幕使用 subrip 這個 codec
-map 0:0 -map 0:1 代表從第一個輸入的檔案(也就是原始影片檔),取出 track 編號 0 與 1(在本範例中 0 是 video track,1 是 audio track)
-map 1 代表從第二個輸入的檔案取出所有 tracks(在本範例中,第二個輸入的檔案只有字幕,所以所有的 tracks 指的即是中文字幕 track)
-map 2 意思同上,從第三個輸入檔案取出所有 tracks(英文字幕 track)
-metadata:s:s:0 language=chi 設定輸出檔案中,第一個字幕 track 的名稱為 chi(chi = Chinese = 中文)
-metadata:s:s:1 language=eng 設定輸出檔案中,第一個字幕 track 的名稱為 eng(eng = English)
-disposition:s:0 default 將第一個字幕 track 設定為 default(預設使用的字幕)
output.mkv 輸出的檔案名稱

References

FFmpeg – ExtractSubtitles

ffmpeg: how to add several subtitle streams

ffmpeg set subtitles track as default