October 8, 2008

mkfifo в помощь онлайн радиолюбителю =)

Решил я тут как-то записать он-лайн радио, чтобы потом послушать в машине, но столкнулся с такой проблемой: магнитола не очень хорошо работает с файлами больших размеров (~700 мб).

Потом подумалось мне - может можно сразу записывать в маленькие последовательные файлы? mplayer мне в этом не помог - он просто пишет в файл и всё. Думал, можно было бы сделать "mplayer ... -dumpfile - | split -". Но mplayer покорно создал файл ``-'' и ничего не получилось.
Тут я вспомнил, где-то прочитанное: "в линуксе всё - есть файл".
- Но может есть какой-то такой файл, в который пишешь что-то, а оно там не задерживается и выходит тому, кто читает, или в никуда.
Погуглив на тему "linux special files" я быстро наткунлся на mknod и потом на mkfifo.

mkfifo создаёт как раз такой файл - данные вошли и вышли. mknod тоже так умеет, но там параметры какие-то надо указывать.

И того:
mkfifo ~/tmp/fifo
mplayer -nocache -playlist http://www.triplag.com/webradio/darkpsy/triplag-darkpsy.php -dumpaudio -dumpfile ~/tmp/fifo &> /dev/null
split --bytes 10M --numeric-suffixes --suffix-length 3 ~/tmp/fifo triplag


В результате получил файлы по 10 метров с записью радио, чему чертовски рад, т.к. городские радиостанции выносят мозг.

А можно такое сделать в Windows?

No comments: