오디오 피드를 가져와 16비트 FLAC으로 다시 인코딩하려면 FFmpeg가 필요합니다.
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%
답변1
기본적으로 FFmpeg FLAC 인코더는 원본의 비트 깊이를 사용합니다. 비트 심도는 옵션으로 변경할 수 있습니다 sample_fmt
. 예:
ffmpeg -i … -c:a flac -sample_fmt s16 output.flac
모든 인코더에서 모든 형식이 지원되는 것은 아닙니다.
지원되는 모든 샘플 형식 목록을 보려면 다음을 실행하세요.
ffmpeg -sample_fmts
장을 참조하십시오오디오 옵션FFmpeg 명령줄 문서에 있습니다.
답변2
디더링을 사용하여 비트 심도를 16으로 줄이려면 다음을 수행하십시오.
ffmpeg -i input.flac -acodec flac -af aresample=osf=s16:dither_method=triangular_hp output.flac
예를 참조하십시오https://www.waves.com/audio-dithering-what-you-need-to-know