【发布时间】:2012-01-02 19:53:25
【问题描述】:
这是我的问题的一般描述。
我有我最喜欢的音乐的文件夹(好吧,这实际上不是问题 :D)我会定期在 2-3 个广播电台流之间切换。有时,当我在广播中收听某些曲目时,我意识到我喜欢它并想将其保存到我的收藏夹中。正如您可能猜到的那样,问题是当我决定要保存曲目时,它已经部分播放了,而应该从一开始就完全保存。
所以一般情况下应该是这样的:我正在收听流媒体 -> 决定将其保存到我的文件夹中 -> 按一些按钮 -> 广播流上的曲目完成后,它会出现在我的收藏夹文件夹中.
我使用 ubuntu linux 10.04,节奏盒来监听流。我可以从 ubuntu 存储库或外部源安装任何其他程序。我可以编写/使用 python、bash 脚本甚至是 java 或 c++ 中的程序。
我对这个问题的研究如下。
用于无线电流翻录的流行软件是 streamripper。我没有问题,将所有曲目保存到单个文件或将传入流拆分为单独的文件。 所以我的第一个方法就是开始将流翻录成单独的轨道并转发它以便能够自己听。 这种方法的问题:
- 我最终得到了很多文件,然后我必须对其进行处理, 删除所有这些,但我喜欢的那些除外
- 我如何记住我真正喜欢的曲目?
- 硬盘负载 - 从 2-3 个流中抓取时,它似乎成为磁盘上的恒定负载。这似乎有点矫枉过正,因为大部分保存到磁盘的数据都会被删除
我相信第一个问题可以通过某种后台程序/脚本来解决 - 如果之前没有按下“我喜欢”按钮,则删除最新文件。
第二个问题可以使用 dbus 来解决节奏盒,例如写python script 询问节奏盒当前播放曲目的名称。
我还没有想出第三个问题的解决方案。在我看来,linux 命名管道是完全避免任何磁盘负载的方法。但是当翻录到单独的轨道时,streamripper 会创建文件,所以我不能将它们命名为管道而不是常规文件。当然,我可以创建命名管道并指示 stramripper 将整个流保存到该文件,同时使用一些程序从管道的另一端读取数据。但是在这种情况下,我不能使用streamripper的轨道分割逻辑。
那么我该如何解决我的问题呢?有什么办法可以通过解决第三个问题来完成我的方法?或者对我的一般问题有完全不同的方法吗?唯一的软件要求是 ubuntu 本身。我可以接受任何程序。
【问题讨论】:
-
当你用“我喜欢”按钮标记文件时,为什么不翻录到 ram 磁盘然后移动文件?
-
@F.C.我根本不熟悉 ram 磁盘。使用它是否绝对不会在硬盘上产生负载?我可以在不修改系统配置的情况下挂载和卸载它吗?无论如何,这似乎很有希望。请将其发布为答案。
标签: linux ubuntu streaming pipe dbus