Ошибка при конвертации AC3 в mp3 (возникает не всегда)

Список разделов Другое Аудиоформаты

Описание: Аудиоформаты, конвертация и другие связанные вопросы

Сообщение #1 js90 » 27.09.2016, 22:51

Купил цифровой тюнер для ТВ. Обманули с поддержкой Ac3, поэтому для него мне нужно конвертировать Ac3 дорожки фильмов(avi/mkv) в mp3 формат.
Возникла проблема при конвертации очередного фильма. Первые пару раз всё прошло отлично, но уже на третьем фильме фубар отказался конвертировать с ошибкой:
Спойлер
1 out of 1 tracks converted with major problems.

Source: "C:\Users\User\Desktop\888.ac3"
An error occurred while writing to file (The encoder has terminated prematurely with code 1 (0x00000001); please re-check parameters) : "C:\Users\User\Desktop\888.mp3"
Additional information:
Encoder stream format: 48000Hz / 6ch / 32bps
Command line: "C:\Program Files (x86)\foobar2000\encoders\lame.exe" -S --noreplaygain -b 320 -q 2 - "888.mp3"
Working folder: C:\Users\User\Desktop\

Conversion failed: The encoder has terminated prematurely with code 1 (0x00000001); please re-check parameters
Единственное отличие третьего фильма -в нём ac3 дорога 6 канальная, а не двух. И битрейт не 192, а 384кб/с.

Как конвертировал:
•Установил foobar2000 - Latest stable version (v1.3.8)
•Скачал lame encoder v3.99.5 отсюда. Распаковал lame.exe в "C:\Program Files (x86)\foobar2000\encoders"
•Установил AC3 decoder для foobar отсюда.
ctrl+p -> components -> install -> выбрал foo_ac3.fb2k-component -> ok
В списке компонентов после перезапуска плеера он появился под именем "AC3 decoder", module "foo_ac3".
•Через VirtualDubMod извлёк Ac3 дорожку.
streams-> stream list->demux
•Перетаскиваю излеченную дорогу в плейлист фубара. Кликаю ПКМ по ней, convert->...
Создаю custom пресет для lame - меняю строку parameters на "-S --noreplaygain -b 320 -q 2 - %d". То есть вместо дефолтного значения lame -q3, ставлю q2, битрейт фиксирую на 320, в encoder file указываю путь к lame.exe: "C:\Program Files (x86)\foobar2000\encoders\lame.exe" и сохраняю пресет, чтобы в дальнейшем конвертировать через него, выбирая в контектстном меню.
VBR в AVI не поддерживается, так что оставляю CBR как есть. Так же оставляю как есть дефолтно частоту дескретизации - 48kHz и параметры стерео - joint. Format is =lossy - так же остаётся как есть.
•Тыкаю пкм по ac3 файлу в плейлисте фубара -> convert-> выбираю сохраненный пресет и получаю ошибку.

Пробовал в параметрах указывать -j, менять bps на 32, убирать параметр -q, просто сбрасывать пресет к обычному, где виден ползунок настройки качества, подкладывал dll файл из zip архива с lame к экзешнику и в папку C:\Users\User\AppData\Roaming\foobar2000\user-components\, менял местами параметры в командной строке, добавлял путь к лейму в advanced-tools-converter-additional command-line encoder paths. Ничего не меняется.

Добавлено спустя 42 минуты 29 секунд:
Попробовал альтернативы.
https://sourceforge.net/projects/taudioconverter/

Эта програмка используя lame с теми же параметрами сконвертировала без ошибок.
js90
Автор темы, Новичок
Репутация: 0
С нами: 7 месяцев 3 дня

Сообщение #2 VEG » 28.09.2016, 20:36

А на вход Lame получает точно поток в поддерживаемом виде? То есть используете ли вы, например, Downmix to Stereo в Processing для того, чтобы смешать все каналы до передачи Lame?
С наилучшими пожеланиями, Евгений
VEG M
Администратор
Аватара
Возраст: 29
Откуда: Минск, Беларусь
Репутация: 117
С нами: 5 лет

Сообщение #3 js90 » 29.09.2016, 05:45

VEG писал(а):Downmix to Stereo в Processing
Ну кто ж знал. Я же до этого никогда не занимался конвертацией.
Сделал пресет для 6канальных дорожек с Downmix to Stereo. Сконвертировало без ошибок. Спасибо!

А при этом не происходит лишнего перегона каналов? Из 6 каналов делается стандартное стерео, а потом джоинт стерео из стандартного стерео? Не успел проверить качество -наушников нет, только ТВ со мной сейчас. Часто ли бывают артефакты при такой конвертации, может лучше что-то другое для объединения каналов использовать?
Ещё хотел спросить, нужно ли BPS менять в пресете lame на 32 или оставить 24 можно?

