[Решено] mplayer в режиме slave, как узнать состояние?

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

mkfifo /tmp/mf
mplayer -slave -idle -input file=/tmp/mf -quiet -aspect 16:9 -fs -fixed-vo >> /tmp/out &

заметил что по окончанию каждой песни добавляется пустая строка в /tmp/out, поэтому делаю:

if [[ -z $(tail -n1 /tmp/out) ]]; then
echo "loadfile <filename>" > /tmp/mf
fi

пока все без глюкови сбоев, каждая песня идет друг за другом, и на всякий случай имеется проверка а работает ли сам mplayer

и тут появился момент, в echo "loadfile <filename>" > /tmp/mf нельзя вставлять имя файла, содержащего пробелы, никакие кавычки не помогают. Поэтому массовое переименование:

SAVEIFS=$IFS
IFS=$'\n'
for VIDEO_FILE in `find ~/Video -type f -iname '* *.avi' -o -iname '* *.mpg' -o -iname '* *.mp4'`
do
	mv $VIDEO_FILE `echo $VIDEO_FILE | tr ' ' '_'`
done
IFS=$SAVEIFS

И еще не знаю. где будет лучше в консольном или графическом отображать видео
slavutich
дергается экран
В каком смысле?

slavutich
в echo "loadfile <filename>" > /tmp/mf нельзя вставлять имя файла, содержащего пробелы
Так было всегда. Пробел в данном случае - разделитель параметров. Например, правильной будет строка:
echo osd_show_text Привет_мир 2000 0 > $fifo
хотя и пройдет конструкция типа:
echo osd_show_text `date +"%T"` 2000 0 > $fifo
Я бы на месте разработчика все-же разрешил пробел внутри кавычек. )

slavutich
И еще не знаю. где будет лучше в консольном или графическом отображать видео
Тут не совсем понял...
slavutich, с утра пришла мысль о пробелах в текстовом массиве, имени файла и т.д. Просто экранируете кавычки:
echo osd_show_text \"Строка с пробелом\" 2000 0 > /tmp/fifo
echo loadfile \"/путь/к/файлу/с пробелами в имени\"  > /tmp/fifo
Теперь будет работать без массового переименования! :)
Aivar
slavutich
дергается экран

В каком смысле?

в том смысле, что видно как закрывается окно проигрывателя, показывается рабочий стол и снова открывается новое окно. Как-то не эстетично выходит.

Про кавычки наверно не поможет: я собираю названия файлов в массив переменной через find, хотя в переменной также можно экранки запихать наверно, надо попробовать.

Aivar
slavutich
И еще не знаю. где будет лучше в консольном или графическом отображать видео

Тут не совсем понял...

mplayer позволяет воспроизводить видео в консоли, без запуска иксов:

sudo chmod +777 /dev/fb0
mplayer -vo fbev2 -quiet -zoom -x 1024 -y 768 название_ролика

но в конечном счете я решил пока пользоваться графической оболочкой, ресурсы машины позволяют. Меня интересовал вопрос: в консоли меньше ресурсво потребляет или нет)

Некоторый итог: конструкция для определения окончания ролика [[ -z $(tail -n1 /tmp/out) ]] работает четвертый день без сбоев, хотя мне кажется диким, и на всякий случай ту машину не обновляю. Понаблюдаю еще неделю и если все в порядке, поставлю тему в решенную
slavutich
видно как закрывается окно проигрывателя, показывается рабочий стол и снова открывается новое окно.
Странное заключение. На то и существует параметр -fixed-vo и в стартовом посте он у вас фигурирует.

slavutich
хотя в переменной также можно экранки запихать наверно, надо попробовать.
Можно и это поможет.

slavutich
mplayer позволяет воспроизводить видео в консоли, без запуска иксов:
sudo chmod +777 /dev/fb0
mplayer -vo fbev2 -quiet -zoom -x 1024 -y 768 название_ролика

Не знаю зачем вы меняете права на /dev/fb0. Просто добавьте пользователя в группу video.
И не надо таким диким способом делать масштабрование. :)
mplayer -vo fbdev2 -msglevel all=0 -vf scale=1024:-3 filename

slavutich
Меня интересовал вопрос: в консоли меньше ресурсво потребляет или нет
Во фреймбуффере вся нагрузка по декодированию и рендерингу видео ложится на плечи микропроцессора. В иксах с установленными драйверами эта работа (в зависимости от формата видео и возможностей видеокарты) частично или полностью перекладывается на графический процессор видеокарты.
Так что решать вам: если у вас мощный процессор - вполне можете обойтись без иксов.
Aivar
Не знаю зачем вы меняете права на /dev/fb0. Просто добавьте пользователя в группу video.
И не надо таким диким способом делать масштабрование. :)
mplayer -vo fbdev2 -msglevel all=0 -vf scale=1024:-3 filename

добавлял в группу video - не помогает, а через sudo не интересно вещать. про такой способ масштабирования не знал - благодарю)

Aivar
Во фреймбуффере вся нагрузка по декодированию и реднерингу видео ложится на плечи микропроцессора. В иксах с установленными драйверами эта работа (в зависимости от формата видео и возможностей видеокарты) частично или полностью перекладывается на графический процессор видеокарты.
Так что решать вам: если у вас мощный процессор - вполне можете обойтись без иксов.

Спс, тоже очень полезная инфа

Aivar
Странное заключение. На то и существует параметр -fixed-vo и в стартовом посте он у вас фигурирует.

тупо скопировал: mplayer -quiet -slave -input file=/tmp/mplayctl -af equalizer=-6:0:0:-3:-6:-9:-6:-3:0:0 -playlist /tmp/mplist &> /dev/stdout - забыл, что это пример ашего исходника, а не готовый вариант для меня)))))))))
slavutich
добавлял в группу video - не помогает
$ ls -l /dev/f0
?
подсмотрено на буржуйском сайте, где говорилось установить права 777.

Ладно, тему считаю закрытой, определить состояние плейера описанными выше способами возможно. Большое спасибо все отозвавшимся)))
 
Зарегистрироваться или войдите чтобы оставить сообщение.