Показаны сообщения с ярлыком slideshow. Показать все сообщения
Показаны сообщения с ярлыком slideshow. Показать все сообщения

среда, 18 марта 2009 г.

Выбор случайных файлов фотографий для слайдшоу

В моей коллекции фотографий общее количество перевалило за 6000 шт. Мне лень выбирать лучшие и стирать неудачные. Я копирую фотки на NAS. При таком количестве, посмотреть их большая проблема. Я придумал такой выход: пусть при прослушивании интернет радиостанций HDX 1000 показывает мне слайдшоу со случайными фотографиями. И память освежится и разнообразненько. Здесь я буду коментировать создание такого механизма. Файл слайдшоу, используемый в HDX 1000 (nmt), имеет следующий формат:
Timeout|Reserved|Photo 1|URL_photo_1|
, где
  • Timeout - время показа фотографии
  • Reserved - зарезервировано. В некоторых мануалах этот параметр устанавливает номер transition
  • Photo 1 - название фотографии (нигде не показывается)
  • URL_photo_1 - адрес фотографии в URL формате
Последняя вводная. У меня сетевые диски в HDX 1000 монтируются в каталог /mnt. Фотографии находятся в каталоге /mnt/nas2d0/myPhoto/ Идея:
  • cron генерит каждый день 50 плейлистов по 100 фото в каждой из всего списка фотографий. Эти плейлисты прописаны в html странице с радиостанциями;
  • общий список фотографий обновляется каждую неделю (или месяц).
Просто и со вкусом.
  1. Сделаем символическую ссылку на каталог с фотографиями: > cd /opt/sybhttpd/localhost.drives/HARD_DISK/Photo > ln -s /mnt/nas2d0/myPhoto
  2. Имена фотографий присваиваются обычно фотоаппаратом или еще какой белибердой. В моей коллекции названия некоторых фото имеют неверную кодировку. Исправим это. Создадим скрипт для автоматического переименования фотографий.
    #!/bin/bash
    #
    ######################################################################
    #
    #  Переименование файлов фотографий
    #
    # имя файла будет таким 0xxx.jpg
    
    echo
    
    Count=1
    
    #  Изменение расширения файла с верхнего на нижний рестр
    for file in *.JPG
    do
      mv "$file" "${file%.JPG}.jpg"
    done
    
    for file in *.AVI
    do
      mv "$file" "${file%.AVI}.avi"
    done
    
    # переименовываем jpg файлы
    for file in *.jpg
    do
      if [ $Count -lt 10 ]; then
         Zero="000"
      else
        if [ $Count -lt 100 ]; then
          Zero="00"
        else
          Zero="0"
        fi
      fi
    
      OutS=$Zero$(printf "%d" $Count)
      printf "%s 0d %s\n" "$file" $Count $OutS
      Count=$[$Count+1]
      mv "$file" $OutS".jpg"
      
    done
    
    # делаем тоже самое для avi файлов 
    for file in *.avi
    do
      if [ $Count -lt 10 ]; then
         Zero="000"
      else
        if [ $Count -lt 100 ]; then
          Zero="00"
        else
          Zero="0"
        fi
      fi
    
      OutS=$Zero$(printf "%d" $Count)
      printf "%s 0d %s\n" "$file" $Count $OutS
      Count=$[$Count+1]
      mv "$file" $OutS".avi"
      
    done
    Скрипт нужно разместить в каталог ... и сделать исполняемым. Пользоваться им просто. Нужно перейти в каталог, где имена файлов имеют неверную кодировку и запустить скрипт.
  3. Создадим скрипт mAllPhotoLst.sh, который будет генерить полный список фотографий.
    #!/bin/bash
    #
    ######################################################################
    #
    #  Получение списка фотографий
    # список фотографий будет распологаться в
    # /mnt/nas2d0/myPhoto/photo.lst
    
    cd /mnt/nas2d0/myPhoto
    find -name *jpg > photo.lst
  4. Создадим скрипт mPl100.sh, который будет генерить плейлисты
  5. Вставляем скрипт mPl100.sh в cron.
Вуаля!А не какая не "виола". echo $RANDOM

Некоторые замечания по html в HDX 1000 (NMT)

Некоторое время потратил на выяснение устройства и способа работы тегов в nmt.
Самая загадочная конструкция:

<a href="Song URL" pod="Mode,Reserved ,Photo URL">Sample</a>


наконец стала более понятна. Эта штука проигрывает одновременно музыкальные файлы и показывает фотографии.

Song URL - музыкальный файл или playlist
Mode - режим показа.

  • 1 - будет показывать фото и играть музыку, пока не кончатся фотографии. Музыка закольцовывается.
  • 2 - будет показывать фото и играть музыку, пока не кончится музыка. Фотографии закольцовываются.
Reserved - я не нашел, на что это влияет. ставлю в 0
Photo URL - фото или фото-playlist

Самым загадочным было для меня как проиграть файлы с самого HDX 1000. Конструкция вида

file:///opt/...../file

не работает. Файл либо не находится, либо HDX 1000 зависает. Точнее "замораживается" вывод на телевизор. Странно это. Либо у меня руки кривые, либо непонятки в реализации HDX 1000. У китайцев в текстах сплошь и рядом ссылки подобного рода. Скорее всего дело в правах, владельцах и группах, присвоенных файлу, но разбираться пока желания нет. Может позже...

Зато работает вот такая загогулина:

http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo.jsp

Пример фрагмента html кода для прослушивания музыкального канала из Корбины c одновременным показом слайдшоу:

<a href="http://85.21.79.5:8107/listen.pls"  pod="2,0,http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo.jsp"> Second ref from scy.fm</a>


и файл photo.jsp:

15|0|Dahab 3|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Pekin_052105_003.jpg|
15|0|Dahab 4|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Pekin_052105_004.jpg|
15|0|Dahab 5|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Pekin_052105_002.jpg|
15|0|Dahab 6|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Pekin_052105_001.jpg|
15|0|Dahab 7|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Photo_052105_007.jpg|
15|0|Dahab 8|http://localhost.drives:8883/HARD_DISK/Download/tstpl/photo/Photo_052105_008.jpg|


где:
  • 15 - время показа фотографии
  • 0 - зарезервировано
  • Dahab 4 - Название фотографии (ни на что не влияет)
  • http://.... - url фотографии