Однако мне всё равно непонятно, почему только что созданный файл
оказался попорченым.
Если уж это бывает, то, мб., лучше сначал по отдельности сохранить
звуковой и видеопоток, а потом их объединить?
Не нужно, только себе лишние проблеммы создатите. При "нормальном" кодировании, синхронизация производится автоматом; а вашем случае, сильно подозреваю результат тот же будет.
И что делать с файлом субтитров? mkvextract позволяет его извлечь,
но ни mencoder, ни ffmpeg не предусматривают его подключения.
С помощью ffmpeg-а можно копировать и присоединять субтитры к медиа-файлу.
Если субтитры присутствуют в исходном файле:
ffmpeg -i in_file.mkv -vcodec libxvid -vb 2400k -acodec libfaac -ab 120k -scodec copy -slang rus out_file.mkv
-scodec copy - скопировать без изменений
-slang указать язык субтитров, необязательная(но желательная) опция.
С матрешкой (mkv) это работает нормально, насчет AVI не знаю (Поддерживает он вообще субтитры или нет).
Если файл субтитров отдельно:
ffmpeg -i in_file.mkv -i sub_file.srt -vcodec libxvid -vb 2400k -acodec libfaac -ab 120k -scodec copy -slang rus out_file.mkv