在 Linux 上,我可以使用耳机插孔、音频线和麦克风插孔复制文件吗

在 Linux 上,我可以使用耳机插孔、音频线和麦克风插孔复制文件吗

我想仅使用耳机输出将文件(即无损传输)从 Linux 计算机传输到另一台计算机。我会使用音频线并将其插入接收计算机的麦克风输入。这可行吗?我该如何设置?

需要说明的是:我没有 USB、以太网等可用设备。耳机插孔就是了。所以显然我需要一个软件调制解调器。有这样的调制解调器吗?

答案1

这是完全可能的,尽管比你习惯的要慢得多。

过去,您可以使用录音机将数据和软件保存到录音带中。(在软盘价格低廉、可供大众购买之前,人们就是这么做的。)当时无法进行双向通信,因此他们使用各种纠错技术来确保在数字音频出现之前,尽管录音环境多变且嘈杂,数据仍可加载。

这种方法的一个变种是将数据“保存”为音频,就像将数据保存到盒式录音机一样。(您无需连接到盒式录音机,而是连接到另一台计算机上的“线路输入”。)另一台计算机将设置为从该“线路输入”连接“加载”数据。

我不确定如今的 Linux 上是否随时提供此类功能。但市面上有各种声音和错误校正库,而且这些技术非常简单,只要进行一些研究并付出一些努力,最终就能得到想要的东西。

环顾四周,似乎人们对这种技术仍然感兴趣。这一页描述minimodem(以及如何获取它)一段 Linux 软件,它看起来正好能完成您所要求的操作。

答案2

在现代 Linux 系统上完全可行。如上所述微型调制解调器就是你想要的。通过闭环,你将获得至少 2400bps(2.4kbps),甚至更多。如果房间很安静,你只需一个扬声器、麦克风和声波就可以达到 100bps。Youtube 视频这里。您需要熟悉 c-kermit 以进行实际的文件传输。

答案3

根据你问题的限制,我认为传统调制解调器实际上有点过头了。你不需要需要TCP 连接通过音频连接进行文件传输,这样可能会没有所有的网络开销。

那么让我们来分析一下这个问题。在一台计算机上,你有一个任意数据文件,你想以某种方式对其进行编码,以便可以将其作为音频播放,然后在另一台机器上对其进行解码。

播放和录制部分应该相当简单——一旦你生成了音频文件,就可以使用 Audacity 之类的程序从另一台机器上的音频输入录制它。因此,困难的部分是对音频流进行编码和解码。

为什么不使用摩尔斯电码? 您可以使用十六进制表示数据,并且存在用于编程的工具编码解码来自音频。

当然,提到解码所需的任何额外工具都会引发一个问题:你首先如何在目标机器上获得这个工具?(对于软件调制解调器也是如此。)如果你要在目标机器上输入一个程序来为你解码,那么开源 javascript 库并不是一个完全糟糕的想法。

您可以使用简单的校验和哈希来验证编码、传输和解码后的准确性。

答案4

二进制数据可以转换为音频并再转换回来吗?当然我相信肯定有软件解决方案,尽管我非常怀疑它们是否接近无损,而且我从未尝试过。

我会推荐它吗?一点也不。请记住,使用一台机器的输出作为另一台机器的输入意味着接收机器无法重新请求它未收到的任何数据,尽管您可以设计一种方法来对收到的数据进行奇偶校验。此外,普通消费级耳机和麦克风芯片组/编解码器不太可能像您需要的音调那样精确,以实现接近无损的连接。它们可能还有一些后台均衡器设置或增益,因此您可能必须很幸运才能传输数据。

你不会得到可以信赖的、可验证的无损数据传输。但你可以潜在传输数据。

相关内容