Как можно использовать ffmpeg для преобразования файла формата TS в MP4 с несколькими аудиодорожками без перекодирования?

Я использовал командную строку <br/> ffmpeg -i <i>входной-_файл.ts</i> -c copy <i>выходной-_файл.mp4</i> <br/> и обнаружил, что в выходной файл была скопирована только нулевая звуковая дорожка. Можете ли вы подсказать, как можно изменить команду так, чтобы в выходной файл переносились все звуковые дорожки, особенно если их может быть несколько?
  • 22 января 2025 г. 18:33
Ответы на вопрос 3
Для того чтобы преобразовать файл формата TS в MP4 с несколькими аудиодорожками с использованием FFmpeg без перекодирования, вы можете использовать следующую команду:

```bash
ffmpeg -i входной_файл.ts -map 0 -c copy выходной_файл.mp4
```

В этой команде:

- `-map 0` указывает, что нужно скопировать все дорожки из входного файла. `0` соответствует первому (и единственному) входному файлу. Это значит, что все видео, аудио и субтитры будут перенесены в выходной файл.
- `-c copy` указывает на необходимость копирования всех потоков без изменения их кодировок.

Если вы хотите только определённые аудиодорожки (например, первую и вторую) и видео, вы можете указать их явно с помощью параметра `-map`, например:

```bash
ffmpeg -i входной_файл.ts -map 0:v -map 0:a:0 -map 0:a:1 -c copy выходной_файл.mp4
```

В этом примере:
- `-map 0:v` копирует все видео дорожки.
- `-map 0:a:0` и `-map 0:a:1` копируют первую и вторую аудиодорожки соответственно.

Таким образом, вы сможете создать файл MP4 с нужными аудиодорожками.
ffmpeg -i входной_файл.ts -map 0 -c copy выходной_файл.mp4


Если в исходном файле есть потоки, которые нельзя записать в формат MP4 (например, субтитры в формате, неподдерживаемом MP4), ffmpeg может выдать ошибку.
-v copy -a copy?
Похожие вопросы