У меня есть около ста файлов домашнего видео, которые я сжимаю для архивных целей. Я хочу конвертировать их в x264 с помощью HandBrake, но у меня проблема с аудио. Все они следуют этому формату:

  • Видеодорожка: чересстрочная DV-PAL 720x576
  • Аудио дорожка: 16-битное Integer Mono (слева), 48 кГц
  • Аудио дорожка: 16-битное Integer Mono (справа), 48 кГц

Когда я добавляю их в HandBrake, он может выбрать только одну из этих звуковых дорожек для включения в преобразование, поэтому один аудиоканал теряется. Мне нужен способ либо:

  • сопряжение двух звуковых дорожек как стерео, чтобы HandBrake распознал обе дорожки как две половины целого, или
  • замените обе дорожки одной стерео дорожкой.

Мне нужно автоматизировать этот процесс без повторного сжатия видео, если только оно не выполняет ту же функцию, что и HandBrake, так как многие видео очень длинные, поэтому их сжатие будет занимать слишком много времени.

Пока что склоняюсь ко второму варианту. Мне удалось пакетно вывести все аудио в виде стереофонических файлов WAV, поэтому у меня есть папка, полная оригинальных видеофайлов с соответствующими аудиофайлами с таким же именем.

Я использовал QuickTime Pro 7 в Mac OS 10.10, но я могу загрузить Windows 7, если это необходимо. У меня не установлено программное обеспечение для обработки AV на стороне Windows. Я не разбираюсь в командной строке, но хочу узнать, поможет ли это решить проблему. Какими должны быть мои следующие шаги?

РЕДАКТИРОВАТЬ: Для тех, кто читает это с похожей проблемой, мое решение заключалось в использовании кода ниже LordNeckbeard для пакетного создания стерео WAV из исходных файлов, а затем с помощью QuickTime Player 7 Pro, чтобы добавить эти WAV в исходные файлы и удалить оригинальные звуковые дорожки. Это привело к тому, что MOV имеют одну дорожку видео и одну дорожку стереозвука. Однако HandBrake по-прежнему позволяет мне выводить монофонический звук из этих исходных файлов по причинам, которые я не могу разобрать, поэтому я все еще застрял.

1 ответ1

1

Вы можете сделать цикл для MacOS:

mkdir outputs
for f in *.mov; do ffmpeg -i "$f" -filter_complex "[0:a:0][0:a:1]amerge=inputs=2[a]" -map 0:v -map "[a]" -c:v copy -ac 2 "outputs/$f"; done
  • Это предполагает, что текущий каталог содержит все видео для обработки.

  • Amerge фильтр используется , чтобы объединить оба звуковых потоков в один.

  • В этом случае опция -ac 2 является излишней, но она понижает микширование выходного сигнала до стереофонического, если входные аудиопотоки были стереофоническими. В противном случае будет создан 4-канальный выход.

  • Видео скопировано.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .