web-dev-qa-db-ja.com

ffmpegは字幕トラックをデフォルトとして設定します

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でこれを直接行うことは可能ですか?

15
blörk

このパッチ これが可能になったと思います。少なくとも私にとっては、次のもので動作します。

ffmpeg -i in.mp4 -i in.srt -c copy -disposition:s:0 default out.mkv

この場合、-disposition:s:0ssubtitleを表し、streamではありません。インデックスで2番目のSteamを選択するには、-disposition:1を使用します。

18
user2379410

デフォルトの代わりに「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
7
MRDKVV