LINUX.ORG.RU

ls -1t *.mp3 | mplayer -playlist -

 ,


0

1

Консольный Mplayer может читать плейлист со стандартного ввода (пример использования вынесен в заголовок), но при этом перестаёт обрабатывать ввод с клавиатуры. Как-то можно это обойти помимо создания временного файла с плейлистом или дополнительной программы для управления mplayer-ом?

★★★

Последнее исправление: CYB3R (всего исправлений: 1)
Ответ на: комментарий от anonymous

mplayer *.mp3?

Порядок не тот. Я хочу подавать на вход произвольный список в произвольном порядке, а не только в алфавитном.

olegd ★★★
() автор топика
Ответ на: Башизм от AITap

mplayer -playlist <(ls -1t *.mp3)

На каждый найденный файл выдаёт серию ошибок вида:

Playing /dev/fd/Gazebo - Telephone Mama.mp3.
File not found: '/dev/fd/Gazebo - Telephone Mama.mp3'
Failed to open /dev/fd/Gazebo - Telephone Mama.mp3.
olegd ★★★
() автор топика
Ответ на: комментарий от anonymous

xargs

Тоже не работает управление с клавиатуры. Имхо, по той же причине.

Раз уж зашла речь про xargs, сразу вопрос: как лучше обрабатывать входной список? Я добавил к ls ключ -Q, и это прокатило, но всегда ли это сработает? И есть ли какой-то простой общепринятый способ взять в кавычки или заэкранировать спецсимволы в произвольном тексте? (Проще чем прогонять через sed.)

olegd ★★★
() автор топика
Ответ на: комментарий от olegd

Хм. mplayer ищет файлы в директории относительно пути расположения плейлиста, а не в текущей. В принципе, разумное поведение.

Придётся скармливать ему абсолютный путь:

mplayer -playlist <(ls -1t "$(pwd)"/*.mp3)

Абсолютные пути вида ~/archive/music/mp3/*.mp3 должны работать нормально.

AITap ★★★★★
()
Ответ на: комментарий от olegd

Правильнее всего - делить текст по символу, которого совершенно точно не может быть в имени файла. Это нулевой байт. В человекочитаемых данных используют \n, хотя никто (кроме здравого смысла) не мешает добавить его в имя файла. Флаги -0 и -d '\n' у xargs, соответственно.

AITap ★★★★★
()

Делай плейлист в файле в tmpfs и не надо экономить на спичках.

sdio ★★★★★
()

Консольный Mplayer может читать плейлист со стандартного ввода (пример использования вынесен в заголовок), но при этом перестаёт обрабатывать ввод с клавиатуры.

Клавиатура это и есть stdin и если оттуда читается playlist, то читать оттуда же команды — глупо. В man mplayer это написано, а ты его не читал.

sdio ★★★★★
()
Ответ на: комментарий от sdio

Клавиатура это и есть stdin и если оттуда читается playlist, то читать оттуда же команды — глупо.

Именно. И я спрашивал как это обойти.

В man mplayer это написано

Там написано, что ввод с клавиатуры автоматически блокируется, если в командной строке есть "-". Как-то странно он блокируется, на мой взгляд — скорее просто игнорируется.

Делай плейлист в файле в tmpfs и не надо экономить на спичках.

Неинтересно :) И тяжело придумывать уникальное имя :)

olegd ★★★
() автор топика
Ответ на: комментарий от AITap

\n, хотя никто (кроме здравого смысла) не мешает добавить его в имя файла

То есть в общем случае даже \n нужно пользоваться с осторожностью :)

Флаги -0 и -d '\n' у xargs, соответственно.

Спасибо, без кавычек не работало.

olegd ★★★
() автор топика
Ответ на: комментарий от AITap
 mplayer -playlist <(ls -1t "$(pwd)"/*.mp3)

Управление с клавиатуры работает! Спасибо.

olegd ★★★
() автор топика
Последнее исправление: olegd (всего исправлений: 1)
Ответ на: комментарий от olegd

Неинтересно

В лыжах, в гамаке, стоя оно конечно интереснее.

И тяжело придумывать уникальное имя :)

И снова читаем man mktemp

З.Ы. попробуй man mplayer в области -slave и/или -input (pipe fifo)

sdio ★★★★★
()
Последнее исправление: sdio (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.