Яку команду слід використовувати для перетворення mp3
файлу в wav
бітрейт, який є змінним. Або краще, як я можу знати, чи є джерело звуку fixed
бітрейт або variable
?
Яку команду слід використовувати для перетворення mp3
файлу в wav
бітрейт, який є змінним. Або краще, як я можу знати, чи є джерело звуку fixed
бітрейт або variable
?
Відповіді:
За допомогою команди можна отримати деяку інформацію про бітрейт вхідних файлів ffprobe song.mp3
. Однак це говорить лише про бітрейт першого кадру. VBR у MP3-файлах зазвичай реалізується просто шляхом зміни бітрейта для кожного кадру, тому, чи використовується він, не можна визначити, просто прочитавши заголовок першого кадру. Зазвичай я використовую якесь інше програмне забезпечення для програвача аудіофайлів, щоб визначити, чи використовується VBR, так як багато хто буде відображати це (наприклад, Foobar2000).
Коли ви використовуєте втрачені вихідні кодеки (наприклад, MPEG-1 Layer III або AAC), ffmpeg вибирає бітрейт за замовчуванням для вихідного потоку або змінний бітрейт. Це залежить від самого кодера.
Для кодеків без втрат не можна встановити змінний бітрейт, оскільки кожен зразок займає заздалегідь задану кількість біт. ffmpeg -i song.mp3 song.wav
Таким чином, ви отримаєте файл WAV, кодований PCM, із частотою вибірки 44,100 Гц та 16 бітами на зразок. Це призводить до приблизно 1411 кбіт / с для всього контейнера, ймовірно, набагато більше, ніж вхідний файл MP3.
Якщо ви хочете менший розмір файлу для WAV-файлу, кодованого PCM, встановіть зразок формату з меншою глибиною бітів (див. -encoders
Опцію для повного їх списку) та / або виберіть нижчу швидкість вибірки (наприклад -ar 22050
, використовуйте 22,05 кГц).
Ось приклад виконання обох:
ffmpeg -i song.mp3 -acodec pcm_u8 -ar 22050 song.wav
-sample_fmts
Варіант). -ar 128k
означає, що частота вибірки складе 128 000 Гц замість звичайних 44,1 або 48 кГц.
ffmpeg -i song.mp3 song.wav
, оскільки це обере відповідний бітрейт (який, мабуть, 44,1 кГц). Якщо ви перетворюєте на wav, ви, ймовірно, не хочете втрачати додаткову інформацію ..
ffpmeg
вибрати правильний бітрейт вибірки відповідно до song.mp3
вхідних даних. Таким чином, вихідний растровий wav
файл матиме найкращий бітрейт. Це означає, що розмір файлу буде чудовим, але з надмірним розміщенням даних: `Stream # 0: 0: Аудіо: mp3, 44100 Гц, стерео, s16p, 128 кбіт /
-ar 44100
це обов'язково, навіть якщо ffmpeg автоматично використовувати відповідний 16-бітний кодек.
Відповідно до коментаря @ naught101, я б дотримувався цього процесу, щоб виявити найкраще acodec
:
$ ffmpeg -formats | grep PCM
DE f32be PCM 32-bit floating-point big-endian
DE f32le PCM 32-bit floating-point little-endian
DE f64be PCM 64-bit floating-point big-endian
DE f64le PCM 64-bit floating-point little-endian
DE s16be PCM signed 16-bit big-endian
DE s16le PCM signed 16-bit little-endian
DE s24be PCM signed 24-bit big-endian
DE s24le PCM signed 24-bit little-endian
DE s32be PCM signed 32-bit big-endian
DE s32le PCM signed 32-bit little-endian
DE u16be PCM unsigned 16-bit big-endian
DE u16le PCM unsigned 16-bit little-endian
DE u24be PCM unsigned 24-bit big-endian
DE u24le PCM unsigned 24-bit little-endian
DE u32be PCM unsigned 32-bit big-endian
DE u32le PCM unsigned 32-bit little-endian
На даний момент, розглянемо вашу платформу , щоб вибрати між big-endian
, little-endian
, то вибрати бітрейт:
$ ffmpeg -i sample.mp3
[mp3 @ 0x7fb33180da00] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from 'sample.mp3':
Metadata:
title : Saturday
artist : Winterwood
album : Love In The Heart
track : 2/15
TPA : 1/1
encoded_by : iTunes 11.0.1
genre : Country & Folk
date : 1997
Duration: 00:04:27.76, start: 0.000000, bitrate: 128 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
Ми можемо бачити, що цей аудіофайл є mp3
(це не очевидно, незважаючи на розширення вхідного файлу, просто перевірте байти) має бітрейт 128 kb/s
, кодек був s16p
, вибірки на 44100 Hz
, тому ми обираємо відповідно:
$ ffmpeg -i sample.mp3 -acodec pcm_s16le -ar 44100 sample.wav
Input #0, mp3, from 'sample.mp3':
Metadata:
title : Saturday
artist : Winterwood
album : Love In The Heart
track : 2/15
TPA : 1/1
encoded_by : iTunes 11.0.1
genre : Country & Folk
date : 1997
Duration: 00:04:27.76, start: 0.000000, bitrate: 128 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
File 'sample.wav' already exists. Overwrite ? [y/N] y
Output #0, wav, to 'sample.wav':
Metadata:
INAM : Saturday
IART : Winterwood
IPRD : Love In The Heart
IPRT : 2/15
TPA : 1/1
ITCH : iTunes 11.0.1
IGNR : Country & Folk
ICRD : 1997
ISFT : Lavf56.4.101
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
Metadata:
encoder : Lavc56.1.100 pcm_s16le
Stream mapping:
Stream #0:0 -> #0:0 (mp3 (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
size= 46125kB time=00:04:27.75 bitrate=1411.2kbits/s
video:0kB audio:46125kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000457%
Якщо ви перебуваєте на mac, ви можете перевірити звук, якщо його немає white noise
на початку / в кінці (коли у оригінального аудіо mp3 немає звуку протягом декількох секунд / с):
$ afplay sample.wav
і звичайно, ви можете двічі перевірити растрову карту:
$ ffmpeg -i sample.wav
Input #0, wav, from 'sample.wav':
Metadata:
artist : Winterwood
date : 1997
genre : Country & Folk
title : Saturday
album : Love In The Heart
track : 2/15
encoder : Lavf56.4.101
encoded_by : iTunes 11.0.1
Duration: 00:04:27.76, bitrate: 1411 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
Використовуйте ffmpeg для перетворення носія, спочатку перевірте специфікацію файлу за допомогою ffprobe. використовувати цю команду
ffmpeg -i kimberly.wav -acodec pcm_s16le -ar 16000 -ac 1 song.wav
де
-pcm_s16le is codec 16 bit conversion
-ar is sampling rate (16000samples/sec)
-ac no of audio channel