web-dev-qa-db-ja.com

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また一緒に?

オーディオ/ビデオも2つのファイル間で異なるため(ステレオと5.1など)、さらに問題が発生しますか?

ありがとう

3
Dave

あなたの問題は、2つのビデオが完全に異なっているために発生します。

MKVを異なるトラックに連結する方法

簡単な答えは、オーディオトラックを解凍し(たとえば、WAV)、それらをマルチプレクサして(それらをつなぎ合わせて)、オーディオを圧縮する(たとえば、AC3)ことです。

これを行う最良の方法は、サウンドトラックを非圧縮[〜#〜] wav [〜#〜]変換することです(非同期を防ぐため)、MKVファイルごとに個別に。次に、それらを連結して再コーディングしますが、ビデオストリームは再コーディングせず、オーディオストリームのみを圧縮形式(MP3、AAC、またはAC3)に再コーディングします。

上記の手順:
1。各ファイルのオーディオを非圧縮形式に拡大します
2。それらを一緒にステッチします。
3。音声のみを圧縮状態に再コード化する

2の後、オーディオが本当に同期しているかどうかを確認する必要があります。

これらはすべて、VirtualDubまたはAviDemux 2.6.12(ビデオ出力をコピーに設定)を使用して実行できます。これらは無料であり、マルウェアではありません。

おそらく、mkvextractからのオーディオ/ビデオを連結するためのffmpegのような他のツールを調べてから、PGSサブを操作するための他のツールを調べて、それらをすべて一緒にmkvmergeする必要がありますか?

LinuxではなくWindowsで宗派の問題がない場合は、サブを「.SRT」形式に変換して使用することもできます。画像ベースのフォーマットよりもテキストベースのフォーマットの方が簡単だと思う傾向があります。あなた次第。

オーディオ/ビデオも2つのファイル間で異なるため(ステレオと5.1など)、さらに問題が発生しますか?

一般的に、はい! 2つのオーディオトラックは可能な限り同じ特性を持つ必要があるため、両方のステレオで、最もユニバーサルであるため、これが最も簡単です。劇場にいる場合を除いて、5.1は使用しないでください。

動画の幅と高さは同じである必要があるため、1920 x 1080または720 x 480のいずれか短い方を編集することをお勧めしますイントロビデオ。次のいずれかを選択できます。
-境界線を追加します(ただし、小さな画像になります)
-幅x高さを1920 x 1080に増やします(ただし、粒子が粗くなります)
-bothを途中で実行して、差を分割します。あなたの場合、これは次のことを意味します。
a。幅x高さを1440 x 640に増やします
b。 240-(1920-1440)/ 2-左右の境界線と220-(1080- 640)/ 2を上下に。

1
GwenKillerby