mkvtomp4
mkvtomp4
あなたが望むもののように見えますか?
mpeg4ipまたはGPACのMP4Box、mkvtoolnix、ffmpegを使用して、面倒なmkvファイルをmp4に変換します。変換はビデオを再エンコードせず、AACコーデックを使用しない場合にのみオーディオを再エンコードします(--audio-codecを使用してこの動作をオーバーライドできます)。
WindowsとLinuxのバージョンは、Google Codeページからダウンロードできます。ただし、追加のソフトウェアが必要になります。
WindowsまたはLinuxのダウンロードについては、サイトを確認してください。OS Xでは、Homebrewがあるbrew install mkvtoolnix mp4box
場合にのみ必要です。
ただし、字幕はコピーされません。追加の手順が必要になります。
FFmpegバッチ
mkvtomp4が機能しない場合は、単純なFFmpegバッチファイルでも機能します。Windowsの場合、Zeranoeビルドをダウンロードできます。Linuxでは、パッケージソースのFFmpegを確認してください。OS Xでは、を使用しますbrew install ffmpeg
。
次に、次のように呼び出します。
ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4
これにより、再エンコードせずに有効なMP4コンテナが作成されます。必要に応じてファイルをループし、オペレーティングシステムで利用できるようにします。ただし、このバッチでは字幕はコピーされません。
* nixでは、次のことができます。ファイルを作成するだけですconvert.sh
:
#!/bin/bash
find /path/to/input/folder -iname '*.mkv' -print0 | while read -d '' -r file; do
ffmpeg -i "$file" -c:v copy -c:a copy ${file%%.mkv}.mp4
done
ここで、ビデオフォルダーへのパスを置き換えます。で実行可能にしてchmod +x convert.sh
から、で実行し./convert.sh
ます。
Windowsでは、おそらく2つのバッチファイル(ここから恥知らずなプラグイン)が必要です、1つはstartconvert.bat
:
for %%i IN (*.mkv) DO (convert-to-mp4.bat "%%i")
pause
そして、変換を実行するもの:
IF EXIST "%1.mp4" GOTO exit
@echo Conversion for %1 started on %DATE% %TIME%
ffmpeg -i %1 -c:v copy -c:a copy %1.mp4
:exit
@echo %1.mp4 already exists
両方をビデオフォルダに保存します。startconvert.bat
変換を開始するフォルダから実行するだけです。
字幕
字幕を追加する場合、次の方法でうまくいかない場合は手動での手順が必要になることがあります。
ffmpeg -i input.mkv -c:a copy -c:v copy -map 0 output.mp4
字幕を抽出するには、以下を使用します:
mkvextract tracks input.mkv 3:subtitles.srt
これは、ファイルにトラックID番号3の字幕が実際に含まれており、SRT形式にエクスポートできることを前提としています。ファイルにトラック3の字幕が本当に含まれているかどうかを確認するには、を使用しますmkvmerge -i input.mkv
。
次に、MP4Boxを使用して、MP4ファイルに字幕を再度追加します。
mp4box -add input.mp4 -add subtitles.srt -new output.mp4