現在、私のmkvライブラリをmp4に変換しようとしています(Iphone 6 plus)
Mkvからmp4への変換を正しく行うことができましたが、字幕部分(SRT)がありません
これが私のコードです:
dir/b/s *.mkv >mkvlist.txt ///////// this gets a list of all the mkv files on the directory
for /F "delims=;" %%F in (mkvlist.txt) do ffmpeg.exe -i "%%F" -format mp4 -vcodec copy -acodec aac -strict -2 -sn "%%~dF%%~pF%%~nF.mp4" ///////////// this makes the conversion
del mkvlist.txt ////// this deletes the txt file
字幕をスクリプトに含めたいのですが、スクリプトに字幕の正しい名前を挿入できません(これは複数の変換バッチであるため)。
MP4はSRTをサポートしていません。 softsubsまたはhardsubsを使用できます。
ファイル内の個別のストリームとして構成される字幕。これらはプレーヤーによってオン/オフを切り替えることができ、ビデオストリームを再エンコードする必要はありません。
ffmpeg -i input.mkv -c copy -c:s mov_text output.mp4
MP4での時間付きテキストソフトサブのプレーヤーサポートは、かなり貧弱な場合があります。あなたはそれを試す必要があるだけです。
Hardsubsはビデオに「焼き付け」られるため、ビデオを再エンコードする必要があります。
ffmpeg -i input.mkv -vf subtitles=input.mkv output.mp4
特定の字幕ストリームが複数ある場合に選択する方法などの詳細については、 susbtitlesフィルターのドキュメント を参照してください。
私は、Handbrakeでリッピングしたいくつかのmp4ファイルからMP4からMKVへの同様の問題を抱えていました。私は最初に https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/subtitle_options を調べました。これは、mkvとmp4の特定の字幕形式を意味していました。動作しないassおよびmov_text変換を試した後、いくつかのファイルをテストしたところ、dvd_subtitle形式が表示されていることに気付きました。たくさん遊んだ後、以下がうまくいきました。
ffmpeg -i "\\server\directory\Sourcefile.mp4" -c:v copy -c:a copy -c:s dvd_subtitle "\\server\directory\Outputfile.mkv"
それが役に立てば幸い。