如何將 MKV 與不同的軌道連接起來

如何將 MKV 與不同的軌道連接起來

我有一部mkv電影和一部單獨的電影mkv,有導演的介紹。我試圖用它mkvmerge來連接它們。然而,這部電影有字幕,而簡介沒有字幕,這似乎造成了一個問題。

具體來說,軌道輸出mkvinfo intro.mkv為:

| + A track | + Track number: 1 (track ID for mkvmerge & mkvextract: 0) | + Track UID: 1 | + Track type: video | + Default flag: 0 | + Lacing flag: 0 | + MinCache: 2 | + Codec ID: V_MPEG2 | + CodecPrivate, length 164 | + Default duration: 33.367ms (29.970 frames/fields per second for a video track) | + Video track | + Pixel width: 720 | + Pixel height: 480 | + Display width: 853 | + Display height: 480 | + A track | + Track number: 2 (track ID for mkvmerge & mkvextract: 1) | + Track UID: 2 | + Track type: audio | + Codec ID: A_AC3 | + Default duration: 32.000ms (31.250 frames/fields per second for a video track) | + Name: Stereo | + Audio track | + Sampling frequency: 48000 | + Channels: 2

mkvinfo film.mkv給出:

| + A track | + Track number: 1 (track ID for mkvmerge & mkvextract: 0) | + Track UID: 1 | + Track type: video | + Default flag: 0 | + Lacing flag: 0 | + MinCache: 1 | + Codec ID: V_MS/VFW/FOURCC | + CodecPrivate, length 74 (FourCC: 0x57564331 "WVC1": VC-1) | + Default duration: 41.708ms (23.976 frames/fields per second for a video track) | + Video track | + Pixel width: 1920 | + Pixel height: 1080 | + Display width: 1920 | + Display height: 1080 | + A track | + Track number: 2 (track ID for mkvmerge & mkvextract: 1) | + Track UID: 2 | + Track type: audio | + Codec ID: A_AC3 | + Default duration: 32.000ms (31.250 frames/fields per second for a video track) | + Name: Surround 5.1 | + Audio track | + Sampling frequency: 48000 | + Channels: 6 | + A track | + Track number: 3 (track ID for mkvmerge & mkvextract: 2) | + Track UID: 4 | + Track type: subtitles | + Default flag: 0 | + Lacing flag: 0 | + Codec ID: S_HDMV/PGS | + Content encodings | + Content encoding | + Content compression

我嘗試過mkvmerge -o full.mkv intro.mkv + film.mkv,但這給了我

Error: The file no. 0 ('intro.mkv') does not contain a track with
the ID 2, or that track is not to be copied. Therefore no track
can be appended to it. The argument for '--append-to' was invalid.

從手冊頁中我不清楚mkvmerge如何指定--append-to介紹軌道不應該有字幕,並且電影字幕的時間碼可以移動。這超出了自己的能力mkvmerge嗎?

也許我需要研究一些其他工具,例如ffmpeg連接音頻/視頻,mkvextract然後使用其他一些工具來操縱 PGS 低音炮並將它們mkvmerge再次組合在一起?

我是否會遇到更多問題,因為兩個檔案之間的音訊/視訊也不同(例如立體聲與 5.1)?

謝謝

答案1

您的問題是因為兩個影片完全不同而引起的,而不僅僅是因為字幕。

如何將 MKV 與不同的軌道連接起來

快速的答案是解壓縮您的音軌(例如,WAV),混合它們(將它們縫合在一起),然後壓縮音訊(例如,AC3)

最好的方法是轉變音軌未壓縮音訊格式,(以防止不同步),分別針對每個 MKV 檔案。然後連接並重新編碼,但不重新編碼視訊串流,僅將音訊串流重新編碼為壓縮格式(MP3、AAC 或 AC3)

上述步驟如下:
1. 將每個檔案的音訊放大為未壓縮格式
2. 將它們拼接在一起。
3. 僅將音訊重新編碼為壓縮狀態

2之後,您應該檢查您的音訊是否真正同步。

您可以使用 VirtualDub 或 AviDemux 2.6.12(將視訊輸出設為複製)來完成所有這些操作,這些都是免費的,不是惡意軟體。

也許我需要研究一些其他工具,例如 ffmpeg 來連接 mkvextract 中的音頻/視頻,然後使用其他一些工具來操作 PGS subs 並將它們再次 mkvmerge 在一起?

如果您對 Windows(而不是 Linux)沒有教派問題,您也可以將您的 subs 轉換為“.SRT”格式並使用它。我傾向於認為使用基於文字的格式比使用基於圖片的格式更容易。由你決定。

我是否會遇到進一步的問題,因為兩個檔案之間的音訊/視訊也不同(例如立體聲與 5.1)?

總的來說,是的!兩個音軌應具有盡可能相同的特徵,因此都是立體聲,這是最簡單的,因為它是最通用的。不要使用 5.1,除非您在劇院。

您的影片應該具有相同的寬度和高度,因此1920×1080或者720×480 我的建議是編輯較短的介紹影片。您可以選擇:
- 新增邊框(但是,它將是一個很小的圖像)
- 將寬度 x 高度增加到1920×1080(但是,它會是顆粒狀的)
-做兩個都,一半,平分差額。在你的情況下,這意味著
:將寬度 x 高度增加到 1440×640
b.新增邊框240 - (1920-1440)/2 - 左、右和邊框220 - (1080-640)/2 到頂部和底部。

相關內容