Пользователь
0,0
рейтинг
31 октября 2010 в 14:29

Администрирование → Как я в сериалы в консоли смотрю / bash-скриптинг

Вы любите смотреть фильмы? Я — да: «Теория большого взрыва», «The IT Crowd», разное аниме… Все это очень затягивает.
Для просмотра всего этого добра я пользуюсь консольной версией самого всеядного медиаплеера mplayer. (Давайте воздержимся от холивара по поводу красноглазия и GUI vs консоль) Но вот незадача, для каждой новой серии приходится заново набирать длинную команду вроде такой:
$ mplayer -ass -subcp cp1251 имя_сериала_01_еще_какая_то_чушь.mkv

Ясное дело, что я не набираю всю эту простыню с нуля, а просто стираю бэкспейсом до номера серии, пишу новый номер и табом дополняю до конца имени файла. Но это ведь долго и неудобно, можно промахнуться и стереть лишнего.
А еще часто смотрится несколько сериалов параллельно, по мере выхода новых серий. И помнить, на какой серии я остановился в прошлый раз, и с какими параметрами и ключами запускал mplayer, становится затруднительно. И поэтому я решил написать себе на шелле простую запускалку плеера, которая будет запоминать параметры, номер последнего просмотренного эпизода и уметь подставлять номер следующего в команду запуска.

Интерфейс


Для начала определимся, какой интерфейс должен быть у этой обертки.
Номера сериалов практически всегда двузначные, поэтому я не стал заморачиваться с поддержкой однозначных или трехзначных чисел.
Вот так будет выглядеть первоначальная настройка, которую нужно выполнить только один раз:
$ cd ~/имя_сериала # где и что мы хотим смотреть
$ ls # смотрим, как называются видео-файлы
serial_name_01_bla_bla.avi
serial_name_01_bla_bla.srt
serial_name_02_bla_bla.avi
serial_name_02_bla_bla.srt
...
$ serial set mask "serial_name_??_bla_bla.avi" # указываем параметр name - имя видеофайлов с замененным номером серии на "??"
# serial set options -subcp cp1251 # опционально указываем параметр options - ключи, с которыми запускать mplayer

А теперь смотрим:
$ serial next # Начнем с начала
Playing episode 01...
...
$ serial next # Понравилось, давайте следующий
Playing episode 02...
...
$ serial same # Увидел смешной момент, хочу пересмотреть заново этот же эпизод
Playing episode 02...
...
$ serial episode 14 # Перепрыгиваем к конкретному эпизоду
Playing episode 14...
...
$ while true; do; serial n; sleep 1; done; # нон-стоп

А если у нас имена эпизодов различаются не только номером серии? Тогда используем подстановку shell:
$ ls # смотрим, как называются видео-файлы
serial_name_01_qwerty.mkv
serial_name_02_asdfgh.mkv
$ serial set mask "serial_name_??_*.avi" # указываем параметр name c заменой подстановки на звездочку
$ serial set glob yes # выполнять подстановку


Пишем


Выставим дефолтные значения, это просто:
player=mplayer
options=""
episode=00

Где будем хранить данные о состоянии просмотра? В первую очередь приходит мысль записать это прямо в папку, в которой он лежит, но такой вариант не подойдет, если вы смотрите сериал с компакт-диска, который, как известно, read-only. Также защищенными от записи могут быть сетевые папки (nfs/samba) или просто неправильно настроенные права у торрентокачалки.
Поэтому хранить будем в домашней папке, но идентифицировать сериал будем так же по пути в файловой системе, где эпизоды лежат. Для удобства лучше еще взять от него хэш, чтобы не иметь дела с экранированием всяких спецсимволов, которые могут там встретиться.
pwdhash=`pwd|md5sum|awk '{print $1}'`

Создадим директорию, в которой будем хранить все наши состояния сериалов, если её еще нет:
test ! -d ~/.serial && mkdir ~/.serial

Определим имя файла, в которое будем записывать:
savefile=~/.serial/$pwdhash

Вот где-то тут меня посетила шальная мысль, что можно использовать полновесную реляционную базу данных вроде sqlite или еще того тяжелее, mysql, но эту мысль я вовремя отогнал, иначе бы вышел большой монстр вместо простой обертки над мплеером.
Теперь о сериализации: как именно хранить данные? Парсить свежепридуманные форматы на языке bash, который предназначается совершенно для других целей, мне совсем не улыбалось, поэтому я просто решил что там будут переменные окружения в таком же sh-формате.
Давайте загрузим файл, если он уже там есть:
if [ -f $savefile ]
then
    ready="true"
    . $savefile
