0

我正在使用 gstreamer 从视频中提取音频并将音频重新采样为不同的采样率。我的管道适用于文件到文件的对话,但我无法正确设置流式传输案例以将其链接到插孔接口:

文件到文件(效果很好):

gst-launch-0.10 filesrc location=/data/Opinion.flv !播放器!音频/MPEG!解码器!音频转换!音频/x-raw-int,通道=1!音频重采样!音频/x-raw-int,速率=16000,深度=16!波浪!文件接收器位置=./recordingOut2.wav

要流式传输的文件(不起作用):

gst-launch-0.10 filesrc location=/data/Opinion.flv !播放器!音频/MPEG!解码器!音频转换!音频/x-raw-int,通道=1!音频重采样!音频/x-raw-int,速率=16000,深度=16!插孔音频接收器

警告:错误的管道:无法将 audioresample0 链接到 jackaudiosink0

以下管道运行,但输出的采样率错误:

gst-launch-0.10 filesrc location=/data/Opinion.flv !播放器!音频/MPEG!解码器!音频转换!音频重采样!插孔音频接收器

你有什么发现我做错了吗?

可以重新采样音频并通过管道传输到流输出吗?

我已经四处寻找,但没有找到任何相关的解决方案。您的任何见解/指针将不胜感激!

4

2 回答 2

1

jackaudiosink 只接受音频/x-raw-float。你可以从

gst-inspect-0.10 jackaudiosink
于 2013-06-25T17:34:15.693 回答
0

正如 ensonic 建议的那样,尝试将您的管道更改为:

gst-launch-0.10 filesrc location=/data/Opinion.flv !播放器!音频/MPEG!解码器!音频转换!音频/x-raw-float,通道=1!音频重采样!音频/x-raw-float,速率=16000,深度=16!插孔音频接收器

尽管您可能可以删除 flvdemux !它的音频/mpeg 部分作为 decodebin 也会为您插入一个解复用器。

于 2013-06-26T05:47:28.450 回答