从广播流中保存喜爱的曲目

时间:2011-11-21 09:32:38

标签: linux ubuntu streaming pipe dbus

以下是我的问题的一般说明。

我有我最喜欢的音乐的文件夹(好吧,这实际上不是问题:D)我定期切换2-3个电台流。有时当我在收音机上收听某些曲目时,我意识到我喜欢它并希望将其保存到我的收藏夹中。你可能会猜到问题是,当我决定要保存音轨时,它已经部分播放,而它应该从一开始就完全保存。

所以一般来说应该是这样的:我正在听流 - >决定我希望它保存到我的文件夹 - >按某个按钮 - >收听广播流中的曲目完成后,它将显示在我的收藏夹文件夹中。

我使用ubuntu linux 10.04,rhythmbox进行流式监听。我可以从ubuntu存储库或外部源安装任何其他程序。我可以编写/使用python,bash脚本甚至java或c ++中的程序。

我对此问题的研究如下。

用于无线电流传输的流行软件是streamripper。我没有遇到任何问题,将所有曲目保存到单个文件或将传入流拆分为单独的文件。 所以我的第一种方法就是开始将流转换为单独的轨道并转发它以便能够自己倾听。 这种方法存在问题:

  • 我最终得到了很多文件,我必须处理这些文件, 删除所有这些但我喜欢的
  • 我如何记住我真正喜欢的曲目?
  • 硬盘加载 - 从2-3流中翻录时,它似乎成为磁盘上的恒定负载。这似乎有点过头了,因为保存到磁盘的大部分数据都将被删除

我相信第一个问题可以用某种后台程序/脚本来解决 - 删除最新文件如果"我喜欢"按钮之前没有按过。

使用dbus for rhythmbox可以解决第二个问题,例如通过写python script来询问rhythmbox当前播放曲目的名称。

我还没有找到第三个问题的解决方案。在我看来,linux命名管道是避免任何磁盘负载的方法。但是当翻录到单独的轨道时,streamripper会创建文件,因此我无法将它们命名为管道而不是常规文件。当然,我可以创建命名管道并指示stramripper将整个流保存到此文件,同时使用某个程序从管道的另一端读取数据。但在这种情况下,我无法使用streamripper的轨道分割逻辑。

那我该怎么解决我的问题呢?有什么方法可以通过解决第三个问题来完成我的方法吗?或者我的一般问题有一个完全不同的方法吗?唯一的软件要求是ubuntu本身。我可以接受任何节目。

1 个答案:

答案 0 :(得分:1)

使用ram磁盘不会触及硬盘,但是你应该有足够的ram来保存你的翻录内容。

https://www.google.com/search?q=linux+make+ram+disk