Ffmpegを使用して.ass字幕トラックをmkvビデオに追加すると、デフォルトトラックとして設定されないため、再生時に手動で字幕をオンにする必要があります。字幕トラックのデフォルトフラグを設定することは可能ですか?
使用されるffmpegコマンド:
ffmpeg -i video.mp4 -i subtitles.ass -c:v libx264 -preset veryslow \
-pix_fmt yuv420p10le -c:a copy -c:s copy output.mkv
.ass字幕形式を維持したいことに注意してください。notこの同様の質問で提案されているように字幕をmov_textに変換します: デフォルトの設定方法ffmpeg のストリーム
後で次のようにmkvpropeditを使用してデフォルトフラグを設定する可能性があります。
mkvpropedit output.mkv --edit track:s1 --set flag-default=1
しかし、ffmpegでこれを直接行うことは可能ですか?
このパッチ これが可能になったと思います。少なくとも私にとっては、次のもので動作します。
ffmpeg -i in.mp4 -i in.srt -c copy -disposition:s:0 default out.mkv
この場合、-disposition:s:0
のs
はsubtitleを表し、streamではありません。インデックスで2番目のSteamを選択するには、-disposition:1
を使用します。
デフォルトの代わりに「forced」を使用して、vlcに強制的に再生させることができます
ffmpeg -f mp4 -i outfile.mp4 -f srt -i VTS_07_0.EnglishV2.srt -c:v copy -c:a copy -metadata:s:a:0 language=Japanese -c:s mov_text -metadata:s:s:0 language=English -disposition:s:s:0 forced mix.mp4