fi

Так, а какие действия мы можем выполнить с сериалом? Я остановился на таких:
case $1 in
    # Запускает следующий эпизод
    n|next)
        # ...
    ;;
    # Запускает только что просмотренный эпизод снова
    s|same)
        # ...
    ;;
    # Запускает эпизод по его номеру 
    e|ep|episode)
        # ...
    ;;
    # Устанавливает параметры, с которыми просматривать сериал
    set)
        # ...
    ;;
    # Просмотр текущего состояния
    status|show)
        # ...
    ;;
    # И краткая справка, если я что-то вдруг забуду.
    *)
        echo Unknown command.
        echo Commands:
        echo next - plays episode next to what you have played before
        echo same - plays this episode again
        echo show - shows current state
        echo episode NN - plays episode NN
        echo set var_name value - sets the variable
    ;;
esac

Приступим к реализации отдельных действий.
Первым делом стоит проверить, настроили ли мы просмотр этого сериала или нет. Так как это действие выполняется почти в каждой команде, я вынес его в функцию, которая смотрит наличие установленной при загрузке параметров переменной, и в случае отсутствия выводит инструкцию, как же это дело настраивается.
function check_ready {
    if [ -z "$ready" ]
    then
        echo This directory is not known to have serials.
        echo Use the following command to setup:
        echo "$0 set mask \"Movie_name_episode_??_smth.avi\""
        exit 1
    fi
}

Теперь, собственно, запуск, также отдельной функцией:
function launch {
    # ...
}

Сначала заменим вопросы в названии на текущий номер эпизода:
movie="`echo \"$mask\" | sed \"s/??/$episode/g\"`"

С подстановкой у меня возникли проблемы: оказывается, в баше это не так-то просто… Перепробовав много вариантов разной степени извращенности, я остановился на таком, хотя если честно, так и не понял как он работает, но побочный эффект его в том, что нужно экранировать пробелы при задании маски:
if [ "$glob" == "yes" ]
then
    movie="$(eval "echo $movie")"
fi

В комментариях можете предложить варианты получше.

Проверим, что файл с полученным названием существует, а если нет, нужно вывалить сообщение и выйти.
test ! -f "$movie" && die Episode $episode not found

Ах да, вот еще одна вспомогательная функция: выводит сообщение и выходит
function die {
    echo $@
    exit 1
}

Вернемся к реализации функции запуска launch. Сохраним номер последнего проигранного эпизода (а заодно и дату запуска) в файл настроек:
echo episode=$episode "#" at `date` >> $savefile

Выведем сообщение о текущем эпизоде:
echo Playing episode $episode...

И наконец запустим наш плеер с параметрами, файлом и дополнительными аргументами, которые может передать пользователь после указания эпизода
$player $options "$movie" "$@"

Отлично, функция launch готова! Осталось совсем малость: заполнить конструкцию case. Самая простая команда — same:
s|same)
    check_ready
    shift
    launch "$@"
;;

Для просмотра следующего эпизода нужно инкрементировать переменную, но при этом сохранить отбивку нулями сначала. Для этого подошел awk:
n|next)
    check_ready
    episode=`echo $episode |awk '{printf "%02d",$1+1}'`
    shift
    launch "$@"
;;

Вот так можно запустить с конкретным эпизодом по номеру:
e|ep|episode)
    check_ready
    test -z "$2" && die No episode specified
    episode=$2
    shift
    shift
    launch "$@"
;;

А теперь нечто совершенно другое — установка переменных:
set)
    # Проверим, что нам передали название переменной
    test -z "$2" && die Variables: episode mask glob options player
    var_name="$2"
    # Проверим, что есть хотя бы что-то в значении
    test -z "$3" && die No value specified
    shift
    shift
    # И запишем все что есть:
    echo "$var_name=\"$@\"" "#" at `date` >> $savefile
;;

Наконец, вывод текущего состояния:
status|show)
    check_ready
    echo Last played episode $episode
    echo Options are $options
    echo Savefile is $savefile
    echo Mask is \"$mask\"
    test -z "$glob" || echo Globbing is set
;;

Вот здесь вы можете увидеть скрипт в готовом, но очень плохо документированном варианте, которым я активно пользуюсь уже давно bitbucket.org/tsx/env/src/tip/bin/serial
@tsx
карма
24,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Администрирование

