Автор Гілка: Слайд-шоу з частотою 25-30 кадрів на секунду  (Прочитано 5706 раз)

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +0/-0
  • Fedora, CentOS, RHEL, KDE
Доброго вечора :)
Маю потребу в програмі чи скрипті, який (яка) виводитиме зображення з частотою 25-30 кадрів на секунду.
Щоб не було жартів, щодо відеоплеєра, поясню для чого. Загалом маємо потребу у виведені дуже високоякісного зацикленого відео через проектор на стіну. Проекторів буде два, по одному на свій шмат стіни. Відеокодики трохи погіршують якість зображення, тому для збереження деталізації вирішили виводити у вигляді слайд-шоу. Тож що можете порадити? Якщо написання скрипта, то з використанням яких пакунків (орієнтуватися на Fedora).
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
mplayer mf://path/to/dir/file*.png

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +0/-0
  • Fedora, CentOS, RHEL, KDE
mplayer mf://path/to/dir/file*.png
а не підкажете, мануал про mplayer українською чи москальською, бо мені треба мати можливість зупиняти плеєр (зупиняти, запускати, щоб задавати яке слайд-шоу відтворювати) та вказувати на який дисплей (тобто проектор) виводити.
« Змінено: 2013-03-24 22:41:17 від HetmanNet »
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Ні, але у нього вельми інформативна (але дуже довга і англійською) man-сторінка. Пауза - пробіл.
fps для mf задається за допомогою -mf fps=30. Дисплей здається можна вказати -display :x.x, але я з ним не грався.

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +0/-0
  • Fedora, CentOS, RHEL, KDE
Ні, але у нього вельми інформативна (але дуже довга і англійською) man-сторінка. Пауза - пробіл.
fps для mf задається за допомогою -mf fps=30. Дисплей здається можна вказати -display :x.x, але я з ним не грався.
Дякую :) Зараз трохи розібрався.. поки єдине запитання, як керувати ним.. :( Мабуть доведеться щоразу вбивати процес :(
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Якщо з клавіатури, то вийти — Esc або q. Якщо програмно — то треба дивитися як працює якийсь фронт-енд, наприклад, SMPlayer. Якщо потрібно показати лише якусь частину відео — можна використовувати -ss та -endpos. Якщо треба показати декілька відео підряд — просто mplayer file1 file2 file3. Якщо потрібно переключитися на наступне відео у послідовності — >. Якщо при перемиканні відео заважає консольний вивід mplayer — можна вказати -msglevel all=-1.

P.S. Якщо вам треба показувати відео з окремих малюнків з великою швидкістю — потурбуйтеся про те, щоб mplayer міг їх швидко зчитати з диску — або покладіть їх у tmpfs, або проженіть кілька разів показ, щоб вони потрапили у файловий кеш. В обох випадках вони мають вміщатися у доступну оперативну пам’ять.
« Змінено: 2013-03-31 20:31:24 від ISBear »

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +0/-0
  • Fedora, CentOS, RHEL, KDE
Якщо з клавіатури, то вийти — Esc або q. Якщо програмно — то треба дивитися як працює якийсь фронт-енд, наприклад, SMPlayer. Якщо потрібно показати лише якусь частину відео — можна використовувати -ss та -endpos. Якщо треба показати декілька відео підряд — просто mplayer file1 file2 file3. Якщо потрібно переключитися на наступне відео у послідовності — >. Якщо при перемиканні відео заважає консольний вивід mplayer — можна вказати -msglevel all=-1.

P.S. Якщо вам треба показувати відео з окремих малюнків з великою швидкістю — потурбуйтеся про те, щоб mplayer міг їх швидко зчитати з диску — або покладіть їх у tmpfs, або проженіть кілька разів показ, щоб вони потрапили у файловий кеш. В обох випадках вони мають вміщатися у доступну оперативну пам’ять.
Думав зібрати комп'ютер з великим об'ємом оперативної пам'яті (десь 16-32 ГБ) та SSD, при запуску системи створюватиметься RAM диск, в який потім скрипт копіюватиме файли, і звідти відтворюватиме. Відео (точніше слайд-шоу) коротке, тому повинно легко вміщатися у RAM диск. Єдине питання, необхідно керувати запуском і зупинкою, та змінною слайдів, тобто щоб були для запуску/зміни слайдів для кожного слайд-шоу окреме посилання на робочій стільниці і одне посилання для зупинки чи зробити меню через діалогові вікна.
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
То я не зрозумів, ви хочете показувати відео, чи слайд-шоу? Вам потрібні 25-30 кадрів на секунду, чи ручне перемикання кадрів? Якщо останнє, може простіше скористатися feh?

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +0/-0
  • Fedora, CentOS, RHEL, KDE
То я не зрозумів, ви хочете показувати відео, чи слайд-шоу? Вам потрібні 25-30 кадрів на секунду, чи ручне перемикання кадрів? Якщо останнє, може простіше скористатися feh?
Загалом нам потрібно відтворювати циклічно слайд-шоу частотою 25-30 кадрів на секунду, що складається з 250-500 слайдів, при тому потрібна можливість заміни слайд-шоу на інше. Наприклад маємо п'ять слайд-шоу, кожне містить по 250-500 слайдів, всі сайд-шоу будемо відтворювати циклічно (точніше одне і те саме слайд-шоу циклічно) з частотою 25-30 кадрів на секунду (якоюсь однією, тобто якщо 30 - то всі 30), яке з слайд шоу відтворювати обиратиме оператор (людина, яка максимум вмітиме клацати мишкою).
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Тоді мабуть щось типу:
Код: Bash
  1. mkfifo mplayer.fifo
  2. mplayer -input file=mplayer.fifo -loop 0 mf://present1/*.png
  3. echo "command arg" > mplayer.fifo
  4.  
Тобто mplayer буде циклічно відтворювати файл, і читати команди з вказаного файлу (в цьому випадку — fifo).

Які саме команди — вибачте, підказати не зможу, зараз немає часу вивчати предмет, може якось згодом, якщо справа почекає. Список команд можна отримати за допомогою
Код: Bash
  1. mplayer -input cmdlist
  2.  

Можливо вам вдасться примусити mplayer перемикатися між файлами за допомогою "loadfile mf://present2/*.png". Що там точно є — "quit 0", за допомогою якого ви завжди можете вбити поточний mplayer. Зауважте, що якщо вам потрібно буде видати декілька команд одному mplayer, вам може знадобитися згрупувати код так, щоб усі команди йшли як один потік виводу (забув вже, чи можна кілька разів писати у одне fifo). Графічний інтерфейс до цього можна побудувати на zenity, як - не скажу, знов-таки, за браком часу. Тобто має вийти щось таке:
Код: Bash
  1. while true; do
  2.     newpresentation="$(
  3.        {
  4.            echo "presentation 1"
  5.            echo "presentation 2"
  6.            echo "presentation 3"
  7.        } | zenity --list --column "Select presentation to play next"
  8.    )"
  9.     case "$newpresentation" in
  10.         "presentation 1")
  11.             echo "loadfile mf://present1/*.png"
  12.             ;;
  13.         "presentation 2")
  14.             echo "loadfile mf://present2/*.png"
  15.             ;;
  16.         "presentation 3")
  17.             echo "loadfile mf://present3/*.png"
  18.             ;;
  19.     esac
  20. done > mplayer.fifo
  21.  

