Нужно реализовать стриминг видео файлов :), помогите, кто вкурсе делов :D
Заранее извиняюсь, что использую плеер не uppod, а flowplayer из-за присутствия в нем в триальной версии стриминга!
пишу по порядку:
1) nginx поставил вместе с нужными модулями в конфиге дописал:
2) далее поставил связку ffmpeg + x264, делаю временный файл, с помощью [b]yamdi[/b] добавляю метаданные (кстате в терминале, ни чего не пишет о результате работы), но чекаю файл ffmpeg и вижу что мета данные вписались, и написана прога yamdi, с которой я и добавлял их…
3) использую flowplayer с модулем псевдостриминга (пару часов повозился с плеером)..
при попытке воспроизведения flv и mp4 файлов, плеер ведет себя по разному, взависимости от формата + наличии мета данных:
обычно, если ставлю метку (перемотку) в любое место, то метка держится на этом на этом временном промежутке, но видео воспроизводится с САМОГО начала, из за этого сбивается текущее время, т.е. метка на 4:00 (к примеру, конец видео) а на самом деле это 0:01
или же бывает просто метка сбрасывается вначало и воспроизводится файл с начала..
вот мои типичные GET запросы:
[21:05:19.321] GET ссылка [HTTP/1.1 200 OK]
[21:06:03.363] GET ссылка [HTTP/1.1 206 Partial Content]
Accept-Ranges:bytes
Content-Length:15265273 причем на разных промежутках времени, размер не изменяется, следовательно mp4 и flv модули nginx не работают?
Content-Type:video/mp4
Server:nginx/1.0.11
не могу понять что делаю не так? и в какой стороне копать, пока думаю что yamdi добавляет метаданные в конец файла и из за этого косяк
кстате на некоторых диапозонах времени стримминг получается (если раз 520 потыкать на ползунок, когбуд-то нащупываются временные метки start= которые проходят нормально..
попробывал, не работает(( хотя если указывать ссылку на внешний источник то всё ок, т.е. у вас плеер рабочий))
у вас есть пример видео файла, который прошит уже мета данными?
я прошиваю через yamdi (не знаю правильно ли она это делает), но мета данные появляются в файле!
и кстате GET параметры которые приходят:
[23:06:19.643] GET ссылка [HTTP/1.1 200 OK]
[23:06:34.520] GET ссылка [HTTP/1.1 200 OK]
вот с милисекундами(start=42.180928315412174) это файлы которые прошиты с помощью yamdi
в настройках вашего плеера перебрал 3 варианта: секунды, милисекунды, байты ПРИЧЕМ!!! изменений в запросах я не увидел всегда отправлялись секунды.. вот щяс думаю мб файл стилей браузером закэшировался..
вообщем, чтобы точно проверить нужно видео прошитое мета данными)) пробное
Вас интересует MP4? Метаданные можно подсмотреть в режиме отладки ссылка
Приложите, пожалуйста, ссылку на свой плеер отсюда — Плеер: Файл > Код > Ссылка
не нашел там метаданные, те которые нужны видео ролику для стриминга..
интересует как mp4, так и flv…
не получается на своем сервере nginx запустить стриминг(( модули на сервере стоят для стриминга как FLV так и MP4
сейчас думаю, нужно найти ролик готовый, который прошит метаданными и проверить его на сервере, сможет ли его сервер по частям отдать
Разберитесь с чем-то одним сперва. Для mp4 не обязательны ключевые кадры в метаданных (стриминг по секундам), для flv они необходимы (параметр keyframes в метаданных стриминг по байтам).
многие обзоры, которые я разбирал везде пишут что даже в mp4 нужны мета данные, причем обязательно чтобы они были добавленны не в конец файла, а в начало!
в любом случае пробывал и mp4 и flv файлы с мета даными, добавленными через yamdi, всё без результатно ((
значит проблема в сервере, но на мой взгляд, там всё настроено как нужно..
попробывал сделать так:
plugins: {
lighttpd: {
url: flowplayer.pseudostreaming-3.2.7.swf,
// use ${start} as a placeholder for the target keyframe
queryString: escape(target=${start}&secretToken=1235oh8qewr5uweynkc)
}
}
заменив lighttpd на nginx вроде что то лучше стало, теперь надо поидее подстроить queryString )
буду разбиратся
у вас есть пример видео файла, который прошит уже мета данными?
я прошиваю через yamdi (не знаю правильно ли она это делает), но мета данные появляются в файле!
и кстате GET параметры которые приходят:
[23:06:19.643] GET
[23:06:34.520] GET
вот с милисекундами(start=42.180928315412174) это файлы которые прошиты с помощью yamdi
в настройках вашего плеера перебрал 3 варианта: секунды, милисекунды, байты ПРИЧЕМ!!! изменений в запросах я не увидел всегда отправлялись секунды.. вот щяс думаю мб файл стилей браузером закэшировался..
вообщем, чтобы точно проверить нужно видео прошитое мета данными)) пробное
Приложите, пожалуйста, ссылку на свой плеер отсюда — Плеер: Файл > Код > Ссылка
интересует как mp4, так и flv…
не получается на своем сервере nginx запустить стриминг(( модули на сервере стоят для стриминга как FLV так и MP4
сейчас думаю, нужно найти ролик готовый, который прошит метаданными и проверить его на сервере, сможет ли его сервер по частям отдать
в любом случае пробывал и mp4 и flv файлы с мета даными, добавленными через yamdi, всё без результатно ((
значит проблема в сервере, но на мой взгляд, там всё настроено как нужно..
mp4;
mp4_buffer_size 1m;
mp4_max_buffer_size 5m;
root /home/zeromind/www/uploads/videos/1/;
}
location ~ \.flv$ {
flv;
root /home/zeromind/www/uploads/videos/1/;
}
естественно..
так?
файл flv прошивал данные yamdi прогой..
location ~ .mp4 {
mp4;
root /home/zeromind/www/uploads/videos/1/;
}
location ~ \.mp4 {
mp4;
root /home/zeromind/www/uploads/videos/1/;
}