web-dev-qa-db-ja.com

FFMPEG mkvからmp4への変換で字幕が失われる

現在、私の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

字幕をスクリプトに含めたいのですが、スクリプトに字幕の正しい名前を挿入できません(これは複数の変換バッチであるため)。

10
dpkmon

MP4はSRTをサポートしていません。 softsubsまたはhardsubsを使用できます。

ソフトサブ

ファイル内の個別のストリームとして構成される字幕。これらはプレーヤーによってオン/オフを切り替えることができ、ビデオストリームを再エンコードする必要はありません。

ffmpeg -i input.mkv -c copy -c:s mov_text output.mp4

MP4での時間付きテキストソフトサブのプレーヤーサポートは、かなり貧弱な場合があります。あなたはそれを試す必要があるだけです。

hardsubs

Hardsubsはビデオに「焼き付け」られるため、ビデオを再エンコードする必要があります。

ffmpeg -i input.mkv -vf subtitles=input.mkv output.mp4

特定の字幕ストリームが複数ある場合に選択する方法などの詳細については、 susbtitlesフィルターのドキュメント を参照してください。

16
llogan

私は、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"

それが役に立てば幸い。

2
Von Rugen