如何用ffmpeg可靠地改变音高和节奏

时间:2016-11-12 15:34:38

标签: audio ffmpeg pitch tempo

我知道如何用atempo改变速度,但音频文件有点失真,我找不到一种可靠的改变音高的方法。 (比如说,将节奏和音高一起提高140%)

Sox有一个速度选项,但截断音量并不像ffmpeg那样广泛使用。 mplayer有一个完美的速度选项,但没有额外的库我就无法输出。

我似乎明白ffmpeg没有办法改变音高(也许它最近会改变?)但是有没有办法改变频率或其他一些标志来模仿改变音高?看得很远,找不到合适的解决方案。

编辑:asetrate:48k * 1.4(假设最初48k)似乎不起作用,仍然失真和音高并没有太大变化。

Edit2:https://superuser.com/a/1076762此答案有效,但质量远低于public class CustomAdapter extends ArrayAdapter<String> { public CustomAdapter(Context context, ArrayList<String> names) { super(context, R.layout.custom_layout, names); } @NonNull @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = LayoutInflater.from(getContext()); View customView = inflater.inflate(R.layout.custom_layout, parent, false); String singleName = getItem(position); TextView tv = (TextView) customView.findViewById(R.id.sNametv); tv.setText(singleName); return customView; } } 选项

1 个答案:

答案 0 :(得分:4)

foo似乎对我有用。我用ffprobe检查了输入和输出文件的属性,似乎没有任何可能影响其质量的差异。虽然我已经运行了几次并且其中一些产生的文件有一些工件,即使代码行相同,所以它可能是由一些ffmpeg错误造成的;如果您对质量不满意,请尝试再次运行。