FFMPEG как извлечь переменное количество аудиопотоков?

Я пытаюсь сделать небольшой пакетный файл, который извлекает все аудио потоки при перетаскивании видео на него.

ffmpeg.exe -i "%1" -map 0:a? -c:a copy "%1~extracted.aac"

но это, кажется, перезаписать тот же файл для каждого аудиопотока, который он находит.

Я не хочу указывать количество звуковых дорожек, так как оно может меняться.

заранее спасибо за помощь!

3
задан MurderOfPoes
20.03.2023 3:47 Количество просмотров материала 2429
Распечатать страницу

1 ответ

нет прямого способа сделать это.

Существует несколько утомительный обходной путь, который опирается на тройник muxer и угадать максимальное количество звуковых потоков, которые вы можете столкнуться. Допустим, это 4.

Итак, команда

ffmpeg -i in.mp4 -c copy -map 0:a?
       -f tee
              "[select='a\:0':onfail=ignore]in-0.aac|[select='a\:1':onfail=ignore]in-1.aac|
               [select='a\:2':onfail=ignore]in-2.aac|[select='a\:3':onfail=ignore]in-3.aac"

все файлы будут созданы, но если размер равен нулю, то поток не существует. Итак, как только вы удалите все выходные данные нулевого размера, у вас будут все извлеченные потоки. FFmpeg не выбирает вывод автоматически формат, поэтому потоки должны быть AAC. Используйте последнюю версию ffmpeg, 4.0+

1
отвечен Gyan 2023-03-21 11:35

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

audio
batch
extract
ffmpeg
video
Вверх