gstreamer: 反向播放音频文件

2 投票
1 回答
1573 浏览
提问于 2025-04-17 01:23

我想用 GStreamer 播放不同播放速度的音频文件。这个功能已经可以正常使用了。不过,与 Python GStreamer 参考文档 中的描述不同,负速率并不能让音频文件倒放。

有没有人知道我该怎么实现这个目标?这是不是跟 filesrcdecodebin2 无法缓存文件以便倒放有关?还是说这只是个bug呢?

这是我代码的一个(非常)简化版本:

import os

import pygst
pygst.require('0.10')
import gst
import gtk


gst_command = ('filesrc location=%s ! decodebin2 ! autoaudiosink') % \
    '/mnt/audio/test.wav'
pipeline = gst.parse_launch(gst_command)
pipeline.set_state(gst.STATE_PLAYING)
pipeline.get_state()

position = 10 * gst.SECOND
rate = -1.0
pipeline.seek(rate, gst.FORMAT_TIME, \
           gst.SEEK_FLAG_FLUSH | gst.SEEK_FLAG_ACCURATE, \
           gst.SEEK_TYPE_SET, position, \
           gst.SEEK_TYPE_NONE, -1)

gtk.main()

我对其他编程语言也有了解,所以请随意用你喜欢的语言回答... :)

1 个回答

0

看起来调试输出显示了:

0:00:00.447509530  6848      0x10d6e30 DEBUG               wavparse gstwavparse.c:1020:gst_wavparse_perform_seek:<wavparse0> negative playback rates are not supported yet.

所以你应该提交一个bug报告,请求实现这个功能,或者自己去实现它。

撰写回答