将PCM音频数据流捕获到文件中,并通过ffmpeg播放流,怎么样?

时间:2015-04-11 06:36:06

标签: audio ffmpeg gstreamer audio-recording

想做以下四件事(分开),并需要一些帮助,了解如何处理这个问题,

  1. 将编码为PCM,16位,8kHz,little-endian的音频数据(从串行USB端口)转储到文件(纯二进制数据转储,而不是任何容器格式)。可以使用这种方法:

    $ cat / dev / ttyUSB0> somefile.dat

  2. 根据上述命令,我可以执行^ C来关闭文件写入,而转储正在进行中吗?

    1. 将音频数据(与上述类似)直接导入ffmpeg以便播放?像这样:

      $ cat / dev / ttyUSB0 | ffmpeg

    2. 或者,我是否必须将设备端口指定为" -source" ?如果是这样,我无法弄清楚格式。

      请注意,我已尝试过这个,

      $ cat /dev/urandom | aplay
      

      通过播放白噪声......按预期工作,但尝试以下方法并没有帮助:

      $ cat /dev/ttyUSB1 | aplay -f S16_LE
      

      即使打开/ dev / ttyUSB1使用picocom @ 115200bps,8位,没有奇偶校验,我确实看到了gibbrish,表示存在音频数据,正好在我预期的时候。

      1. 使用转储到文件中的音频数据,用作ffmpeg中的源?如果是这样,因为到目前为止我得到的印象是ffmpeg可以读取标准容器中的文件。

      2. 使用以任何格式(可能是.mp3或.wav)捕获的预先录制的音频通过ffmpeg流式传输到/ dev / ttyUSB0设备。我应该使用它作为" -sink"参数,或管道进入或重定向到它?另外,在2个终端窗口中,我可以使用ffmpeg同时从同一设备/ dev / ttyUSB0中捕获和传输音频数据吗?

      3. 我对数字音频录制/处理格式,编解码器的了解有些限制,因此不确定我尝试做的事情是否适合使用' raw'音频与否?

        如果ffmpeg无法做到我希望实现的目标,那么gstreamer可以成为解决方案吗?

        PS>如果有人认为答案可以改进,请随时提出具体要点。如果我有相关信息,我很乐意添加任何要求的详细信息。

0 个答案:

没有答案
相关问题