如何使用gst-launch播放原始音频文件?

时间:2015-03-26 10:23:54

标签: audio alsa pcm gstreamer

我正在使用gst-launch-0.10。

我使用以下命令从mp3文件创建了一个pcm文件(至少我认为我有):

gst-launch-0.10 filesrc location=my-sound.mp3 ! mad ! audioresample ! audioconvert ! 'audio/x-raw-int, rate=8000, channels=1, endianness=4321, width=16, depth=16, signed=true' ! filesink location=out.raw

我现在有一个out.raw文件。

为了测试一切是否有效,我想回放它。 我试过这个(除其他外):

gst-launch-0.10 filesrc location=out.raw  ! capsfilter caps="audio/x-raw-int, rate=8000, channels=1, endianness=4321, width=16, depth=16, signed=true" ! alsasink can-activate-pull=true

但我每次都会收到此错误:

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: Filter caps do not completely specify the output format
Additional debug info:
gstcapsfilter.c(393): gst_capsfilter_prepare_buf (): /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
Output caps are unfixed: EMPTY
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

“过滤器上限没有完全指定输出格式”?这里缺少什么?

1 个答案:

答案 0 :(得分:0)

好吧,在audioconvert之前添加alsasink过滤器使其正常工作。根据gst-inspect,指定的音频格式与alsa兼容。所以我猜这是声卡的一个问题,audioconvert以某种方式将数据转换为声卡可以处理的东西。只是一个猜测。

我还删除了can-activate-pull=true选项。激活此选项的声音质量非常糟糕。我想了解原因。