Audio 如何将PCM音频数据流捕获到文件中,并通过ffmpeg播放流?

Audio 如何将PCM音频数据流捕获到文件中,并通过ffmpeg播放流?,audio,ffmpeg,gstreamer,audio-recording,Audio,Ffmpeg,Gstreamer,Audio Recording,我想(分别)做以下四件事,并且需要一些帮助来理解如何做到这一点 将编码为PCM、16位、8kHz、little-endian的音频数据(从串行USB端口)转储到文件中(纯二进制数据转储,而不是任何容器格式)。是否可以使用这种方法: $cat/dev/ttyUSB0>somefile.dat 在转储过程中,是否可以按照上述命令执行^C以关闭文件写入 将音频数据(与上述类型相同)直接流到ffmpeg中播放?像这样: $cat/dev/ttyUSB0 | ffmpeg 或者,是否必须将设备端口指定为“

我想(分别)做以下四件事,并且需要一些帮助来理解如何做到这一点

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

    $cat/dev/ttyUSB0>somefile.dat

  • 在转储过程中,是否可以按照上述命令执行^C以关闭文件写入

  • 将音频数据(与上述类型相同)直接流到ffmpeg中播放?像这样:

    $cat/dev/ttyUSB0 | ffmpeg

  • 或者,是否必须将设备端口指定为“-源”?如果是这样的话,我想不出格式

    注意,我试过这个

    $ cat /dev/urandom | aplay
    
    通过播放白噪声…,它可以按预期工作,但尝试以下操作没有帮助:

    $ cat /dev/ttyUSB1 | aplay -f S16_LE
    
    尽管使用picocom@115200bps、8位、无奇偶校验打开/dev/ttyUSB1,我确实看到了gibbrish,表示音频数据的存在,这正是我所期望的

  • 使用转储到文件中的音频数据,在ffmpeg中用作源?如果是这样的话,那怎么办呢?因为到目前为止,我的印象是ffmpeg可以读取标准容器中的文件

  • 使用以任何格式(可能是.mp3或.wav)捕获的预录音频,通过ffmpeg流式传输到/dev/ttyUSB0设备中。我应该将其用作“-sink”参数,还是将其导入管道或重定向?另外,是否可能在两个终端窗口中,我使用ffmpeg从同一设备/dev/ttyUSB0同时捕获和传输音频数据

  • 我对数字音频录制/处理格式、编解码器的了解有点有限,因此不确定我尝试的工作是否符合“原始”音频的要求

    如果ffmpeg无法实现我希望实现的目标,那么gstreamer是解决方案吗


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

    对于投票结束的人,请查阅“ffmpeg”标签,我相信您会发现大多数ffmpeg问题与编程无关。它们通常是编程实现的前兆。我打算通过Python编程串口读取和设备控制,但在此之前,我需要知道如何进行交互。希望能澄清。第一步是使用audacity打开
    somefile.dat
    ,并在那里检查您是否可以播放它,以及您是否获得了一个好看的波浪视图。顺便说一句,我觉得你的问题太宽泛了。