« Змінено: 2013-04-02 21:44:13 від ISBear »

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +0/-0
  • Fedora, CentOS, RHEL, KDE
Тоді мабуть щось типу:
Код: Bash
  1. mkfifo mplayer.fifo
  2. mplayer -input file=mplayer.fifo -loop 0 mf://present1/*.png
  3. echo "command arg" > mplayer.fifo
  4.  
Тобто mplayer буде циклічно відтворювати файл, і читати команди з вказаного файлу (в цьому випадку — fifo).

Які саме команди — вибачте, підказати не зможу, зараз немає часу вивчати предмет, може якось згодом, якщо справа почекає. Список команд можна отримати за допомогою
Код: Bash
  1. mplayer -input cmdlist
  2.  

Можливо вам вдасться примусити mplayer перемикатися між файлами за допомогою "loadfile mf://present2/*.png". Що там точно є — "quit 0", за допомогою якого ви завжди можете вбити поточний mplayer. Зауважте, що якщо вам потрібно буде видати декілька команд одному mplayer, вам може знадобитися згрупувати код так, щоб усі команди йшли як один потік виводу (забув вже, чи можна кілька разів писати у одне fifo). Графічний інтерфейс до цього можна побудувати на zenity, як - не скажу, знов-таки, за браком часу. Тобто має вийти щось таке:
Код: Bash
  1. while true; do
  2.     newpresentation="$(
  3.        {
  4.            echo "presentation 1"
  5.            echo "presentation 2"
  6.            echo "presentation 3"
  7.        } | zenity --list --column "Select presentation to play next"
  8.    )"
  9.     case "$newpresentation" in
  10.         "presentation 1")
  11.             echo "loadfile mf://present1/*.png"
  12.             ;;
  13.         "presentation 2")
  14.             echo "loadfile mf://present2/*.png"
  15.             ;;
  16.         "presentation 3")
  17.             echo "loadfile mf://present3/*.png"
  18.             ;;
  19.     esac
  20. done > mplayer.fifo
  21.  

Ну zenity замінити думаю на kdialog, хоча різниці немає, бо обидва вже використовував багато разів, навіть одночасно (ну обирався автоматично в залежності від оболонки). То не так суттєво, головне розібратися як керувати плеєром і при тому щоб два паралельно працюючи плеєри не заважали одне одному (бо два проектора). Поки продовжу знущатися над плеєром, щоб подивитися які команди має.
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Якщо будуть якісь суттєві відмінності від обговорених варіантів — відпишіться тут, будь ласка, самому цікаво.