【原创】DSD音频转码脚本
本帖为https://bbs.pcbeta.com/viewthread-1977177-1-1.html之序章,原帖13、14楼https://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1977177&page=1#pid54285200的精油贴了DSD,奈何macOS需要借助第三方播放器,且售价不菲,本着白嫖原则,索性写个脚本把DSD转码成macOS支持的格式。脚本运行时会自动检测依赖软件ffmpeg,若无会调用homebrew自动安装,(梯子请自备,我在电诈重灾区自然不需要),转码位深和采样率默认16/44.1,可选24/48,只支持dff、dsf转wav和flac,(有其他需求跟帖留言,我酌情处理)其它格式我定义为无意义,本就是DSD,转mp3那是头被门夹了的行为,原计划用sox,因为处理pcm音频更细腻,奈何要调用dsd2pcm,懒病发作不想折腾,继续用ffmpeg,以下是脚本源码,自取不谢
#!/bin/bash
# 检查是否安装了 FFmpeg,如果未安装则尝试使用 Homebrew 安装
if ! command -v ffmpeg &> /dev/null; then
read -p "FFmpeg 未安装,是否尝试使用 Homebrew 进行安装? (y/n): " install_ffmpeg
if [ "$install_ffmpeg" == "y" ]; then
echo "正在安装 FFmpeg,请稍候..."
brew install ffmpeg
else
echo "未安装 FFmpeg,无法进行音频转换。"
exit 1
fi
fi
# 输入DSD文件所在目录
read -p "PCBEAT论坛首发,仅论坛交流使用,脚本调用ffmpeg为开源软件,DSD音源文件版权请酌情甄别。
请输入DSD文件所在目录: " input_directory
# 检查输入目录是否存在
if [ ! -d "$input_directory" ]; then
echo "输入目录 '$input_directory' 不存在。"
exit 1
fi
# 输入转码输出目录
read -p "请输入转码输出目录: " output_directory
# 检查输出目录是否存在,如果不存在则创建
if [ ! -d "$output_directory" ]; then
mkdir -p "$output_directory"
fi
# 选择输出格式
read -p "请选择输出格式 (wav/flac): " output_format
# 检查输出格式是否合法
if [ "$output_format" != "wav" ] && [ "$output_format" != "flac" ]; then
echo "无效的输出格式选择。"
exit 1
fi
# 输入位深,如果没有输入则使用默认值
read -p "请选择位深 (16/24,默认 16): " bit_depth
if [ "$bit_depth" != "24" ]; then
bit_depth="16"# 默认值为 16
fi
# 输入采样率,如果没有输入则使用默认值
read -p "请选择采样率 (44100/48000,默认 44100): " sample_rate
if [ "$sample_rate" != "48000" ]; then
sample_rate="44100"# 默认值为 44100
fi
# 统计目录中总的 DSF 和 DFF 文件数量
total_audio_files=$(find "$input_directory" -type f \( -name "*.dsf" -o -name "*.dff" \) | wc -l)
converted_files=0
# 遍历输入目录中的 DSF 和 DFF 文件
for audio_file in "$input_directory"/*.{dsf,dff}; do
if [ -f "$audio_file" ]; then
audio_filename=$(basename "$audio_file")
output_filename="${audio_filename%.*}.$output_format"
output_file="$output_directory/$output_filename"
if [ "$output_format" == "wav" ]; then
# 转换为 WAV 格式
ffmpeg -i "$audio_file" -acodec pcm_s$bit_depth"le" -ar $sample_rate "$output_file"
elif [ "$output_format" == "flac" ]; then
# 转换为 FLAC 格式,注意这里使用了 "s32" 作为采样深度
ffmpeg -i "$audio_file" -c:a flac -ar $sample_rate -sample_fmt s32 "$output_file"
fi
converted_files=$((converted_files + 1))
percentage=$((converted_files * 100 / total_audio_files))
echo "已转换 $audio_filename 为 $output_filename ($percentage% 完成)"
fi
done
echo "转换完成"
音源在上贴14楼
DSD直接Audirvana Plus播放不好吗?我是Mac外接USB解码器 Audirvana Plus播放。 音频转码没有xld搞不定的,包括dsd,sacd hodori 发表于 2023-8-26 16:25 https://bbs.pcbeta.com/static/image/common/back.gif
DSD直接Audirvana Plus播放不好吗?我是Mac外接USB解码器 Audirvana Plus播放。
厉害,不喜欢折腾的路过 。 {:9_349:} 直接放DSD不香吗???
为何要转换呢,放解码器直接通过USB放SACD吧--- angodson 发表于 2023-8-27 08:26 https://bbs.pcbeta.com/static/image/common/back.gif
直接放DSD不香吗???
为何要转换呢,放解码器直接通过USB放SACD吧---
已说过,TNT版的app我绕道,人穷志短,用不了正版就走点弯路 魔域封印 发表于 2023-8-27 21:06 https://bbs.pcbeta.com/static/image/common/back.gif
已说过,TNT版的app我绕道,人穷志短,用不了正版就走点弯路
TNT怎么你了{:5_270:},你不用正版macOS都配不上你说的这句话{:5_262:} 魔域封印 发表于 2023-8-27 21:06 https://bbs.pcbeta.com/static/image/common/back.gif
已说过,TNT版的app我绕道,人穷志短,用不了正版就走点弯路
不是app的问题---
而是用解码器硬解SACD,不用通过软件转换成PCM等格式--- dsd64已经大概等同176.4 kHz的采样,这脚本转换的采样好像有点低---
对dsd128的话,损失可能有点大--- angodson 发表于 2023-8-28 07:06 https://bbs.pcbeta.com/static/image/common/back.gif
不是app的问题---
而是用解码器硬解SACD,不用通过软件转换成PCM等格式---
家里有数字转盘,但对于我这样带个笔电到处跑的人只能这样解决 angodson 发表于 2023-8-28 07:38 https://bbs.pcbeta.com/static/image/common/back.gif
dsd64已经大概等同176.4 kHz的采样,这脚本转换的采样好像有点低---
对dsd128的话,损失可能有点大---
只设置了转成CD音质的参数,同源码流转出来尺寸感人,同时也没那么好的器材,随身就一MBP+耳机,凑合着听听而已 魔域封印 发表于 2023-8-28 12:03 https://bbs.pcbeta.com/static/image/common/back.gif
家里有数字转盘,但对于我这样带个笔电到处跑的人只能这样解决
笔电的话,搞个歌德耳机比这转换提升的多---
个人浅见,望见谅--- 存了几个t的无损dsd啥的,但开得最多是apple music{:5_263:} angodson 发表于 2023-8-28 19:23 https://bbs.pcbeta.com/static/image/common/back.gif
笔电的话,搞个歌德耳机比这转换提升的多---
个人浅见,望见谅---
在不动任何硬件的前提下这个最优解,最近碰到的问题是度娘盘下的资源多半rar,本来macOS下一条命令能搞定的,但有些资源压缩包带密码,我琢磨下再写个一键解压的脚本,在不动用钞能力的情况下rar压缩包应该是多半数macOS用户的痛,脚本能解决的事都不是事 韩国免费的播放器,商店有,官网也能下
http://www.digipine.com claotlaot 发表于 2023-8-29 00:04 https://bbs.pcbeta.com/static/image/common/back.gif
感谢,按你提供的播放器名称,homebrew上搜索无果
楼主,我发现利用FFmpeg进行转码,Macos同样能识别
ffmpeg -i input.dsf -c:a flac output.flac
这样100多mb的转出来有500多mb 939872740 发表于 2023-8-29 00:57 https://bbs.pcbeta.com/static/image/common/back.gif
楼主,我发现利用FFmpeg进行转码,Macos同样能识别
ffmpeg -i input.dsf -c:a flac output.flac
这样100多 ...
不管dsf还是dff,理论上还是一种音频封装技术,它是最接近或等同于母带级音质的,封装也分有损封装和无损封装,常见的flac,苹果的alac就是无损封装,一个开源一个闭源,有损封装mp3,苹果的aac,转码既还原封装的过程,你上面的命令是给dsf直接卸妆并换了套外衣,转成wav等与扒光洗白白 魔域封印 发表于 2023-8-29 00:14 https://bbs.pcbeta.com/static/image/common/back.gif
感谢,按你提供的播放器名称,homebrew上搜索无果
app商店和官网都有,你干嘛用brew装
页:
[1]