ffmpeg: выбор только аудио потока по метаданным

0

У меня есть файл MP4, который содержит два аудиопотока с языковыми тегами ger а также fre, Единственный поток видео, который он содержит, помечен как eng,

Цитаты документации ffmpeg:

To pick the English audio stream:

ffmpeg -i INPUT -map 0:m:language:eng OUTPUT

В моем случае это не работает. Вместо этого он выведет единственный поток с тегом eng (который является видео потоком). Это согласуется с: https://ffmpeg.org/ffmpeg.html#Stream-specifiers-1

Тем не менее, есть ли возможность указать оба

  • тип потока ( v, a...)
  • а также предоставить тег метаданных (например, language:eng )

для того же -map параметр?

Jack Miller
источник

Ответы:

0

Непосредственно невозможно. Парсер для этого не учитывает второй квалификатор. Обходной путь должен использовать трубу

ffmpeg -i IN -map 0:a -c copy -f nut - | ffmpeg -i - -c copy -map 0:m:language:eng OUT
Gyan
источник
Не могли бы вы уточнить? Для чего нужен "-f орех"? Во второй команде можно ли переключать положения параметров "-c" и "-map"?
Jack Miller
-f nut устанавливает формат вывода первой команды в контейнер NUT. Он принимает большинство кодеков и может быть записан в канал, поэтому я выбрал это. Да, вы можете поменять порядок c а также map,
Gyan
Как бы я включил видео поток входного файла в выходной файл?
Jack Miller
Бежать ffmpeg -i IN -i OUT -map 0:v -map 1:a -c copy FINALOUT следующий
Gyan