Преобразовать .flac в .mp3 с ffmpeg, избежать небольшой тишины? [Дубликат]

Map<String, Set<String>> collect = Arrays.asList(Locale.getAvailableLocales()).stream().collect(Collectors
                .toMap(l -> l.getDisplayCountry(), l -> Collections.singleton(l.getDisplayLanguage())));
3
задан Phlox Midas 29 March 2016 в 14:22
поделиться

1 ответ

Количество задержки, добавленное LAME в FFmpeg, равно

avctx->initial_padding = lame_get_encoder_delay(s->gfp) + 528 + 1;

Из FAQ проекта LAME:

2. Почему LAME добавляет тишину к началу каждой песни?

ЗАДЕРЖКА ДЕКОДЕРА НА НАЧАЛО ФАЙЛА:

Все декодеры Я протестировал введение задержки 528 образцов. То есть, после декодирования mp3-файла, на выходе будет записано 528 отсчетов с 0. Это связано с тем, что стандартные подпрограммы MDCT / filterbank, используемые ИСО, имеют задержку выборки 528. Можно было бы написать процедуру MDCT / filterbank с задержкой выборки 0 (см. Описание подпрограммы MDCT / filterbank Takehiro, используемой в кодировке LAME ниже), но я не знаю, что кто-то это сделал. Кроме того, из-за перекрытого характера кадров MDCT первая половина первой гранулы (1 гранула = 576 выборок) не имеет предыдущего кадра для перекрытия, что приводит к затуханию первых N выборок. Значение N зависит от типа окна. Для «STOP_TYPE» и «SHORT_TYPE», N = 96, а для «START_TYPE» и «NORMAL_TYPE» - N = 288. Первый кадр, созданный LAME 3.56 и выше, всегда будет иметь STOP_TYPE или SHORT_TYPE.

ЗАДЕРЖКА ENCODER НА НАЧАЛЕ ФАЙЛА:

Кодировщики на основе ISO (BladeEnc, 8hz-mp3 и т. Д.) используйте процедуру MDCT / filterbank, аналогичную той, которая используется в декодировании, и, следовательно, также вводит собственную задержку выборки 528. WAV-файл закодирован & amp; (1056 выборок будут добавлены к началу).

Расхождение в соответствии с часто задаваемыми вопросами не такое же, как в вашем выпуске, возможно, из-за технических нюансов о котором я не знаю, но это не ошибка.

4
ответ дан Gyan 27 August 2018 в 14:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: