【问题标题】:How to play a raw audio file using gst-launch?如何使用 gst-launch 播放原始音频文件?
【发布时间】:2015-05-30 07:53:26
【问题描述】:

我正在使用 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 ...

“过滤器大写不完全指定输出格式”?这里缺少什么?

【问题讨论】:

    标签: audio alsa pcm gstreamer


    【解决方案1】:

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

    我还删除了can-activate-pull=true 选项。激活此选项的音质非常差。我想知道为什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-11
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      相关资源
      最近更新 更多