Как объединить 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).

Лучший способ сделать это —конвертироватьсаундтрек к несжатомуWAV, (чтобы предотвратить рассинхронизацию), отдельно для каждого MKV-файла. Затем соедините и перекодируйте их, но не перекодируйте видеопоток, только аудиопоток в сжатый формат (MP3, AAC или AC3)

Вышеуказанные шаги:
1. Разверните аудио для каждого файла в несжатый формат
2. Сшейте их вместе.
3. Перекодируйте только аудио в сжатый формат

После 2 шагов вам следует проверить, действительно ли ваш звук синхронизирован.

Все это можно сделать с помощью VirtualDub или AviDemux 2.6.12 (установите Video Output на копирование), они бесплатны и не являются вредоносными программами.

Возможно, мне нужно поискать какой-то другой инструмент, например ffmpeg, чтобы объединить аудио/видео из mkvextract, а затем какой-то другой инструмент для управления сабвуферами PGS и затем снова объединить их все вместе с помощью mkvmerge?

Если у вас нет проблем с конфессиональным разделением в Windows, а не в Linux, вы также можете конвертировать свои субтитры в формат ".SRT" и использовать его. Я склонен думать, что с текстовым форматом работать проще, чем с форматом на основе изображений. Решать вам.

Столкнусь ли я с дополнительными проблемами из-за того, что аудио/видео в двух файлах также будет отличаться (например, стерео против 5.1)?

В общем, ДА! Две аудиодорожки должны иметь максимально идентичные характеристики, поэтому обе стерео, это проще всего, потому что это наиболее универсально. Не используйте 5.1, если вы не в театре.

Ваши видео должны быть одинаковой ширины и высоты, поэтому либо1920 x 1080или720 х 480 Мой совет - отредактируйте короткое вступительное видео. Вы можете выбрать между:
- добавлением рамки (но это будет крошечное изображение)
- увеличением ширины x высоты до1920 x 1080(но будет зернистым)
- сделатьоба, пополам, чтобы разделить разницу. В вашем случае это означает:
а. увеличить ширину x высоту до 1440 х 640
б. добавить границу240 - (1920-1440)/2 - слева и справа и граница220 - (1080-640)/2 вверх и вниз.

Связанный контент