ffmpeg: як встановити режим "спільно-стерео" в mp3?


3

Як встановити спільно-стереорежим у ffmpeg при перетворенні з flac у формат mp3?

Зазвичай я використовую цю команду, але вона виробляє режим "стерео". Мені потрібні "спільні-стерео".

ffmpeg -i input.flac -vn -ac 2 -ar 44100 -ab 320k -f mp3 output.mp3

Я використовую останні ffmpeg для Windows x64.

Відповіді:


5

Згідно з усіма посиланнями, які я бачив, я впевнений, що це вже повинно бути за замовчуванням для спільного стереорежиму. Але я успішно перевірив включення та вимкнення суглобового стереорежиму за допомогою joint_stereoпрапора. Його слід встановити так, щоб 1увімкнути або 0відключити.

Приклад:

ffmpeg -i input.flac -vn -ac 2 -ar 44100 -ab 320k -f mp3 -joint_stereo 1 output.mp3

Це ґрунтується на документації, яку я знайшов тут


яку версію ffmpeg ви використовували?
c97

@ c97: Це була остання статична версія, яку я завантажив сьогодні. Я запускаю його в Windows. Що відбувається, коли ви намагаєтесь використовувати прапор і отримуєте помилку? Якщо ні, то чи є у вас приклад файлу, де це не працює?
Джеймс П

У вас активовано libmp3lame?
Джеймс П

Я використовую Zeranoe статичну x64 build ffmpeg.zeranoe.com/builds/win64/static/… в цій версії, коли я використовую перемикач "-joint_stereo 1", він все ще виробляє стерео, а не спільне-стерео. Я порівнював файл, створений за допомогою цього перемикача і без, вихідні файли були однаковими. FFmpeg не призвів до помилок. Мій тестовий файл: c97.pl/pliki/11.flac
c97

@ c97: Як ви визначаєте, чи файли однакові? Якщо я використовую інструмент бінарного порівняння, у файлах є багато відмінностей. Як я розумію, розмір файлу не обов'язково повинен змінюватися, це буде якість, яка змінюється, оскільки ви вказуєте ту саму швидкість передачі бітів. Який інструмент ви використовуєте для перевірки стереорежиму? Foobar2000 показує <MP3_STEREO_MODE>, що відрізняється для двох файлів.
Джеймс П

0

Боюся, Джеймс Р помиляється, принаймні, нещодавно, як ffmpeg 3.4.2, але це звичайне непорозуміння. На жаль, це давня помилка в тому, як ffmpeg використовує libmp3lame. Він встановлює заголовок на Joint Stereo, але насправді не кодує в Joint Stereo. MP3-програвачі, для яких потрібен Joint Stereo, задушаться цими файлами. Параметр -joint_stereo 1 НЕ працює як параметр у ffmpeg. Дивіться відкритий звіт про помилку: https://trac.ffmpeg.org/ticket/4954

Я використовую кульгавий або сокс, щоб встановити MP3-файли на спільні стереосистеми після внесення інших змін у ffmpeg. Я б хотів, щоб це не було необхідним, особливо при роботі зі збитковими MP3-файлами, де кожна дія над файлами їх трохи знижує, але це не дуже погано.

Наприклад, у Windows (це працює з CMD, а не з PS), ось ось команда, яку я часто використовую для пакетного перетворення та нормалізації з файлів WAV в MP3 через ffmpeg, а потім використовую SoX для встановлення на спільний стерео (вихід за замовчуванням). Один з найпростіших перевірок в Windows на Joint Stereo або Stereo - Mp3tag, і обов’язково покажіть стовпець "Mode", який просто скаже Mono, Stereo або Joint Stereo. Це також найпростіший спосіб підтвердити, що ffmpeg не здатний належним чином виводити в Joint Stereo.

для% x in ("* .wav") do (ffmpeg -i "% x" -ab 320k -f mp3 -af dynaudnorm -id3v2_version 3 "int_% x.mp3" & sox --norm = -2,75 "int_% x.mp3 "-c 2 -C 192" готовий-% x.mp3 ")

Я використовую більш високий бітрейт для проміжного файлу, ніж для кінцевого виводу (у цьому випадку 320 проти 192), щоб мінімізувати погіршення якості звуку.

Зауважте, що це дозволить залишити проміжні файли (int *) у тому самому каталозі, що й вихідні та заключні (готові *) файли.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.