З 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
ідео або удіо a
. Це необов’язково, але завжди корисно вказувати тип, також у випадку, якщо відео та аудіо потоки неправильно мультиплексовані.
- Третя частина - ідентифікатор вхідного потоку.
0
буде перший, а 1
другий, тобто перший відеопотік і другий і перший аудіопотік.
- Порядок
-map
параметрів визначає порядок потоків у вихідному файлі.
Це означає, що ми залишимо відеопотік як перший потік, потім візьмемо другий аудіопотік, а потім перший - по суті, ми замінюємо аудіопотоки.
Використання -c copy
параметра гарантує, що бітові потоки копіюються та не перекодуються повторно.
Кілька прикладів використання цього -map
параметра можна знайти на вікі FFmpeg.
-map v:0 -map a:1 -map a:0
.