想做以下四件事(分开),并需要一些帮助,了解如何处理这个问题,
将编码为PCM,16位,8kHz,little-endian的音频数据(从串行USB端口)转储到文件(纯二进制数据转储,而不是任何容器格式)。可以使用这种方法:
$ cat / dev / ttyUSB0> somefile.dat
根据上述命令,我可以执行^ C来关闭文件写入,而转储正在进行中吗?
将音频数据(与上述类似)直接导入ffmpeg以便播放?像这样:
$ cat / dev / ttyUSB0 | ffmpeg
或者,我是否必须将设备端口指定为" -source" ?如果是这样,我无法弄清楚格式。
请注意,我已尝试过这个,
$ cat /dev/urandom | aplay
通过播放白噪声......按预期工作,但尝试以下方法并没有帮助:
$ cat /dev/ttyUSB1 | aplay -f S16_LE
即使打开/ dev / ttyUSB1使用picocom @ 115200bps,8位,没有奇偶校验,我确实看到了gibbrish,表示存在音频数据,正好在我预期的时候。
使用转储到文件中的音频数据,用作ffmpeg中的源?如果是这样,因为到目前为止我得到的印象是ffmpeg可以读取标准容器中的文件。
使用以任何格式(可能是.mp3或.wav)捕获的预先录制的音频通过ffmpeg流式传输到/ dev / ttyUSB0设备。我应该使用它作为" -sink"参数,或管道进入或重定向到它?另外,在2个终端窗口中,我可以使用ffmpeg同时从同一设备/ dev / ttyUSB0中捕获和传输音频数据吗?
我对数字音频录制/处理格式,编解码器的了解有些限制,因此不确定我尝试做的事情是否适合使用' raw'音频与否?
如果ffmpeg无法做到我希望实现的目标,那么gstreamer可以成为解决方案吗?
PS>如果有人认为答案可以改进,请随时提出具体要点。如果我有相关信息,我很乐意添加任何要求的详细信息。