Форум / Инструменты / Псевдостриминг MP4 без использования потоковых серверов (только PHP)
Псевдостриминг MP4 (h.264), имея на сервере только поддержку PHP? Я задался этим вопросом и полез гуглить. Плавно перешел на зарубежные форумы и там подхватил очень интересную идею — засунуть mp4 файл в контейнер FLV, который, как всем известно, приспособлен для стриминга. Вы получите полноценный файл flv с метаданными и со всеми преимуществами кодека h.264 — это высокое качество при относительно малом размере файла.

Итак, что нам нужно:
1) Поддержка PHP сервером
2) решение xmoov ссылка
3) набор библиотек FFmpeg последней ревизии ссылка
4) инжектор метаданных FLVMDI (скачайте обе программы flvmdi и flvmdigui и положите их экзешники в одну папку) ссылка

Итак берем уже кодированный в mp4 файл, который нормально проигрывается в плеере uppod и кладем в папку с FFmpeg (как пользоваться ffmpeg смотрите здесь ссылка ). В bat файле прописываем следующую строку:
ffmpeg -i имя_исходного_файла.mp4 -vcodec copy -acodec copy имя_получившегося_файла.flv

сохраняем, запускаем. У вас получится файл с расширением FLV и с качеством MP4

Затем нужно добавить метаданные. Запускаем программу FLVMDI GUI. В Input FLV file указываем путь до файла который у нас получился, а в Output FLV file — путь и новое название нашего файла с метаданными. В Options не забываем поставить галочку Include ’keyframes’ object. Жмем кнопочку Run FLVMDI и ждем до появления таблички с надписью Completed.

Закачиваем наш файл на сервер и уже стандартно применяем решение xmoov. Инструкция здесь ссылка

Вот и все.
XenWarriorСсылка на пост (Смотрели 3025)14.12.09 19:54  Ответить
Ваше имя*
 E-mail* (не публикуется)
 
Если пишете о проблеме, то приложите, пожалуйста, ссылку на свой плеер отсюда — Плеер: Файл > Код > Ссылка
Вставка кода — [code][/code] дублировать ответы на e-mail
1
www.progta.ru 15.12.09 - 05:03
При этом меняется ли размер файла? И если да, то насколько?
2
XenWarrior 15.12.09 - 06:29
при изменении контейнера размер файла в 310 Мб вырос на 2 Мб, а при добавлении метданных на несколько килобайт. Я думаю это все-таки меньше чем размер оригинального FLV, который при аналогичном качестве занимал бы в два, а то и в три раза больше.
3
www.progta.ru 15.12.09 - 14:22
Очень порадовали. Спасибо!
4
scamp 22.12.09 - 21:38
у меня такая проблема — всё делал по инструкции — при псевдостриминге переходит на нужный ключ, но не работает правильно кэш ( полоса загрузки, %ты не шелевлятся) как только псевдостриминг отключаю — сразу и полоса и проценты работают правильно, но перейти к незагруженному контенту невозможно. кто-нить знает как с этим бороться? уж очень понравился h264
5
XenWarrior 23.12.09 - 01:27
покажите пример
6
scamp 23.12.09 - 20:44
ссылка без псевды
ссылка с псевдой
вся разница, что во второй вариант добавлен файл через xmoov и включена опция стриминга в стиле (байт)
7
andrey95 06.01.10 - 19:09
Напишите, пожалуйста, команду FLVMDI, которую можно запустить в bat-файле и она сделает тоже, самое автоматически, заранее прописав названия исходного и конечного файлов, ну и про Include ’keyframes’ object чтобы помнила. :)
8
andrey95 06.01.10 - 19:21
ссылка
Вот это то самое? Там /k как раз значит Include ’keyframes’ object ?
9
XenWarrior 06.01.10 - 20:15
да, именно это
flvmdi имя_файла.flv /k
10
andrey95 07.01.10 - 03:30
Спасибо. Теперь все до одного клика по bat-нику автоматизировал :) Как удобно получается.
11
tramvay 10.03.10 - 00:26
Здесь сказано что нужна поддержка PHP, скажите, а если сайт на ucoz, но есть другой сервер с поддержкой php который я могу использовать, то смогу ли я на юкозе выводить плеер с такой перемоткой или не реально?
12
XenWarrior 10.03.10 - 10:05
я думаю, что будет работать. попробуйте
13
grimmjow 11.03.10 - 23:54
А как можно понизить битрейт выходящего видео?
14
grimmjow 13.03.10 - 03:29
Заметил то,что при использовании данного метода частота кадров вырастает в 2 раза.Чем это можно объяснить и как вернуть исходное значение?
15
sda-narva.info 13.03.10 - 13:37
странно. ничего подобного не наблюдал
16
grimmjow 13.03.10 - 16:44
Дак вот самому стало интересно =) Любое кодируемое видео,и fps вырастает ровно в 2 раза.
17
sda-narva.info 13.03.10 - 16:56
чем вы меряете fps?
18
grimmjow 13.03.10 - 16:59
В видео плеере высвечивает 47 с чем то.Причем во всех которых смотрю.
19
sda-narva.info 13.03.10 - 21:38
странно. GOM плеер показывает 25 и XviD4PSP показывает 25. Можете кинуть оригинальное видео?
20
PoiSonSonic 15.04.10 - 06:55
Может я что не так делаю….было бы логично :)
При запуске плеера, он определяет и время и если нажать на скачать — идет в хроме видео. Но в плеере мертвяк, ни играет ни с начала ни с середины.

