Работоспособность этой опции зависит от сервера, на котором лежит видео. Он должен поддерживать выдачу потока с заданного ключевого кадра (на это способны nginx, lighttpd, red 5 и т.д.) Если сервер это поддерживает, то в ответ на запрос video.flv?start=X начнется загрузка c заданного кадра. В редакторе стилей можно указать, какие данные будут отправляться на сервер (если это байты, то ролик должен содержать информацию о ключевых кадрах в метаданных).
Есть решение Xmoov (нужен только PHP).
Переменную для запроса можно также указать в стилях (по умолчанию start).
| uppod | Ссылка на пост (Смотрели 16067) | 17.01.09 02:00 Ответить |
MMS майкрософтовский протокол и скорее всего использует свой кодек, который Adobe Flash не поддерживает
при этом другими плеерами перематывается нормально. с flv файлами все ок. может подскажите куда копать и/или гляните на файл? спасибо
С flv работает, а с МР4 не хотит. Плеер даже не пытается передать запрос с переменной start,
и сразу же выдает ошибку о кадрах (
Подскажите плиз, какой модуль нужен для nginx (стандартный для flv нормально отдает файл с заданного байта, но плеер говорит, что ключевых кадров нет, а на другом сервере, откуда этот файл, все нормально перематывается)
но эта информация не проверена
В контейнере mp4 нужно, чтобы индекс кадров был записан в начале, а не в конце файла, как происходит при пользовании многими средствами создания mp4-видео. Чтобы исправить это (так называемый moov-atom), нужно воспользоваться бесплатными утилитами mp4box (консольная) и Yamb (gui к ней). Там такой режим записи mp4 уже включен по умолчанию.
Я имею ввиду, поддерживает ли это плеер, на PHP я реализацию и сам написать могу.
Справедливости ради надо заметить, что и Quicktime этим похвастаться в настольных версиях плееров не может, но в iphone это (то есть проигрывание mp4-файла с любого сервера) уже реализовано и прекрасно работает.
\"Атомные\" подробности
Потом с помощью Range все таки не обязательным будет использование скриптов. Что даёт возможность перематывать видео хоть хостинга на народе.
Файл у меня уже в кеше (Squid). Запускаю на проигрывание. И тут же перематываю на нужный кусок. Squid не успевает отдать до того места а поскольку получил ссылку другого вида думает что это другой файл и грузит его заново с хостинга.
Апач Range поддерживает он прописаны в RFC2616 поэтому скрипты для этого не нужны.
if(String(_root.start_seek)==\"undefined\")
{
_root.start_seek=0;
}//end if
//Создаем объект NetConnection:
var netConn:NetConnection = new NetConnection();
// Активируем соединение, которое позволит проигрывать FLV файлы с HTTP и локальных адресов:
netConn.connect(null);
// Создаем объект NetStream (ради него мы создали объект NetConnection и открыли соединение):
var netStreamX:NetStream = new NetStream(netConn);
// Привязываем объект NetStream к нашему видео объекту:
my_video.attachVideo(netStreamX);
// Устанавливаем вместимость буфера - сколько секунд видео загрузится до того, как оно запустится на экране:
netStreamX.setBufferTime(5);
// Загружаем и проигрываем внешний FLV файл:
var file_path=_root.file_name+\"?start=\"+_root.start_seek;
trace(file_path);
netStreamX.play(file_path);
//_________________________________________________________
Код html:
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=WINDOWS-1251\" />
<title>my_html</title>
<style type=\"text/css\">
</style>
<script type=\"text/javascript\" src=\"swfobject.js\"></script>
</head>
<body bgcolor=\"#c0c0c0\" >
<div id=\"flashcontent1\" style=\"position:relative;width:100%;height:600\">
</div>
<script type=\"text/javascript\">
var so = new SWFObject(\"flash/psevdo_1.swf\", \"movie\", \"100%\", \"100%\", \"9\", \"#ffffff\");//Мой плеер)))
so.addParam(\"allowFullScreen\", \"true\");
so.addVariable(\"start_seek\", \"1\");//Стартовый параметр
so.addVariable(\'autostart\',\'true\');//Тоже откуда-то возможно нужно
so.addVariable(\"file_name\", \"http://flowplayer.org/video/Extremists.flv\");//Беру с http://flowplayer.org
so.addVariable(\"streamscript\", \"lighttpd\");//Это я вычитал с форумов всяких
so.write(\"flashcontent1\");
</script>
</body>
</html>
Так вот когда я отсылаю с параметром start_seek=0 — все окейно работает. В моем плеере переменная start_seek прибавляется к переменной file_name и получается запрос типа « и видео грузится по этому пути. Как я понял — главное что запрос идет на сервак lighttpd, а flowplayer.org должно быть именно то что нужно. и как я понял нужно передавать в GET-е переменную start. Но работает тока с start=0. Не знаю — вроде капаю в нужном направлении, но файл отказывается грузиться если start не равно 0. Мысли есть7
В строке so.addVariable(\"streamscript\", \"lighttpd\"); я передаю переменную как ее должен обработать плеер? Может в этом дело, что я никак эту переменную не обрабатываю во флеше? Спасибо за ответы.
про оплачивал только из-за него.. что не так… с сервака с которого грузится видео этот самый стриминг есть!…в их плеере всё рабоатет на ура, что я сделал не так…? помогите….
данные хз какие… отправляет через двоеточие типа так :58690842 (походу байты)
Server: nginx/0.6.28 выдала программа HTTP Analyzer Stand-Alone Edition v5.0 (надеюсь Вы этот сервер имели ввиду)
Насчёт того что динамическая ссылка можете мне не писать эту проблему побороли))
теперь вопрос как сделать перемотку… помогите… я плохо разбираюсь в эти стримингах и прочей лабуде… =(
когда плеер НЕ проигрывает! видео тогда отправка запроса на сервер происходит нормально
когда идёт просмотр видео и двигаеш/переставляеш ползунок на отрезок ещё не загруженный ничего не отправляет, и следовательно не перематывает!!
для того чтобы перемотать приходится осталнавливать видео и тыкать в нужное место.
Как бороться ???
Ссылка для проверки : __
Плеер последней версии 0.50
Косяк исправился принудительной передачей размера видео файла.
ибо у меня все с дефолтными настройками работает и мотаеться и вперед и назад.
не понимаем в чем проблема, объясните пожалуйста.
собственно, ради стриминга и покупалась у Вас лицензия.
Если у вас стоит lighttpd, то отправлять нужно время, а не байты.
Наш плейер играет как положено стриминг работает. Может кто подскажет, что нужно, чтоб с xmoove uppod работал?
У меня почему то не работает псевдостримминг. Что я только не делал. передачу данных менял на секунды, милисекунды, байты, пременные старт, и позитион, но ВСЕГДА когда выбираю позицию выдео, показывает что играет с нужного времени, но все равно видео идет с нуля
вот сайт:
Я в растераности, я спецом купил ПРО, вроде работает, а как писал выше, показывает что играет с нужного отрезка времени, НО сначала.
Я буду очень рад если Вы мне поможете.
Там америкосы, как стримминг правильно пишется? что конкретно мне нужно узнать?
перевод легко можно сделать в гугле
Мы используем Apache2 как наш веб-сервер. К сожалению, он не поддерживает указанием ключевых кадров для Flash. Если ваша заявка обойти или вариант для Apache это может делать то, что вы хотели бы, чтобы Однако я не считаю, что это действительно так. Мы приносим извинения за причиненные неудобства. Если у Вас возникли дополнительные вопросы, пожалуйста, дайте нам знать.
это означает что невозможно использовать эту функцию?
Операционная система: CentOS 5.3
Я использую Lighttpd и mod_h264 последней версии под Win2003.
Конвертирую видео 512(видео)+96(аудио)= 608 kbit.
В Lighttpd ограничу поток на подключение до 1024 kbit. По идее хватает с запасом. Закачка почти в 2 раза опережает просмотр.
Так от, видео , любого размера, в форматах flv (FL1 & VP6) перематываются без проблем, быстро, почти мгновенно, а от видео H.264 / AAC очень медленно. Маленькие фалы длительностью около 10 мин перематываются где-то за 12 сек, а большие (около 100 минут) стартуют ~15 секунд и перематываются в перед 57 сек а назад 1525 сек. Если ограничения в Lighttpd поставить около 56 мегабит то перемотка работает быстрее. Так и должно быть?
модуль на сервер с Apache:
пока нашел 2 решения
1) модуль
2) переброс из Mp4 контейнера в flv контейнер (не путайте кодеки, т.е кодек остается H264, но контейнер flv)
ffmpeg -i inputvideo.mp4 -vcodec copy -acodec copy outputvideo.flv
если есть какие-то менее извращенные способы подскажите плз
Seems stream 0 codec frame rate differs from container frame rate: 47.95 (5000000/104271) -> 24.00 (24/1)
Input #0, flv, from \test4.flv\:
Duration: 00:43:17.46, start: 0.000000, bitrate: 566 kb/s
Stream #0.0: Video: h264, yuv420p, 624x352 [PAR 1:1 DAR 39:22], 502 kb/s, 24 tbr, 1k tbn, 47.95 tbc
Stream #0.1: Audio: mp3, 44100 Hz, stereo, s16, 64 kb/s
купил uppod про ради стриминга прежде, протестил на трёх других плеерах перемотка работает отлично
сегодня поставил pro на вашем плеере перемотка неработает :( (верней нажимаю на нужное место оно типа как перемотало и грузиться грузиться грузиться но непоказывает) помогите разобраться пожалуйсто
сервер Lighttpd страничка с видео ниже uppod(а) другие плееры на которых можно увидеть что перемотка работает
подскажите готовый сервер.
Подскажите, а как можно воспроизводить видео в определённое время?
То-есть например чтоб трёх-часовое видео воспроизводилось с 7 утра, а в 10 воспроизводилось уже другое видео и все кто будет заходить на страничку, смотрели видео не с самого начала а исходя из текущего времени.
Заранее спасибо!
P.S. Сразу приношу извинение за нубский вопрос))
поставил nginx-0.7.61 , поставил модуль flv и МР4
МР4 перематывает без проблем а flv при перемотке показывает с начала .
Это не вина плеера потому что гет запросом делает тоже самое .
Вот
wget tes2t.flv хттп://домаин/test.mp4?start=1000
mp4 качает с середины а flv всегда с начала .
Пожалуйста стукните в аську кто нить для решения проблемы. 619851842