[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработка пользовательких видео
PandoraBox2007
Необходимо было добавить фичу для загрузки пользовательских видео-роликов. Собственно, какие могут быть пользовательские видео? Очень разного качества и разнообразных форматов. Начиная от обычных flash файлов, которые представляют наименьшую проблему, до различных записей с телефонов. Встала задача — сделать демона, который бы занимался обработкой очереди загруженных файлов и выполнял следующие функции:
  • Конвертирование видео в flash формат (FLV), ипользуя VP6 кодек
  • Обновление метаинформации видеофайла
  • Создание thumbnails из видео
  • Дальнейшии манипуляции с БД
Конкретно в этой статье я рассмотрю варианты обработки уже сконвертированного в формат flash видео-ролика. Итак приступим.

1. Обработка метаинформации
    После того как мы получили заветный flash ролик, надо обновить его метаинформацию, а конкретно ключевые позиции. Это необходимо для поддежки режима просмотра — streaming. Т.е «прыгать» по длине видео без загрузки всего файла. Софт который этим занимается обычно именуют Metadata Injector. Для линукса я пробовал:FlvTool2 — приложение, написанное на Ruby. Сначала я остановился на нем. Но как показали испытания он не подходит для обработки больших файлов, т.к загружает файл в память, что есть не гуд. Некоторые файлы ( > 200 mb) обрабатывались по 5 минут. Есть свои плюсы — результат пишется в исходный файл. Так же позволяет «обрезать» файлы, что бывает очень нужным.

    Yamdi — приложение, написанное на C. Оригинальное название Yet Another Meta Data Injector. Работает очень шутро. Результат его работы представляет собой новый файл, что наиболее удобно, т.к исходник сразу можно удалить или перенести на длительное хранение. Так же позволяет вставлять ивент onLastSecond

    Вместо flvtool2 можно использовать flvtool++
    http://mirror.facebook.com/facebook/flvtool++/


    Оба приложения могут генерить XML файл с перечнем всех параметров, что дальше ипользуется при обновлении информации видео в БД.
    Свой выбор я остановил на Yamdi, как наиболее быстром.
2. Создание thumbnails3. На заметку
    Первое время мы использовали JWPlayer 4 (без модификации) то столкнулись с проблемой. На серверах работал nginx 0.6.32, который, как выяснилось, не работал с этим плеером. Проблема заключалась в том, что новая версия плеера добавляля в строку запроса файла прочую информацию, вроде этой:

    myvideo.flv?start=2659763&width=280&client=FLASH%20MAC%209,0,124,0&version=4.0%20$Rev:%2030%20

    Решилось все очень просто, патчем для веб-сервера (текстовый файл патчинга): www.ruby-forum.com/attachment/2307/patch.flv
FLV Player source (информацию для запуска видео берет с XML страниц): http://www.longtailvideo.com/players/jw-flv-player/

Взято тут: http://habrahabr.ru/blogs/open_source/45289/
и дополнено.



Спустя 2 месяца, 3 дня, 18 часов, 52 минуты, 29 секунд (9.06.2009 - 13:33) Сергей написал(а):
Спасибо за Yamdi ))

Спустя 7 месяцев, 22 дня, 6 часов, 42 минуты, 6 секунд (31.01.2010 - 21:15) ИНСИ написал(а):
PandoraBox2007 супер статья!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.