ps заменил virtualdub на mkvtoolnix+gmkvextract, потому что работает и с mkv и с avi, а ещё может устранить рассинхрон если что.
В фубар добавил ещё dts decoder.
js90
Автор темы, Новичок
Репутация: 0
С нами: 7 месяцев 3 дня

Сообщение #4 VEG » 29.09.2016, 09:45

js90 писал(а):А при этом не происходит лишнего перегона каналов? Из 6 каналов делается стандартное стерео, а потом джоинт стерео из стандартного стерео?
При кодировании в MP3 ему нужно обычное стерео. Joint Stereo — это сугубо внутренняя фишка формата. После декодирования в любом случае получится обратно обычное стерео. По поводу настроек самого lame я не в курсе, ибо пользуюсь другими форматами (Ogg Vorbis и Opus), соответственно и другими кодерами.
С наилучшими пожеланиями, Евгений
VEG M
Администратор
Аватара
Возраст: 29
Откуда: Минск, Беларусь
Репутация: 117
С нами: 5 лет

Сообщение #5 megane68 » 29.09.2016, 14:48

js90 писал(а):нужно ли BPS менять в пресете lame на 32 или оставить 24 можно?
32 лучше всегда использовать для сжатия с потерямм, если кодер этот режим поддерживает.
В данном случае 32 надо ставить.

Добавлено спустя 2 минуты 50 секунд:
VEG писал(а):При кодировании в MP3 ему нужно обычное стерео. Joint Stereo — это сугубо внутренняя фишка формата. После декодирования в любом случае получится обратно обычное стерео. По поводу настроек самого lame я не в курсе, ибо пользуюсь другими форматами (Ogg Vorbis и Opus), соответственно и другими кодерами.
Все современные кодеры для сжатия используют режим джоинт стерео как самый продвинутый. Он сам выбирает оптимальный режим в зависимости от стереобазы исходного аудио материала.
В Lame его можно не указывать, бо он используется по умолчанию
Более подробно о настройках Lame.
megane68 M
Мастер
Репутация: 58
С нами: 8 лет 2 месяца

Сообщение #6 js90 » 29.09.2016, 17:26

Спасибо, вопрос решён.
Хорошо, что не понадобилось устанавливать никакие коммерческие комбайны. foobar у меня всегда установлен для музыки, вот и пригодился.
js90
Автор темы, Новичок
Репутация: 0
С нами: 7 месяцев 3 дня

Сообщение #7 js90 » 07.10.2016, 02:18

Иногда в фильмах получается очень сильно прыгающий уровень громкости. Вот речь тихая, еле слышно и тут же оглушающая музыка орёт.

С этим нельзя что-то сделать? ReplayGain?
js90
Автор темы, Новичок
Репутация: 0
С нами: 7 месяцев 3 дня

Сообщение #8 mgz » 07.10.2016, 09:39

js90 писал(а):ReplayGain?
Он применит свой параметр ко всей дорожке. Т.е. найдет пик громкости и снизит общую громкость всего трека.
В фильме, ближе к концу, есть мощный взрыв. Громкость под него подстроится. А диалоги будете со слуховым аппаратом слушать.

Для видео-плееров есть нормалайзеры, они динамически меняют громкость. Вам в эту сторону смотреть нужно.
RME HDSP 9632 > DynAudio BM5A II / Audio-Technica ATH-AD900
mgz M
Гуру
Аватара
Возраст: 37
Откуда: Украина, Киев
Репутация: 57
С нами: 10 лет 11 месяцев

Сообщение #9 simmons » 07.10.2016, 17:01

js90 писал(а):Иногда в фильмах получается очень сильно прыгающий уровень громкости. Вот речь тихая, еле слышно и тут же оглушающая музыка орёт.

С этим нельзя что-то сделать? ReplayGain?

Я постараюсь вам помочь. Дайте мне хоть один такой эпизод (время эпизода) и из какого фильма.
Я работаю много с VST плагинами. Есть разные VST компрессоры, возможно один из них может вам подойти.
Как я понимаю у компрессора должна быть настройка на десятки милли секунд.
simmons M
Мастер
Аватара
Возраст: 44
Репутация: 75
С нами: 8 лет 1 месяц

Сообщение #10 foo_val » 08.10.2016, 14:06

js90 писал(а):Купил цифровой тюнер для ТВ. Обманули с поддержкой Ac3

Не указан какой телик и как подключен, но как вариант... ежели по hdmi то в настройках тюнера вывод звука поставить raw вместо lpcm и ежели телевизор не древний, то он сам "разложит" цифру в lpcm.
p.s
прицепил BeSweet GUI и перегнать и нормализовать для видео дорожек само то...
foo_val
Бывалый
Аватара
Репутация: 10
С нами: 7 лет 2 месяца


Вернуться в Аудиоформаты