Используйте FFMPEG для экспорта аудио с заполненными пробелами

У меня есть файл 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 с (крошечными) паузами. Я мог бы подумать о сохранении временных меток, если нет другого выбора, но это может быть довольно сложной задачей в моем рабочем процессе.

Совет? Помощь?

Заранее большое спасибо!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
480
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Использовать

ffmpeg -i INPUT.mkv -map 0:1 -af aresample=async=1 -ac 2 OUTPUT.wav

Фильтр aresample вставляет тихие семплы в промежутки.

Прохладный. Спасибо! Было бы лучше сделать «af» ПОСЛЕ «ac», чтобы сократить время обработки с многоканальными источниками звука?

jcea 17.10.2018 14:17
ac вступит в силу после af, независимо от того, где он находится.
Gyan 17.10.2018 14:36

У меня та же проблема, что и у OP, но это не работает с моей записью. Это веб-сайт, записанный с помощью средства записи мультимедиа HTML5. Любые идеи?

akaltar 05.12.2019 01:05

Другие вопросы по теме