ссылка
21
sda-narva.info 16.04.10 - 12:58
видео играет, но прокрута неправильно определяет положение, возможно метаданные корявые ссылка
22
veronica 01.05.10 - 07:00
Есть такой бесплатный чудо конвертор, со скромным названием SUPER ссылка
В нём можно выбрать кодек H.264 для конвертирования в контейнер FLV, кодек для звука правда уже нельзя выбрать MP3… При этом все нужные данные пакуются в контейнер и перемотка работае нормально. У меня в выходном файле в 300 Мб добавляются те же 2 Мб что и у ТС.
Ну а теперь скажу что я думаю об MP4. Кодек H.264 это ЗЛО, забудьте о нём, если у вас откручивается видео с сервера. Если хотите чтоб ваш сервер застрелился — поставте модуль стреминга H.264! Из за дибильной системы пересчета кадров головки дисков вынуждены елозить по диску, даже при небольшом количестве подключений на сервере 100% загрузка дисковой подсистемы!
Во вторых качество видео при одинаковых низких (300–400 Кбит) битрейтак с кодеком H.263 просто не в какое сравнение не идёт! Дикая зернистость картинки, неприличный муар и постоянное скачки на уменьшение цветовой гаммы… К тому же размер выходного файла у кодека H.263 на треть меньше…
Единственно в чём проигрывает Н.263 это в скорости кодирования, по отношению к кодеку H.264, времени на кодирование тратится раза в три больше.
23
sda-narva.info 01.05.10 - 13:57
Что-то у меня другое мнение насчет H.264. Можно два ролика для сравнения?
24
veronica 01.05.10 - 19:10
Уважаемый, sda-narva.info, зачем вам два моих ролика? Гораздо проще закодировать один ролик конвертором SUPER с одинаковыми парметрами по битрейту и раскадировке, но разными кодеками и вы сами всё увидите довольно наглядно.
25
sda-narva.info 02.05.10 - 09:16
Закодировал в mp4 h.264 ролик весом 624 МБ, а вышел весом в 427 МБ. И это с битрейтом 480 кбпс, против 25000 кбпс у оригинала. Может я чего-то не так поставил, но там особо богатых настроек то и нет. В h.263+ у меня вообще отказался кодировать — ошибка DirectShow. Тем более я кодирую только квантованием, и о битрейтах в моих роликах не знаю. Вобщем, не очень хорошие впечатления на первый взгляд. Мне нравится (да и всем) когда поставил конвертер, настроил и он работает без всяких дополнительных плагинов и ошибок.
26
veronica 02.05.10 - 10:07
Не очень поняла о чем ты говоришь…
Вообщем я кодирую конвертором SUPER со следующими параматрами:
Video: Flash Video, размер кадра 320х176 битрейт 336 Кбит, FPS 14,985
Audio: mp3, 48 Кбит, 22050 Герц, моно
Качество выходного файла можно посмотреть на моём сайтике ссылка
27
veronica 02.05.10 - 10:16
Правда далеко не все фильмы я сама кодировала, но вот например этот точно я кодировала ссылка
28
sda-narva.info 02.05.10 - 15:54
Посмотрите пока на эту картинку. Здесь x264 пока рулит. Я еще не кодировал фильм, но сегодня сделаю. Может вы окажетесь правы…


