Linux下修改arecord录音脚本,转为WAV/OGG格式缩减体积
把录音转成OGG/WAV来缩减体积?安排!
先给你掰明白:WAV是无压缩的无损格式,体积反而比FLAC还大,完全达不到缩小空间的目的;OGG是有损压缩,能大幅砍体积,才是你要的选择。
改成OGG格式的脚本
直接把原脚本里的flac命令换成oggenc就行,参数对应好原录音的配置:
arecord -t raw -f S16_LE -r 44100 -c 1 | split -d -b 882000 --filter='oggenc -r -B 16 -C 1 -R 44100 -o "${FILE}.ogg" -'
参数说明:
-r:指定输入为原始音频数据-B 16:对应16位采样深度(和原脚本的S16_LE匹配)-C 1:设置单声道-R 44100:设置采样率为44100Hz-o "${FILE}.ogg":定义输出的OGG文件名-:表示从标准输入(管道)读取音频数据
如果需要调整音质,可以添加-q参数(取值范围0-10,默认3),比如-q 6能在音质和文件体积间取得较好平衡,数值越高音质越好但文件体积越大。
关于WAV格式的说明
WAV本质就是给原始raw音频加了个文件头,完全没有压缩,所以10秒的音频体积就是882000字节(约861KB),比你当前的FLAC文件体积更大,根本达不到缩减空间的目的。如果非要生成WAV格式,可以用以下脚本:
arecord -t raw -f S16_LE -r 44100 -c 1 | split -d -b 882000 --filter='sox -t raw -r 44100 -e signed-integer -b 16 -c 1 - "${FILE}.wav"'
但再次强调:用WAV来缩减体积是反向操作,不推荐。
内容的提问来源于stack exchange,提问作者frsalarcon
相关产品推荐
相关产品推荐

