Длина MP3 в кодировке LAME

В настоящее время я работаю над кодированием pcm в mp3, используя LAME, но длина получающегося mp3 больше (и я смог выделить часть кода, вызывающую это). PCM около 4:45, но когда я кодирую с настройками

///cbr settings
lame_set_VBR(gfp, vbr_off);
lame_set_quality(gfp, 5);
lame_set_preset(gfp, 128);

полученная длина mp3 была приблизительно 11:30. Когда я кодирую с настройками

//vbr settings
lame_set_VBR(gfp, vbr_mtrh);
lame_set_VBR_quality(gfp, 5);

полученная длина mp3 была приблизительно 14:18. Но когда я закодировал с настройками

//abr settings
lame_set_VBR(gfp, vbr_abr);
lame_set_VBR_min_bitrate_kbps(gfp, 128);

полученная длина mp3 была правильно 4:45 (но я заметил, что когда я увеличил битрейт до 188, длина подскочила с 5 секунд до 4:50)

Я действительно не знаю, что я делаю неправильно, но кажется, что только abr приводит к правильной длине vbr и cbr нет!

ОБНОВИТЬ::::
Когда воспроизводятся эти mp3, они воспроизводятся нормально и останавливаются в 4:45, но проигрыватель Windows Media и их свойства (в Windows) по-прежнему считывают те, которые превышают длину.

ОБНОВИТЬ:::
получил настройки cbr, удалив настройки lame_set_preset. Только настройки vbr возвращают неправильную длину.

1

Решение

Я узнал, что должен написать lametag (который получен из lame_get_lametag_frame) в файл сразу после id3v2 теги. Это решило проблему!

НОТА:
lame_get_lametag_frame должен быть вызван после вызова lame_encode_flush, так что вы должны вернуться к концу id3v2 тег, чтобы написать lametag,

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]