Комментарии (142)

  • +6
  • +12
    1) Smplayer помнит место, где остановился просмотр.
    2) Ctrl-W позволяет сэкономить тысячи нажатий на Backspace.
    3) Английские сабы позволяют забыть о проблемах с кодировками.
    • +2
      При всем уважении. Английские сабы не всем по зубам.
      С остальным согласен
    • +2
      А английский язык позволяет забыть обо всех сложностях русского. И что?
      • –1
        Разумеется. Особенно, если он нативный для произведения. Вы же не используете русские сабы для русскоязычных произведений, так?
        • +1
          Так. Если моё знание иностранного языка позволяет мне смотреть фильм на языке оригинала, я так и поступаю. Если не позволяет, я лучше посмотрю его с переводом, чем с сабами на том же языке. Если смотреть фильмы ради развлечения, а не ради изучения языка, конечно же.
          Так что английские сабы не нужны. А о проблемах с кодировками позволяет забыть UTF-8. К счастью, в последнее время всё больше сознательных людей пользуются ею, а не пережитками тяжёлого прошлого.
          • 0
            к сожалению в некоторых местах ещё приходится пользоваться KOI-8. вот мне недавно батничек пришлось написать, долго же я матерился и искал редактор который это может…
            я про
            ECHO «Установка завершена»
            PAUSE
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                Ага. А шрифты в консоли кто выставит правильные (== Lucida Console как минимум)
              • 0
                Спасибо! я не спец по вендам, по этому не знал. примем к сведению
  • –49
    Открою секрет. Вконтакте можно смотреть сериалы без всяких mplayer, скачивания фильмов итд итп. Попробуйте, это гораздо удобнее ;)
    • +11
      1. Там есть видео в оригинале с субтитрами?
      2. Там есть видео в хорошем качестве?
      • –11
        > 1. Там есть видео в оригинале с субтитрами?

        хардсабы есть

        > 2. Там есть видео в хорошем качестве?

        720p есть
        • +5
          Ну тогда просмотр видео вконтакте имеет право на существование, но все равно нам удобнее скачать и посмотреть в любимом плеере :)
          • 0
            Я иногда беру ссылку видео вконтакте, и через mplayer по сети смотрю с подключенными локальными сабами.
        • +3
          И ради этого ставить [censored] Flash Player?
          • 0
            а, Вы должно быть Ъ линуксойд? Арч, я угадал? :)
            • 0
              А что не так с арчем? Я его пару дней назад поставил рядом со старым добрым дебианом, всё работает с полпинка. Флеш в том числе.
              • +6
                Но тем не менее, он почему-то угадал.
                • 0
                  Пусть так, сути шутки я всё равно не понял.
              • –1
                Минусяторы, пояснить — пальцы отвалятся?
            • 0
              не угадали, мандряка
          • +1
            А вы ютуб не смотрите? Или он уже без флеша работает?
            • +1
              • 0
                Ну и как оно? Я пробовал еще летом, тормозило хуже флеша и не было сглаживания. Уже допилено?
                • 0
                  Недавно попробовал, теперь постоянно пользуюсь.
          • +2
            Я так понимаю автор иксами не пользуется, а вы про какой то там…
      • +4
        > 1. Там есть видео в оригинале с субтитрами?
        > 2. Там есть видео в хорошем качестве?

        Для меня главный аргумент:
        3. Там есть я?
        • 0
          Понятно, что вконтакт — это не круто :) Но я пытался быть объективным, регистрация там не сложнее чем на торрент-трекере. А для просмотра видео вроде ничего кроме регистрации там не нужно.
          • +3
            а если человек не согласен с Условиями регистрации?
            • 0
              тут не поспоришь :)
          • 0
            для просмотра видео регистрация не нужна, используйте VOMP
            code.google.com/p/vkopenmp/
        • 0
          А и не обязательно там быть кстати, например здесь несколько раз пиарился сайт кинобаза.ру (бот отлеживающий появление фильмов на торрентах), так вот там есть возможность просмотра фильмов/сериалов онлайн — данные тянутся с вконтакта. Довольно удобно.
      • 0
        Да чего тут обсуждать??
        «Смотреть сериалы в ВКонтакте» — это же ппц
        • 0
          аргументируйте пожалуйста.
          Мне лично кажется это вообще единственное что там можно делать. Гораздо быстрее с двух кликов жене Камеди какое-нибудь или хауса включить, чтобы фоном развлекало пока она на кухне возится, чем с торрентами заморачиваться.
    • +5
      Конечно, особенно если интернет у вас не безлимитный и скорость у него меньше 512, а цена за мегабайт 4р. Или вы просто ресурс рекламировали?
      • –4
        честно сказать я не представляю где сейчас 512 кбит по 4 р мегабайт. 10 лет назад у меня в _деревне_(Воронежская обл.) был ADSL с 2 мбитами за 2,5 р. Сейчас там анлимитные 512 кбит.
        • +2
          не всем так повезло: evo.uz/static/trfp
          • 0
            ну в общем-то это вообще не Россия, в некоторых странах интернет законодательно должен быть доступен всем.
          • 0
            В нашей стране (Узбекистан), с его 5 Гигабитоми в мир цены ниже не могут быть.

            Да и EVO не самый дешёвый, если сравнивать его с тем же Саркором (http://extreme.uz/plans/)
        • +2
          Вот и многие на хабре не знают где такие «интернеты», где айфоны считается имеджевым девайсом, где 1к$ считается большими деньгами.

          www.rtatel.ru/docs/category_files/price_internet.pdf — максимальная скорость 256
          hanty.u-tel.ru/content/newsitem_8811 — 1 мб = 4р ( то что закрыт на подключение не показатель, многие до сих пор на нём)
          г. Нефтеюганск

          • –2
            хм, я думал там одни только медведи живут, а там оказывается еще и интернет есть. Ну да ладно, главное что бы нам тут в Мск черной икры на всех хватило.
          • –1
            Хорошая у вас зарплата, если 1к$ для вас — не деньги…
            • 0
              Для них это как раз деньги.
        • 0
          Да у любого сотового оператора около 1 рубля за 250 кубов.
          • –2
            250 чего? У меня рубль(или 1,5) мегабайт. Билайн.
            • 0
              Килобайт. У меня 1 за 1, но в сутки 1 рубль снимают. Учитывая потребление траффика — мне очень выгодно, т.к. 10-15 метров в сутки с нетбука не встают мне сильно дороже из-за этого рубля.
          • 0
            Вы неправильно поняли. Это тариф на интернет ADSL. У сотового интернета другие расценки (если правильно помню то даже дешевле)
            • 0
              Понял-понял. Просто у нас соответствующие ценники за метр, только, пожалуй, у сотовых операторов и тех, кто разжирел до GPON, если такие есть.
    • –4
      еще сериалы можно смотреть и без линукса
      • +2
        и даже без компьютера
        • 0
          И даже не смотреть, а читать, например.

          Или слушать.
    • +2
      А если нет флэша? Мы же всё-таки не про Windows говорим, поэтому такая ситуация может встать чуть менее, чем всегда. Особенно, если использовать x64 систему и x64 браузер.
      lurkmore.ru/%D0%9D%D0%B8%D1%87%D0%B5%D0%B3%D0%BE_%D0%BD%D0%B5_%D0%BF%D0%BE%D0%B4%D0%B5%D0%BB%D0%B0%D0%B5%D1%88%D1%8C,_%D1%8D%D1%82%D0%BE_Flash
      • –1
        >>Особенно, если использовать x64 систему и x64 браузер.

        я боюсь вас огорчить но x64 не существует.
        • 0
          Ай ай! Сейчас кто-то будет наказан. Жестоко наказан!
          Ведь даже в Windows есть тот самый «Internet Explorer 64-бит»
          • 0
            я говорю о том что архитектуры x64 не существует.
            • 0
            • +4
              А я сказал что-то про архитектуру? И да, архитектура x86_64, amd64, Intel64, EM64T а система 64-битная.
              Я не КО, это заранее, чтобы мне ещё 5 минут не ждать.
              И ещё ссылочка ru.wikipedia.org/wiki/X86-64
              • 0
                >А я сказал что-то про архитектуру?

                Да.
            • 0
              ой, вы тоже верите в этот бред?
              мне на какой то из информатик препод такое же рассказывал, угадайте с чем он был смешан?
              • 0
                IA64 знаю, AMD64 знаю, x64 не знаю…
                • –1
                  х86 полюбому круче х64 =)
                  • 0
                    Ну да, и Windows 98 полюбому круче Windows XP.

                    Мы всё это помнится уже проходили…
                    • 0
                      Тут не все так однозначно. Буквы имеют более высокую позицию чем цифры)
                      • +1
                        ну тогда Win98 круче, чем Win7, т.к. цифра больше
                      • 0
                        Это намёк, не делать поспешных выводов.
      • 0
        Flash плеер есть под Win, Linux, MacOS X, запускается и на FreeBSD amd64.
        • 0
          Да, в Adobe Labs. Нестабильная версия.
          • +1
            Т.е. Вы хотите убедить меня в том, что я не могу видеть флеш?
            • –1
              Нет, почему же? Нестабильный Flash из Adobe Labs, gnash и swfdec никто конечно же не отменял.
              • 0
                Поставьте через ndiswrapper 32-х разрядную версию, если у Вас какие-то проблемы с шильдиком Бета.
                • 0
                  s/ndiswrapper/nspluginwrapper/
            • 0
              Нет, почему же? Нестабильный Flash из Adobe Labs, gnash и swfdec никто конечно же не отменял.
    • 0
      Ок, у меня соединение 32кбит/сек.
  • +1
    Помнится писал для похожего дела Makefile на sh. Удобно, заходишь в директорию с сериалом и make play. Плохо что не сохранил, но думаю что я не один такой псих и те у кого сохранилось такое добро поделятся :)
  • +7
    Несомненно, Вы молодец! Разбираетесь в своем деле. НО ЗАЧЕМ ТАК СЛОЖНО?!
    • 0
      Он знает толк в извращениях!
      Когда было свободное время, тоже чемто похожим занимался…
      • 0
        trueЪ задротство
  • 0
    *Уважительно *Красноглазо…

    Но лично мне проще пользоваться smplayer. Он и серии автоматом переключает, и ещё много удобных вещей делает. Единственное — на длинных именах файлов вроде «Супер-пупер сериал — эпизод 100500 [1920x1080 h.264 aac-2ch] [ae678b234].mkv» это автодобавление серий в плейлист обламывается. Поэтому я предварительно утилиткой rename весь пакован переименовываю в набор файлов с названиями типа «Супер-пупер сериал — 100500.mkv»
  • 0
    как-то слишком интерактивно mplayer *mkv и удаление просмотренных серий (симлинков на них) мне достаточно
  • 0
    >-subcp cp1251
    enca для кого делалась?
    >для каждой новой серии приходится заново набирать длинную команду вроде такой: ^01^02^
    fixed
    • 0
      enca не во всех дистрибутивах включена по умолчанию. Обычно приходится mplayer пересобирать.
      • 0
        Ну так с этим в багзиллу.
  • +16
    Вы бы еще с пеной у рта доказывали, что этот скриптище в 100500 раз удобнее нажатия на файл к гуе, а то топик незаконченный.
    • +4
      разве это не очевидно? ©
  • +8
    нашел несоответствие. топик называется «Как я в сериалы в консоли смотрю / bash-скриптинг» а в параметрах mplayer'а отсутствует необходимый для просмотра в консоли "-vo caca"
    • 0
      >отсутствует необходимый для просмотра в консоли "-vo caca"

      консоль может быть не только текстовой, хотя это не совсем Ъ
      • 0
        >>консоль может быть не только текстовой, хотя это не совсем Ъ

        еще интереснее было бы «просмотр сериалов на терминале Tektronix 4014»
  • +1
    Ну просто очень много букв.
    Содержание статьи укладывается в одну строчку.
    к примеру есть файлы типа «Dexter.s03e04.rus.LostFilm.TV.avi»
    for i in `seq 01 10`; do i="0$i"; echo "*e`echo ${i: -2}`*"; done
    • +1
      for i in `seq 01 10`; do i="0$i"; cvlc "*e`echo ${i: -2}`*"; done

      конечно же
      • +1
        Не тоже самое?
        for i in *{01..10}*; do echo $i; done
        • 0
          И правда, возьму на заметку.
  • –5
    Скоро будут топики «Как я лета на самолете в консоле» и будет такой скрипт на 10к+ строк, который будет включать громкую связь с салоном и т.д. в итоге что бы взлететь вы потратите 100 минут, а кто-то 1 :)
    • 0
      Ты не поверишь, но эти ваши гуя получили широкое распространение для тех, кто вообще не в состоянии себя ныне представить без мышки в нашей стране только с выходом надстройки над MS-DOS в виде Windows 95.
  • +2
    Советую освоить суффиксы в zsh.
    Например:
    alias -s avi=mplayer
  • +23
    image
  • +1
    > (Давайте воздержимся от холивара по поводу красноглазия и GUI vs консоль)

    Вы же напрашиваетесь. Лучший способ избежать холивара на какую-либо тему — сделать вид, что их никогда не было.
  • +4
    -subcp cp1251

    Расстреливать надо за субтитры в такой кодировке >_
  • +2
    Используйте алиасы в шелле, чтобы не набирать длинную команду, а для отмечания просмотренных серий — myshows.ru/
    • 0
      В смысле вместо написания скрипта можно было бы использовать это.
      • 0
        в смысле, в скрипте можно было использовать это: api.myshows.ru/
  • +1
    Mplayer, на мой взгляд, лучший плееров. Он не требует возни с кодеками, свободен и открыть, не просит ключей и кряков, и у него идеальный длят меня интерфейс — ничего лишнего (в отличие от других плееров, с безвкусными глянцевыми кнопками и скруглениями). Умеет воспрризводить по http без скачивания (вот бы приделать костыль, чтобы можно было его из браузера запускать для всяких QuickTime, FLV и VMW видео, вместо того чтобы ставить их кривые плагины). Воспроизводит он в общем-то все, что я скачиваю. Использую под Windows только его, правда без заморочек с консолью, а просто ассоциицровав с видео-файлами. А еще, в Опере, при клике по mpeg/avi файлу, можно запускать Mplayer со ссылкой на файл.

    А, еще он из коробки поддерживает субтитры :)

    p.s. Будь прокляты разработчики, из-за которых сломалась отправка комментариев в Опере!
  • +1
    > mplayer -ass -subcp cp1251

    ~/.mplayer/config, не?
    • 0
      Зависит от частоты, с которой попадаются субтитры в cp1251. Если в трети случаев, то лучше в конфиг не писать, а указывать руками. А вот -ass в конфиг точно надо запихнуть.
      • 0
        Тут можно хитрее сделать. Если в ~/.mplayer/config вписать:

        include = ./.mplayer.conf
        

        То в любом каталоге с сериями можно создавать .mplayer.conf с любыми опциями и они будут действовать только на эти серии. У меня используется такая заготовка:

        # ass = true                       # красивые сабы
        # embeddedfonts = true             # встроенные в mkv шрифты
        # ass-font-scale = 1.2             # покрупнее
        # ass-styles = .defstyle           # стиль не понравился
        # chapter = 2,3                    # в mkv иногда можно пропустить opening и ending в anime
        
        # subpos = 100                     # если уже есть хардсаб то софтсаб поднимаю вверх
        # subcp = cp1251.                  # кодировка
        
        # ss = 0:30                        # это если не mkv, пропускаю opening
        # endpos = 20:20                   # и ending, серии идут подряд
        
        # slang=rus,ru,eng,en              # приоритет сабов
        # alang=jp,jap,rus,ru,eng,en       # приоритет языка
        
        # hardframedrop = true             # если тяжелый кодек
        


  • –3
    «Теория большого взрыва», «The IT Crowd», разное аниме… Все это очень затягивает.

    Простите за офттоп, не понимаю как можно смотреть сериалы, где на фоне раздается смех «зрителей».
    • +1
      Не «зрителей», а зрителей.
    • 0
      легко:)
    • +1
      Я вообще их не перевариваю. Но это лишь моё мнение и вкус. Я знаю очень много уважаемых мной людей которые смотрят с удовольствием. Мне сейчас им сообщить что они живут как-то неправильно? :)
  • +6
    название вводит в заблуждение. Ожидал увидеть топик про просмотр видео без иксов
    • 0
      тогда статья началась и закончилась на строчке:

      mplayer -vo caca Dexter.s03e04.rus.LostFilm.TV.avi
      • 0
        ничего подобного. Есть еще фреймбуферная консоль со своими заморочками
    • 0
      -vo vesa позволяет это
      • 0
        я использовал fbdev
      • 0
        не знал что vt100 илиTek4014 умеет vesa
  • +6
    Жениться вам пора, барин (с)
  • +1
    Заверните исходный код в <source />.
  • 0
    Всегда подозревал линуксоидов… оказывается не зря :)
    • 0
      вы не поверите… писал в свое время то же самое под win.
      Да я использую MPlayer под виндос уже лет 8, и всю семью подсадил, включая родителей.
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    вот гораздо более общий скрипт с подобным функционалом — www.opennet.ru/base/sys/mplayer_pos_save.txt.html
    Он не заточен только под сериалы.
  • 0
    Ого, как все просто! Спасибо большое!
  • +1
    Перемудрил что-то.

    В конфиге mplayer можно добавить следующее:
    ass=yes
    slang=en,eng,ru,rus
    utf8=1
    subcp=utf8

    А корявых перекодируем find /path/to/files -name '*.ass' -exec enconv -L ru -x utf8 < '{}' > '{}' \;
  • 0
    subcp=«enca:ru:cp1251»
  • 0
    Можно ещё хардкорнее.

    telnet:towel.blinkenlights.nl
  • 0
    >Как я в сериалы в консоли смотрю
    После прочтения так и захотелось сказать — раком-)
    Я думал, такие подвиды извращений уже в прошлом, ан нет. Но по-любому Вам плюс.
  • +1
    топик конечно любопытный, но после этого у людей, не знакомых с линуксом создается впечатление об ужасной, могучей и сложной командной строке
    • 0
      ну так надо эволюционировать. GUI это как каменный век, во все нужно тыкать пальцем и мычать что бы поняли что делать. CLI уже как минимум бронзовый т.к. полноценный язык уже придумали и не надо во все тыкать пальцем.
  • 0
    Видимо, глазки красные на столько поломал, что даже заголовок не смог нормально написать: «Как я в сериалы в консоли смотрю».
  • 0
    А вы знаете толк в извращениях!
  • 0
    Консоль, конечно, мать родная, но зачем же такие извращения?
    1. Если ты любишь смотреть одновременно несколько сериалов, тогда открой несколько консолей (например, в guake). Они тебе и будут запоминать серии, которые ты уже смотрел.
    2. Вся прелесть консольного плеера в том, что у него нет управления, запоминания и т. д. «Включил и смотри», как говорится.
    3. Собственно, что тебе мешает смотреть весь сериал, как $ mplayer *?
    4. Для сабов используй алиас mplayer -subcp cp1251 или же iconv для перекодирования в utf-8.
  • –2
    … У него был настолько маленький член, что дрочить ему приходилось сразу двумя руками: в одной он держал лупу, в другой — пинцет…
  • 0
    MPlayer — это круто однозначно. Я в баше не силен, но на мой неискушенный взгляд — как-то все сложно. Пробовал типа того под XP на .BAT соорудить. Но я хотел что-бы он еще и позицию в фильме запоминал. Вы об этом не задумывались?
    MPlayer позволяет запускать с оффсетом. И при воспроизведении он отчитывается сколько процентов. Но на BAT быстро у меня не поöучилось, а на баше вроде даже готовый скрипт есть.
    • 0
      Ничто не мешает на винду привесить хоть перл, хоть пхп, хоть пайтон, хоть до кучи цигвин. У меня всё стоит.

      Понятия не имею как можно обходиться без awk/sed/grep.
  • 0
    это про вас
  • 0
    нет ну я понимаю писать скрипты например для автоматической перекодировки *.flac -> (bchunk -> tracks*.flac с сохранением всех тегов из cue. Это действительно полезная штука. А вот так вот извращаться с простым и мощным mplayer… уффффф.

    smplayer напроч заставил меня даже не думать о подобном. Реально крутанская обёртка.
    • 0
      нет ну я понимаю писать скрипты например для автоматической перекодировки *.flac -> (bchunk -> tracks*.flac с сохранением всех тегов из cue.

      Так давно же есть cue2tracks, зачем велосипедить?
      Что такого умеет smplayer для сериалов? Если «запустить из гуёвого браузера», то mplayer тоже с этим справляется. А опции всё-таки излишни.
      • 0
        Скажем, в той же gentoo этого ебилда по дефолту нет. И этот cue2tracks как раз и является тем самым «полезным» скриптом о котором я говорил)
        • 0
          хотя стоковый он не фурычит.
  • 0
    Я, наверное, что-то упустил в постановке задачи, но что мешает в консоли использовать mc? И запускать mplayer нажатием Enter на файле с фильмом? А параметры mplayer прошить в его конфиге либо своей обёртке ~/bin/mplayer. Лично меня mc в качестве «менеджера плейлистов для mplayer» полностью удовлетворяет.
  • 0
    месье знает толк в извращениях.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.