длительность видеоклипа/фильма

Тема в разделе "WASM.ZEN", создана пользователем cresta, 3 июл 2007.

  1. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Как получить длительность видеоклипа/фильма (avi, mpeg, wmv и т.д.)

    Или как рассчитать на основе имеющихся параметров (fps, bpp, filesize)

    P.S.
    желательно способы, которые можно использовать под unix.
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Это не наводит на мысли?
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    IceStudent

    Там вроде только avi.
    Я тут нашёл, что движок mplayer выводит информацию в режиме -slave.
    Осталось только разобраться, куда он её всё-таки выводит :)
     
  4. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    сложность в том, что avi/mpeg это всего лишь контейнер, в котором что-то лежит. по спецификации avi не поддерживает переменный fps, mpeg - поддерживает, но в действительности есть куча avi с переменным fps (правда, не на всех плеерах они играются).

    индексы в контейнерах могут как быть, так и отсутствовать. или быть, но не соответствовать истине. mplayer в этом смысле не самый лучший выбор. очень часто он ошибается с длинной, причем в сторону ее занижения. т.е. он считает, что доиграл до конца, а фильм все равно продолжается ;) или просто не отображает длину видео и все. типа будем играть сколько сможем ;) пока я не нашел другого способа, чем проиграть видео в /dev/nul (условно) с максимальной скорость. только времени это займет. из всех видимых и опробованных мной программ точнее всего определяет длину файла AVIdemux. он opensource - может, есть смысл "распотрошить" его?
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    kaspersky

    Я тоже заметил некорректное определение длины. Но это на фильмах, которые некорректно склеены из нескольких кусков. Все подобные фильмы при просмотре с отображением в osd инфы о длительности и текущей позиции показывают, что фильм склеен. Т.е. выводимая в osd общая длительность например один час, а текущая позиция в течение фильма четыре раза проходит интервал от 0 до 15 мин. Отсюда все неприятности.
    Но это не только mplayer так ведет себя. Xine тоже буксует на клееных фильмах.
    А mplayer я использую потому, что он воспроизводит wmv3, которые xine не поддерживает со своим дефолтным набором кодеков.