如何连接具有不同音轨的 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 子程序,然后将它们再次 mkvmerge 在一起?

如果您对 Windows 而不是 Linux 没有宗派问题,您也可以将您的子文件转换为“.SRT”格式,然后使用它。我倾向于认为使用基于文本的格式比使用基于图片的格式更容易。由您决定。

我是否会遇到更多问题,因为两个文件的音频/视频也不同(例如立体声与 5.1)?

总体来说,是的!两个音轨应具有尽可能相同的特性,因此两者都是立体声,这是最简单的,因为它是最通用的。除非您在剧院,否则不要使用 5.1。

您的视频应具有相同的宽度和高度,因此1920 x 1080或者720 x 480 我的建议是编辑较短的介绍视频。您可以选择:
- 添加边框(但图片会很小)
- 将宽度 x 高度增加到1920 x 1080(但会有颗粒感)
- 做两个都,一半,分摊差额。对于你来说,这意味着:
a. 将宽度 x 高度增加到 1440 x 640
b. 添加边框240 - (1920-1440)/2 - 左侧和右侧以及边框220 - (1080-640)/2 至顶部和底部。

相关内容