web-dev-qa-db-ja.com

.MKVから.MP4、2つのサウンドトラック(オーディオ)

私はこのスレッドを見つけました: 元の品質を維持しながらMKVをMP4に変換するためのハンドブレーキ設定

そして、次のコードで.MKVを.MP4に「変換」できます。

for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -c:v copy -c:a copy "%%~na .mp4"
pause

唯一の問題は、2つのオーディオレーンがあることです。ドイツ語、そして英語。上記のコードでは、ドイツ語(1番目)の言語のみをコピーします。しかし、2番目の音声言語ではありません。どうやってやるの?

現時点では、ドイツ語のみで.MKVから.MP4に変換しています。しかし、VLCプレーヤーで言語をドイツ語から英語に切り替えられるようにしたいと思っています。

ご協力いただきありがとうございます!

編集:ここでそのスレッドを見つけました: http://ffmpeg.gusari.org/viewtopic.php?f=25&t=611

そして、私はその情報でテストしました。上記のコードを次のコードに変更しました。

for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -map 0:0 -map 0:1 -map 0:2 -c:v copy -c:a:0 copy -c:a:1 copy "%%~na.mp4"
pause

私はここで何か間違ったことをしましたか?どうすればドイツ語/英語の字幕をそれに追加できますか?そこに字幕マップを追加し、.MKVに字幕がまったくない場合、これは問題になりますか? 2つのサウンドトラックと2つの字幕で.MKVを変換する.batファイルを作成したいだけです。情報を失うことなく、すべての.MKVファイルを.MP4に「リマックス」(またはdunnoに変換)できるようにします。

現時点では、私の.MKVには字幕がないので、重要ではありません。でも、将来に備えたほうがいいですよね?

それで、私がそれを正しくしたかどうか、そしておそらく字幕を追加する方法も教えてください。 FFmpegを使ったのは初めてです。ダウンロードしただけで、聞いたことはありません。そのためにCMDを実際に使用したことはありません。

1

ffmpegはすべてのトラックを自動的にマッピングするわけではありません。デフォルト ストリーム選択 は、1つのオーディオ、1つのビデオ、および1つの字幕トラックのみを出力にマップします。 map すべてのストリームが必要な場合は、-map 0を使用します。マップするwhatを選択できるようにする場合は、最初に入力ファイルを解析して(ffmpeg -i input.mkv)、いくつかを使用する必要があります。最終的な変換コマンドを作成するためのスクリプト。 ffprobeはそのために役立ちます。例については、 FFmpeg Wiki:FFprobeのヒント を参照してください。

-c copyストリームコピー すべてのストリームに指定できます。ストリームのタイプは関係ありません。ビデオストリームとオーディオストリームを別々にインデックス付けすることもできるため、コマンドを次のように短縮できます。

ffmpeg -i input.mkv -c copy -map 0 output.mp4
2
slhck

さて、私は次のような.batファイルを使用しています:

for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -c:v copy -c:a copy "%%~na.mp4" 

エラーメッセージが表示されますが、.MP4は引き続き正常に機能します。ここにログファイルがあります:pastie.org/private/9lqyvhyotnh1o4gp6rg5g

問題は、古いソニーのテレビが.MP4を見ているときにフリーズすることがあるということです。それがテレビの「プレーヤー」なのか、変換されたファイル自体なのかわかりません。 GUIは良さそうです。しかし、連続して20個のファイルのように変換したい場合は、多くのクリックが必要です。 .batファイルは、これらすべてのファイルを1つのフォルダーにまとめて自動的に実行します。

おそらく誰かが私がエラーメッセージを受け取る理由を知っているでしょう、そしてこのスクリプトが間違っているかどうか:)

0

VCTと呼ばれるオープンソースプログラムがあります: https://sourceforge.net/projects/videoconvertertranscoder/?source=directory

FfmpegのGUIです。 ffmpegコマンドを手動で編集することもできます。 MKVをMP4に再パックできるTranscodeというタブがありますが、このタブには字幕を追加するオプションがありません。

MKVをMP4に再パックし、同時に字幕を追加する場合の手順は次のとおりです。

  1. 変換タブに移動し、入力ファイルを選択します
  2. ビデオコンテナコピーを選択し、オーディオコーデックでもコピー
  3. 字幕を追加をクリックして、外部SRTファイルを選択します
  4. Ffmpegコマンドのテキストボックスで、字幕部分-c:s srt ""-c:smov_textに置き換えます""
  5. バッチリストに追加をクリックしてから、開始をクリックします。エンコードは1〜2分で完了します。

もちろん、2回エンコードしてもかまわず、コマンドの入力が気に入らない場合は、次のようにすることもできます。

  1. タブトランスコードを選択し、ファイルを入力ファイル..にドラッグし、開始をクリックします。 )、1分以内に完了します。
  2. 次に、新しくエンコードされたMP4を選択し、ビデオコンテナコピーを選択し、オーディオコーデックcopyをクリックします。
  3. バッチリストに追加をクリックしてから、開始をクリックします。エンコードは1分以内に行われます。

要求されたエンコードMKVをMP4に実行するスクリーンショット

0
dotokija