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

标签 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 ...

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

最佳答案

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

我还删除了can-activate-pull=true选项。启用此选项的声音质量非常差。我想了解原因。

关于audio - 如何使用gst-launch播放原始音频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29276078/

相关文章:

php - HTML5 和 getUserMedia - 在特定时间后录制音频并保存到 Web 服务器

java - 如何从 JNA 调用 ALSA 分配#define?

java - 在 44.1 kHz 接收器上播放 48 kHz PCM

python - 我的系统需要超过 32 个 USB 声卡

javascript - 如何播放从 websocket 流接收到的 PCM 音频?

c - 如何在c程序中将u-law和a-law编码的wav文件转换为pcm wav文件?

audio - WaoN-WAV到MIDI转换

iphone - 音频延迟 OpenAL 或 RemoteIO 音频单元

ios - MPNowPlayingInfoCenter 在通过播放音频时始终处于 "playing"状态

linux - ALSA 的 snd_pcm_delay() 究竟返回什么?