Як змінити глибину біту в FFmpeg?


14

Мені потрібен FFmpeg, щоб забрати аудіо-канал і перекодувати його на 16-бітний FLAC.

Як змусити 16-бітний вихід FLAC?

./ffmpeg -i http://7359.live.streamtheworld.com:80/CONTINENTALAAC_SC -vn -ac 1 -ar 16000 -acodec flac -map 0 -f segment -segment_list /flac/out.list -segment_time 00:00:12.00 /flac/out%03d.flac
ffmpeg version N-49622-g127ff88 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb  6 2013 05:11:38 with gcc 4.6 (Debian 4.6.3-1)
  configuration: --prefix=/root/ffmpeg-static/32bit --arch=x86_32 --extra-cflags='-m32 -I/root/ffmpeg-static/32bit/include -static' --extra-ldflags='-m32 -L/root/ffmpeg-static/32bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx
  libavutil      52. 17.101 / 52. 17.101
  libavcodec     54. 91.100 / 54. 91.100
  libavformat    54. 61.104 / 54. 61.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 35.101 /  3. 35.101
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
[aac @ 0xa163680] max_analyze_duration 5000000 reached at 5015510 microseconds
[aac @ 0xa163680] Estimating duration from bitrate, this may be inaccurate
Input #0, aac, from 'http://7359.live.streamtheworld.com:80/CONTINENTALAAC_SC':
  Duration: 150:52:44.61, bitrate: 29 kb/s
    Stream #0:0: Audio: aac, 44100 Hz, stereo, fltp, 29 kb/s
[flac @ 0xa16ee40] encoding as 24 bits-per-sample
Output #0, segment, to '/flac/out%03d.flac':
  Metadata:
    encoder         : Lavf54.61.104
    Stream #0:0: Audio: flac, 16000 Hz, mono, s32, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (aac -> flac)
Press [q] to stop, [?] for help
size=N/A time=00:00:19.22 bitrate=N/A    
video:0kB audio:647kB subtitle:0 global headers:0kB muxing overhead -100.003322%

Відповіді:


25

За замовчуванням кодер FFmpeg FLAC займає бітну глибину оригіналу. Глибину бітів можна змінити за допомогою sample_fmtпараметра, наприклад,

ffmpeg -i … -c:a flac -sample_fmt s16 output.flac

Зауважте, що не всі формати підтримуються кожним кодером.

Щоб переглянути список усіх підтримуваних форматів зразків, запустіть:

ffmpeg -sample_fmts

Дивіться розділ Опції аудіо в документації на командний рядок FFmpeg.


Це генерує вихід з бітовою глибиною для мене навіть 4, навіть коли я вказую s16(бітова глибина 16). Повна команда:ffmpeg -i newwave.wav -c:a adpcm_ima_qt -sample_fmt s16 -ar 22500 newwave.aiff
xjcl

@xjcl Кодек, який ви використовуєте, підтримує лише 4 бітні.
slhck

Яка різниця між напр. s16Таs16p
theonlygusti

Це не працює для мене. Я отримую "Вказаний формат зразка s16 недійсний або не підтримується"
Arete

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