首页 > 解决方案 > 从 L16 创建 mulaw 音频文件

问题描述

我有一个带有这些属性的波形文件。

   sampling rate = 16000 Hz 
   encoding = L16 
   channels = 1 
   bit resolution = 16

我想做2个管道

1) 我将此文件内容作为 RTP 数据包扔到端口 = 5000

2) 监听 port=500 捕获 rtp 数据包并制作具有以下属性的音频文件

   sampling rate = 8000 Hz 
   encoding = PCMU 
   channels = 1 
   bit resolution = 8

我试过的是:发件人:

gst-launch-1.0 filesrc location=/path/to/test_l16.wav ! wavparse ! audioconvert ! audioresample ! mulawenc ! rtppcmupay ! udpsink host=192.168.xxx.xxx port=5000

接收者:

gst-launch-1.0 udpsrc port=5000 ! "application/x-rtp,media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU, channels=(int)1" ! rtppcmudepay ! mulawdec ! filesink location=/path/to/test_pcmu.ulaw

但我在 Test.ulaw 而不是 PCMU 获得 L16 文件

有什么建议吗?

标签: audiogstreamerpipelinemu-law

解决方案


检查mulawdec元素的作用:

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      audio/x-mulaw
                   rate: [ 8000, 192000 ]
               channels: [ 1, 2 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      audio/x-raw
                 format: S16LE
                 layout: interleaved
                   rate: [ 8000, 192000 ]
               channels: [ 1, 2 ]

所以基本上它将Mu Law解码为PCM。如果您想保存原始的 Mu Law,请删除该mulawdec元素。


推荐阅读