GStreamer和音乐处理
GStreamer and music processing
我想在我的c++应用程序中使用gstreamer库来处理声音。你能告诉我有什么方法可以改变声音的节奏、音高等吗?
谢谢。
使用pitch插件可以改变声音的音高:
$ gst-launch filesrc location=sound.mp3
! decodebin ! audioconvert
! pitch pitch=3
! autoaudiosink
或节奏:
$ gst-launch filesrc location=sound.mp3
! decodebin ! audioconvert
! pitch tempo=2
! autoaudiosink
或速度。
还有一个巨大的ladspa库包装器ladspa。我有一些不好的经历,但也许它现在更稳定了。它有几个插件来控制音高,速度和更多。
如果您计划使用声音,这也可能会感兴趣:
- nice插件库audiofx与各种过滤器,例如有压缩器/扩展器插件audiodynamic。
- 均衡器插件。
从max taldykin的建议开始,这在我的GStreamer版本(0.10.35)中返回了一个错误,我发现了一个可以工作的管道。例如,为了保持节奏,将歌曲提升1级,你应该将音调调到6%:
gst-launch-0.10 filesrc location=02-have_you_ever.mp3 !
decodebin ! audioconvert ! pitch pitch=1.06 tempo=1.0 !
audioconvert ! audioresample ! autoaudiosink
为我做了这项工作
相关文章:
- 警告处理为错误这里有什么问题
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 处理多个异常集合的C++方法
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 使用流处理接收到的数据
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 基于多个条件处理地图中的所有元素
- 如何用数字处理log(0)
- SSL上的`curl_easy_send`和`curl_asy_recv`:如何处理`CURLE_AGAIN`
- 错误处理.将系统错误代码映射到泛型
- 从文本文件中读取时钟时间和事件时间并进行处理
- 在运行时处理类型擦除的数据-如何不重新发明轮子
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 用于矢量处理的多个线程
- 对字符串进行排序时,在c++中处理sort()
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- 处理除以零会导致<csignal>意外行为
- 是否可以在c++中处理字符串流中的各个元素
- GStreamer和音乐处理