С FFmpeg это должно быть довольно просто. Убедитесь, что вы загружаете статическую сборку со страницы загрузки и не используете версию репозитория Ubuntu, которая довольно старая.
Вот команда:
ffmpeg -i input.mkv -map 0:v:0 -map 0:a:1 -map 0:a:0 -c copy output.mkv
Вот что делает -map
:
- Первая часть перед двоеточием - это идентификатор ввода. Поскольку у нас есть только один вход, это
0
.
- Вторая часть specfies типа потока,
v
IDEO или udio. Это необязательно, но всегда полезно указывать тип и в том случае, если потоки видео и аудио неправильно мультиплексированы.
- Третья часть - это идентификатор входного потока.
a
будет первым, а 0
вторым, то есть первым видеопотоком, а также вторым и первым аудиопотоком.
- Порядок параметров
1
определяет порядок потоков в выходном файле.
Это означает, что мы оставим видеопоток в качестве первого потока, затем возьмем второй аудиопоток и затем первый - по сути, мы меняем аудиопотоки.
Использование опции -c copy
гарантирует, что битовые потоки копируются и не перекодируются.
Несколько примеров использования опции -map
можно найти на вики FFmpeg.