У меня есть файл MKV с пробелами в звуке. То есть во временных метках аудиодорожки MKV есть пробелы. Согласно "ffmpeg", длина аудио AC3 составляет 802 секунды, но при экспорте аудио в WAV, результирующая длина файла составляет 801'53 секунды. То есть «экспортированный» звук короче.
Определение проблемы с помощью
ffmpeg -i INPUT.mkv -af ashowinfo -map 0:2 -y -frames:a XXXX -f alaw /dev/null
Я могу подтвердить, что разница в длине согласуется с промежутками во временных метках исходных аудиокадров. Есть несколько пропущенных звуковых кадров. Думаю, они заменяются тишиной в плеере.
Команда, которую я использую для экспорта аудио:
ffmpeg -i INPUT.mkv -map 0:1 -ac 2 OUTPUT.wav
Мой вопрос: как я могу проинструктировать FFMPEG о сохранении пропусков в исходном звуке, заполненных нулями (тишиной) ?. Продолжительность файла WAV должна быть такой же, как у исходного аудио AC3.
Учитывая мой текущий рабочий процесс, я бы предпочел не сохранять исходные отметки времени в выходном файле, а вместо этого генерировать WAV с (крошечными) паузами. Я мог бы подумать о сохранении временных меток, если нет другого выбора, но это может быть довольно сложной задачей в моем рабочем процессе.
Совет? Помощь?
Заранее большое спасибо!





Использовать
ffmpeg -i INPUT.mkv -map 0:1 -af aresample=async=1 -ac 2 OUTPUT.wav
Фильтр aresample вставляет тихие семплы в промежутки.
ac вступит в силу после af, независимо от того, где он находится.
У меня та же проблема, что и у OP, но это не работает с моей записью. Это веб-сайт, записанный с помощью средства записи мультимедиа HTML5. Любые идеи?
Прохладный. Спасибо! Было бы лучше сделать «af» ПОСЛЕ «ac», чтобы сократить время обработки с многоканальными источниками звука?