размер конечных файлов естественно одинаковый, кроме оригинала
29
sda-narva.info 02.05.10 - 20:46
Скодировал сегодня фильм "На игре 2". Разницы практически не видно, но на динамичных сценах, квадратичная структура начинает заметно просматриваться. На картинке сравнение вашего видео и моего.


Единственное, я не знаю какая нагрузка на жесткий диск после этого. И кодируется он достаточно долго. 2 прохода по 40 минут
30
sda-narva.info 02.05.10 - 22:33
Окончательные тесты показали что фильм "На игре 2" можно сжать в файл размером в 150 МБ и при этом увеличить качество видео и звука в два раза. Но это, естественно, мое сугубо личное мнение.
31
veronica 03.05.10 - 07:23
Какой программой конвертируете и какие параметры конвертации заданы?
32
XenWarrior 03.05.10 - 21:24
конвертирую XviD4PSP 5.0. параметров конвертации очень много, поэтому даю пресеты ссылка В архиве две папки. Из этих папок нужно положить файлы по этому пути C:\Program Files\Winnydows\XviD4PSP5\presets\encoding\MP4 в в папки с аналогичным названием. В самом конверторе в меню-баре являются важными пункты Видео — Разрешение/Аспект и Интерлейс/Частота кадров, Также важна кнопка "Настроить" под меню баром — там настраивается звук. С пресетами можете экспериментировать на свой вкус — может у вас лучше получится, но не забывайте что для корректного проигрывания в плеере uppod параметр B-frames mode в видео пресете, который находится во вкладке B-frames, должен стоять Spatial.
И на последок видео для сравнения ссылка
33
XenWarrior 09.05.10 - 12:09
Ну как x264 лучше? Не сильно нагружает сервер?
34
veronica 09.05.10 - 18:34
Да я и не пробовала :(((
XviD4PSP у меня не работает под Вистой, одни глюки…
А на сервере у меня райд 10 уровня из 4 терабайтных дисков, он flv то не успевает выдавать, приходится кешировать весь вывод в RAM ( к серверу подключен выделенный гигабитный канал), а если я ещё поставлю модуль стреминга под H264 это окончательно прибьёт дисковую систему. При стреминге начнуть елозить все головки на всех дисках одновременно!
Хотя можно попробовать поставить два отдельных SATA диска, зазеркалировать их и уже с них откручивать mp4, чтоб не дергать весь райд массив.
35
XenWarrior 09.05.10 - 18:59
Пробуйте=) Под семеркой ультимейт это прожка хорошо бегает.
36
darksun 10.06.10 - 08:41
Перекодировали весь материал в h.264 — теперь плеер виснет периодически при переключении на новый файл из плейлиста ((
Раньше такого не наблюдалось..
37
sda-narva.info 10.06.10 - 15:28
пример?
Оставить комментарий