Конвертировать несколько звуковых дорожек из нескольких файлов FFmpeg - PullRequest
0 голосов
/ 07 сентября 2018

Я использую скрипт для конвертирования всех видеофайлов в папку. Эти файлы имеют несколько звуковых дорожек, и я хочу, чтобы преобразованные файлы также имели каждую звуковую дорожку. Я пробовал оба -c copy и -c:a mp3, и ни один из них не работал для меня. Любые идеи, как я могу изменить это, чтобы скопировать все звуковые дорожки?

#!/bin/sh

for i in *.mkv; do ffmpeg -i "$i" -c:a mp3 -vcodec libx264 -crf 18 -r 60 "${i%.mkv}.mp4"; done

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете сделать это, установив -c:a copy. В вашем примере вы пытаетесь установить аудиокодек на mp3, который на самом деле является просто контейнером. Надеюсь, это поможет!


Я должен изменить это ... Моя первая мысль - просто скопировать один аудиопоток самого высокого качества из входного файла. Для копирования всех потоков нам понадобится опция map 1 . Ваш пример копирования всех аудиопотоков может выглядеть так:

#!/bin/sh

for i in *.mkv; do
    ffmpeg -i "$i" -map 0 -c copy -c:v libx264 -crf 18 -r 60 "${i%.mkv}.mp4"; 
done
...