元の品質を維持しながらMKVをMP4に変換するハンドブレーキ設定


44

MP4に変換する必要があるMKVファイルが大量にあり、選択したソフトウェアはHandbrakeです。

変換に最適な設定はどれですか。完全な品質を維持したい。元の設定で変換するだけで、何も変更しませんか、または特定の変更が必要ですか?


ハンドブレーキの設定にここでかなり詳細に説明されたガイドはmattgadient.com/2013/06/12/...
janot

一部のファイルでエラーが発生しています(mkvからmp4およびmp4からmkv):出力ファイル#0にはストリームが含まれていません。誰もこれが何を意味するのか考えていますか?
PrimitiveNom

回答:


85

ハンドブレーキの問題は何ですか?

Handbrakeを使用して、あるコンテナ形式から別のコンテナ形式に変換する場合(つまり、MKVをMP4に変換する場合)、Handbrakeはビデオを再エンコードします。ビデオパススルーを有効にした各機能リクエストも参照してください。

ビデオパススルーの追加は予定されていません。HandBrakeは、ビデオトランスコーダーとして設計されています。パススルーを許可するようには設計されていません。

したがって、Handbrakeでコンテナを変更すると、ビデオが再エンコードされます。つまり、a)時間を要し、b)品質が低下する可能性があります。

再エンコードする必要がありますか?コンテナを入れ替えることはできませんか?

パススルーは不可能であるため、自問してください:再エンコードする必要がありますか?コンテナをMKVからMP4に変更するだけの場合、通常は何もエンコードする必要はありません。ビデオの「ラップ」を変更するだけです。これにより品質が失われることはなく、はるかに高速なプロセスになります。

FFmpegを使用すると、コンテナを簡単に交換できます。ビデオストリームとオーディオストリームをコピーするように指示するだけです。

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

また、MP4コンテナーを作成できるMP4Boxなどのツールもあります。MKVtoolnixを使用したMKV でも同様です。

ただし、大きな注意点があります。これは、オーディオおよびビデオコーデックがターゲット(MP4)コンテナーでサポートされている場合にのみ機能します。これは、たとえばH.264 / H.265およびAACの場合ですが、他の多くの場合ではありません。また、MP4の字幕形式のサポートはMKVとは異なり、実際には非常に制限されているため、このコマンドは失敗する可能性があります。

このコマンドが機能せず、入力が出力コンテナに間違ったコーデックを使用する場合、おそらく再エンコードする必要があります。この場合、コーデックは出力コンテナに適合します。

これが必要な理由を理解するには、ビデオコーデックとコンテナの違いを理解することが重要です。これは、コンテナの変更が機能する理由と、コンテナMP4およびMKVが実際にビデオコーデックとほとんど関係がない理由を理解するのに役立ちます。

とにかく、再エンコードが悪いのはなぜですか?

あなたは(通常は)完全な品質を維持することはできませんすでにエンコードされたビデオをエンコードするとき。これは、元の情報が情報を破棄することで既に圧縮されており、再度実行することで世代の損失が発生しているためです。

多くの場合、たとえばサイズが変更されたとき、ビデオストリームを圧縮するために特定のビットレートが必要なとき、または何らかの理由で再生できないコーデックを元のビデオが使用するときに、ビデオを再エンコードする必要があります。

あなたはそれがハンドブレーキの用途はMP4コンテナに保管し、x264のでH.264エンコーダをあなたのMKVのハンドブレーキにビデオ、および再エンコードをロードするのであれば、あなたは、どんな失う品質に行くされていない場合を除き、あなたはビットレートを設定したり、品質係数が非常に高いため、(実際に)違いが見えません。ただし、ファイルサイズも大きくなります。

理想的なケースでは、ビデオを非圧縮ビデオに変換します。これにより品質は失われませんが、数分間のビデオ素材でも、数十ギガバイトのサイズのファイルが提供されます。

わかりましたが、本当に再エンコードする必要があります!

あなたがいる場合、実際に再エンコードする必要があります、必ず平均ビットレートを設定しますが、選択しないで作る速度定数ファクター「一定の品質」のようなものです。MP3の「可変ビットレート」と同じように、同じファイルサイズで、それらを必要とするビデオ部分にビットを費やし、全体的な品質を向上させます。

健全なCRF値は19から24で、低いほど「より良い」ことを意味します。したがって、19のレートファクターで試すことができます。また、「高」プロファイルを設定して、エンコーダがすべての機能を使用し、特定のビットレートの品質を最適化できるようにします。


ありがとうございました!この質問を気にして私を助けてくれるのはあなただけだと思われます。私はあなたのアドバイスに従いましたが、品質は元のものと同じです!:)
オレンジ

一部のmkvファイルでは、これは失敗します(出力ファイルのヘッダーを書き込めませんでした...誤ったコーデック)。ffprobe -i file.mkvを使用してa / vの形式を確認します。x264ビデオとaac / ac3オーディオで再コード化する必要があります
ski_squaw

ファイルを再ラップしても品質が低下しないことを100%確信していますか?
PrimitiveNom

1
@BallpointBenなし、不可:github.com/HandBrake/HandBrake/issues/...
slhck

1
@Hashimリクエストに応じて投稿を明確にしようとしました。質問に関しては、Handbrakeはパススルーを許可しないため、MP4からMKVに変換する品質が低下します。そして、それは多くの時間がかかります。ただやれffmpeg -i input.mp4 -c copy output.mkvば大丈夫です。
slhck

4

これは私にとって非常にうまく機能します。以下は、Windowsですべての.mkvを.mp4ファイルに変換するコードです。

convert.batというファイルに保存します。

for %%a in ("*.mkv") do ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
pause

魅力のように機能します。
キットジョンソン

これをffmpeg.exeのフォルダーに入れて、次に変更しましたfor %%a in ("*.mkv") do %~dp0ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
-davidtbernal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.