ФорумПрограммированиеПыхнуть хотите?F.A.Q. → Видеосервис своими руками и организация псевдостримминга

Видеосервис своими руками и организация псевдостримминга

  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 21 января 2010 г. 2:53, спустя 178 дней 20 часов 56 минут

    Сегодня я расскажу как работают «видеохостинги» и мы разработаем свой «видеосервис» для закачивания видео-файлов, с последующим конвертирование и созданием картинки для превью. Далее организуем показ во флеш-плеере и эмулируем стримминг (для перемотки на не загруженные части видео-файла).

    Для всего этого нам понадобиться:

       * Флеш-плеер для проигрывания видео-файлов — flowplayer
       * Программа для конвертирования видео-файлов — ffmpeg
       * Расширение PHP для получения превью-изображения — php-ffmpeg и библиотека для работы с графикой — GD
       * Эмуляция потокового видео (псевдостримминг) с помощью утилиты yamdi, модуля для nginxhttp_flv_module и плагина для flowplayerflowplayer.pseudostreamming



    Полная статья http://pyha.ru/articles/php/videoservice-handmade/
    Оригинал http://adw0rd.ru/2009/videoservice-handmade/
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 18:14, спустя 14 часов 21 минуту

    adw0rd, я такие вещи делал когда ты еще в армии был :))
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 18:14, спустя 20 секунд

    phpdude, в 2005?
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 18:18, спустя 4 минуты 5 секунд


    phpdude, в 2005?
    2004
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 18:18, спустя 33 секунды

    phpdude, расскажи вкратце что тогда было и на чем ты это все делал?
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 18:25, спустя 7 минут


    phpdude, расскажи вкратце что тогда было и на чем ты это все делал?
    тогда из инструментов. закачка с прогрессбаром - был костыль на перле, который стоит если не совру баксов 200.

    хуевый прогрессбар(некрасив и тп). хуевый яваскрипт, потому что не было стандартов де факто типа jquery, prototype и тп. писали как в книжках :( никаких тебе setTimeuout(function ()

    чистый eval + дохуя функций на каждую операцию.

    ffmpeg тоже юзался, с кодеками были пиздец проблемы, они тупо не компилились, или права и тп нарушения
    была если не совру flvtool для фикса тайминговых разметок флв файла. там ffmpeg както неправильно флв делает, или не до конца. другими словами нельзя "мотать" потому что метаданных не хватало или тп.

    юзался апач и php скрипт, который делал псевдостреминг. про реврайт рулы несколько человек всего слышало))

    были нечто вида

    stream.php?file=video/10.flv и когда промотка, то $url + "&start=10" - типа 10 секунд или тп.

    ну и пхп скрипт который нетчо подобное

    readfile(..) в первом случае, а во втором echo substr file_get_contents … чтобы кусок начиная с н секунды.

    отавалось все апачем. про нгинкс в те времена я даже и не слышал, но помню что кажется уже был lighthttpd, но мы его по каким то причинам не юзали.

    столкнулся я с этим заданием когда "клонировали" тамошнее bebo.com :)

    ну и я еще был адский быдлокодре, не умел юзать гугль, да и релевантность у гугля в те времена оставляла эелать лучшего, а искать яндексом статьи по программированию - моветон, ибо он только русск знал сайты, а тогда еще усск литературы совсем не было))
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 18:29, спустя 3 минуты 32 секунды

    ffmpeg тоже юзался, с кодеками были пиздец проблемы, они тупо не компилились, или права и тп нарушения
    была если не совру flvtool для фикса тайминговых разметок флв файла. там ffmpeg както неправильно флв делает, или не до конца. другими словами нельзя "мотать" потому что метаданных не хватало или тп.

    я для этого юзаю yamdi, он быстрее flvtool

    юзался апач и php скрипт, который делал псевдостреминг. про реврайт рулы несколько человек всего слышало))

    были нечто вида

    stream.php?file=video/10.flv и когда промотка, то $url + "&start=10" - типа 10 секунд или тп.

    ну и пхп скрипт который нетчо подобное

    readfile(..) в первом случае, а во втором echo substr file_get_contents … чтобы кусок начиная с н секунды.

    наподобие
    $start = (int) @$_GET['position'];
    if ($start < 0) die("You fucking idiot");
    // open file for reading
    $fp = fopen($file, 'r+');
    $fsize = filesize($file);
    if ($start > 0)
    {
       // seek to requested position
       fseek($fp, $start);
       // FLV header for the movie part. Magic. Just trust me.
       // Header code is completely taken from flv4php project
       $header = "FLV" . pack('C', 1 ) . pack('C', 5 ) . pack('N', 9 ) . pack('N', 9 );
       header("Content-Length: " . (strlen($header) + $fsize - $start));
       echo $header;
    } else {
       header("Content-Length: " . $fsize);
    }
    set_time_limit(0);
    while(!feof($fp)) {
       print(fread($fp, 1024));
       usleep(1000);// limit download speed
    }
    fclose($fp);
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 18:33, спустя 3 минуты 32 секунды

    http://hell.helldude.ru/archives/607

    я для этого юзаю yamdi, он быстрее flvtool
    я хз была ли эта утилита в те времена))) тогда я нагуглил флвтул и был счастлив :))

    наподобие

    да нечто такое.

    помню в виде плеера юзали http://www.longtailvideo.com/players/jw-flv-player/

    flow player всяких небыло или стоили по 400+ баксов. а жв было бесплтаное решение :)

    так приходилось его код хакать, потому что там были регулярки на проверку юрлов файлов типа *.mp3 *.flv а у нас получалось, что были *.php )))
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 18:39, спустя 6 минут 41 секунду

    так приходилось его код хакать, потому что там были регулярки на проверку юрлов файлов типа *.mp3 *.flv а у нас получалось, что были *.php )))


    а
    AddType application/x-httpd-php .mp3 .flv

    юзать религия не позволяла?)
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 18:43, спустя 3 минуты 35 секунд


    так приходилось его код хакать, потому что там были регулярки на проверку юрлов файлов типа *.mp3 *.flv а у нас получалось, что были *.php )))


    а
    AddType application/x-httpd-php .mp3 .flv

    юзать религия не позволяла?)
    1. я был быдлокодер с идеями и мозгом, поэтому поднялся, но в те времена апача конфигурации боялся так сказать. работал по принципу "пхп работает как сейчас" и пусть "работает, лучше не лезть", ибо мало что понимал. сейчас я берусь даже ддосы ебать и перекомпиливать ядра, пакеты и тп. настраивать то, что надо. в те времена я такое не делал. у меня опыто то было полгода =))

    2. просто в интренете на то время так никто не делал, не было тенденции

    3. сейчас бы мне не позволила религия. отдавать каждый файл как пхп скрипт :)
    Сапожник без сапог
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 18:44, спустя 45 секунд

    rediska [bearman] (07:38:52 3/06/2009)
    мне надо делать доделать 1с, пока народ на работу не пришли

    rediska [bearman] (07:39:03 3/06/2009)
    ушел писать

    DangerousMic (07:39:13 3/06/2009)
    ого да ты теперь 1с программист

    DangerousMic (07:39:23 3/06/2009)
    помню как ты любил это дело

    DangerousMic (07:39:26 3/06/2009)


    rediska [bearman] (07:39:30 3/06/2009)
    ))

    rediska [bearman] (07:39:33 3/06/2009)
    я всепрограммист

    rediska [bearman] (07:39:40 3/06/2009)
    просто теперь я еще и 1с знаю))

    rediska [bearman] (07:39:44 3/06/2009)
    "ебучий" 1с

    DangerousMic (07:39:51 3/06/2009)
    ява

    DangerousMic (07:39:55 3/06/2009)
    плачет по тебе

    rediska [bearman] (07:40:00 3/06/2009)
    )))))))))

    DangerousMic (07:40:05 3/06/2009)
    деньги готовим уже

    rediska [bearman] (07:40:06 3/06/2009)
    завидует, а не плачет

    rediska [bearman] (07:40:07 3/06/2009)


    DangerousMic (07:40:09 3/06/2009)
    в кол-вах

    DangerousMic (07:40:14 3/06/2009)
    )))

    DangerousMic (07:40:25 3/06/2009)
    чтобы сердце не выдержало

    DangerousMic (07:40:28 3/06/2009)
    и сдалось

    DangerousMic (07:41:51 3/06/2009)
    пиши иди 1С

    DangerousMic (07:41:56 3/06/2009)
    всепрограмисто

    rediska [bearman] (07:43:30 3/06/2009)
    )))))

    rediska [bearman] (07:43:35 3/06/2009)
    миллион намутили?


    ыыы))
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 18:44, спустя 16 секунд

    phpdude, ясно :)
    adw/0
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 22:18, спустя 3 часа 34 минуты 15 секунд

    adw0rd, все люди как люди, статьи размещают в pyha.ru/articles/
    а эдворд в своем амплуа)
    все умрут, а я изумруд
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 2 июня 2009 г. 22:47, спустя 28 минут 47 секунд

    adw0rd, вот разработку видеопортала мы тебе и заоутсорсим … ))))
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 3 июня 2009 г. 0:10, спустя 1 час 23 минуты 32 секунды

    интересная тема
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!