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