Нужно организовать потоковое (streaming) вещание на сайте. Сайт - VDS на данный момент, но думаю потянет несколько десятков клиентов онлайн. В любом случае, вопрос сейчас не в этом. Нужны ваши советы по следующим вопросам: а) Как перекодировать видео в формате avi в flv? У меня ОС Ubuntu, следовательно можно попробовать через консоль вызвать: Код (Text): elkaz@elkaz-desktop:/var/www/trash$ ffmpeg -i sg1.avi sg1.flv FFmpeg version SVN-r19352-4:0.5+svn20090706-2ubuntu2, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --extra-version=4:0.5+svn20090706-2ubuntu2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --extra-cflags=-I/build/buildd/ffmpeg-0.5+svn20090706/debian/include --enable-shared --disable-static libavutil 49.15. 0 / 49.15. 0 libavcodec 52.20. 0 / 52.20. 0 libavformat 52.31. 0 / 52.31. 0 libavdevice 52. 1. 0 / 52. 1. 0 libavfilter 0. 4. 0 / 0. 4. 0 libswscale 0. 7. 1 / 0. 7. 1 libpostproc 51. 2. 0 / 51. 2. 0 built on Oct 13 2009 22:15:16, gcc: 4.4.1 Input #0, avi, from 'sg1.avi': Duration: 01:32:58.76, start: 0.000000, bitrate: 954 kb/s Stream #0.0: Video: msmpeg4, yuv420p, 640x360, 25 tbr, 25 tbn, 25 tbc Stream #0.1: Audio: mp3, 48000 Hz, mono, s16, 96 kb/s File 'sg1.flv' already exists. Overwrite ? [y/N] y Output #0, flv, to 'sg1.flv': Stream #0.0: Video: flv, yuv420p, 640x360, q=2-31, 200 kb/s, 90k tbn, 25 tbc Stream #0.1: Audio: adpcm_swf, 48000 Hz, mono, s16, 64 kb/s Stream mapping: Stream #0.0 -> #0.0 Stream #0.1 -> #0.1 [adpcm_swf @ 0x850f410]Sample rate must be 11025, 22050 or 44100 Error while opening codec for output stream #0.1 - maybe incorrect parameters such as bit_rate, rate, width or height Гугление по сабжу проблему решить не помогло. б) Второй вопрос собственно по самому player'у и способу отдачи ролика через РНР. Я помню где-то год назад поднималась тема по этому вопросу, но что-то я не смог найти. Плюс думаю, что за год многое могло поменяться. В данный момент я просто зашёл на сайт, где есть один из подобных плееров, посмотрел информацию о нём (название), вбил в гугл и скачал собственно сам плеер. Но может кто-нибудь посоветует другой?
Недавно начал изучать Flash.Насколько я понял все эти плееры просто оболочка для родного компонента отображения видео.
Первый вопрос отпадает - Олег помог. Alost, ну да, я оболочку и ищу Вопросы решены, спасибо Олегу Тема закрыта
Теперь встал такой вопрос - нужно каким-то образом учитывать количество просмотренных видео (т.е вести счёт, было просмотрено видео или нет). На сайте плеера я не нашёл никакой информации, о возможности подобного расширения функционала. Следовательно, надо решать как-то по другому. Единственное решение, которое я вижу - в div, внутри которого находится видео установить onclick событие, которое будет звать php файл. Хотя есть ещё вариант, который бы вызвал этот файл где-то на середине фильма (т.е при помощи setInterval/setTimeout функций).
Elkaz Вижу несколько вариантов.Первый это контролировать отдачу файлов, кому сколько раз ушли они. Второй это допилить исходник плеера, дописать функции анализатора просмотра.
Alost Ты имеешь ввиду через access.log контролировать? Второй вариант совсем не айс, потому что я не знаю, где надыбать его исходники Silicium Есть такой добрый человек - Горбунов Олег Все вопросы к нему
я пробовал. исключительно в познавательных целях. после изрядной доли пивка. прикольно... гыгыгы... Када файл 1.4Г буагага...
440Hz - гм раздавал файлы по 700 метров - проблем больших не увидел ... раздавал-то по кусочкам .. зачем сразу вес жрать ? но к сабжу это не относится .. все таки пхп не для того ...
этот неплохой вариант, если точность измерения не сильно строгая.... Только вот насчет апдейста в середине фильна - это фигня. Как понять количество "простомтров"? Если я смотрю и перемотнул 2 секунды, 5 мин, пол часа - это я посмотрел или не посмотрел? А если я открыл страницу и увидел один кадр - кадр предпросмотра: это я посмотрел или нет? Так что тут может даже и не в клике то дело....
Elkaz Flash это интерпретатор,и в swf файлах лежит исходный код.Достается легко с использованием "декомпиляторов". По поводу access.log Если радачей файлов апач занят, то его логи контролировать. если ngix, то его можно настроить на логирование запросов на файл. Лично я склоняюсь к контролю со стороны плеера.Запрос файла не значит что его посмотрели, это значит что нажали клавишу play.
Volt(220) Не айс Simpliest Нет, погляжу, спасибо. А там есть, то что мне нужно, или просто дал ссылку на посмотреть? Костян Я вот тоже не знаю, как с этим быть. По сути конец файла - это когда закончилось видео. Но могут найтись особо умные, которые не будут просматривать титры и просто будут переходить к следующему видео. А мне критично знать сколько видео просмотрел конкретный пользователь.
пользователь получил 70% контента = посмотрел. тогда возможно и есть резон причом необязательно что бы это делал именно пхп. можно сделать маленькое CGI чиста для отдачи.
Т.е. я включил его и пошел в туалет и мне зачтется просмотр? Я же не знаю что тебе нужно. По ссылке настраиваемый флеш-плейер. Причем на сайте говорят что есть АПИ для работы с яваскриптом. Но сам я с видео вообще не работал.
Elkaz Если интересна статистика то, изучать надо что пользователь видел. К примеру на стороне клиента, в плеере бьем timeline на N ко-лво частей,и логируем во сколько по времени текущий кадр попал очередной "кусок".Если за 2 секунды по всем прошелся, значит пробежались по быстрому и все.Если время перехода совпадает с длительностью "кусков" то все ок. и так далее по этому принципу. Киньте ссылку на ваш плеер, поковыряю его на предмет добавления такого функционала. Вот кстати на сайте что дал Simpliest ветка форума о логировании действий пользователя http://flowplayer.org/forum/3/13127 Также там есть плагин для логирования в ГуглАНалитикс.
я думаю, если кто-то нажал Play и поток пошел и пофиг что потом случилось значит посмотрел и всё тут...
Костян Не правильно,я включаю, смотрю первые 10-15 сек, мотаю в середину, смотрю если не УГ, то смотрю сначала, иначе закрываю. Еще бывает отматываю ролик к концу, чтоб сразу ввелся список других роликов. Смотря ролики в ленте новостей, я их по мере пролистования врубаю и ставлю на паузу, чтоб начали скачиваться.Потом повторяютсья дествия описаные ранее.
Simpliest Все относительно. В топике три варианта анализа просмотра.Если статистика нужна не для галочки,то выбирать стоит тот вариант в котором наименьшее кол-во ложных результатов. 1.Есть обращение к файлу.значит ролик посмотрели. 2.Скачали N процентов ролика,значит ролик посмотрели. 3.Ползунок текущего кадра прошел через N процентов абстрактных частей ролика(или проще общее время воспроизведения ролика). Так вот, ваш поход в туалет создает ошибку в результата любого из вариантов. Мое поведение даст ошибку в 1м и 2м методе. Случайный клик на плеер даст ошибку в 1м методе. Составив несколько моделей поведения пользователей, можно проверить какой из методов меньше врет.