← Форум / Инструменты / Псевдостриминг 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 файле прописываем следующую строку:
сохраняем, запускаем. У вас получится файл с расширением FLV и с качеством MP4
Затем нужно добавить метаданные. Запускаем программу FLVMDI GUI. В Input FLV file указываем путь до файла который у нас получился, а в Output FLV file — путь и новое название нашего файла с метаданными. В Options не забываем поставить галочку Include ’keyframes’ object. Жмем кнопочку Run FLVMDI и ждем до появления таблички с надписью Completed.
Закачиваем наш файл на сервер и уже стандартно применяем решение xmoov. Инструкция здесь ссылка
при изменении контейнера размер файла в 310 Мб вырос на 2 Мб, а при добавлении метданных на несколько килобайт. Я думаю это все-таки меньше чем размер оригинального FLV, который при аналогичном качестве занимал бы в два, а то и в три раза больше.
у меня такая проблема всё делал по инструкции при псевдостриминге переходит на нужный ключ, но не работает правильно кэш ( полоса загрузки, %ты не шелевлятся) как только псевдостриминг отключаю сразу и полоса и проценты работают правильно, но перейти к незагруженному контенту невозможно. кто-нить знает как с этим бороться? уж очень понравился h264
Напишите, пожалуйста, команду FLVMDI, которую можно запустить в bat-файле и она сделает тоже, самое автоматически, заранее прописав названия исходного и конечного файлов, ну и про Include ’keyframes’ object чтобы помнила. :)
Здесь сказано что нужна поддержка PHP, скажите, а если сайт на ucoz, но есть другой сервер с поддержкой php который я могу использовать, то смогу ли я на юкозе выводить плеер с такой перемоткой или не реально?
Может я что не так делаю….было бы логично :)
При запуске плеера, он определяет и время и если нажать на скачать идет в хроме видео. Но в плеере мертвяк, ни играет ни с начала ни с середины.
Есть такой бесплатный чудо конвертор, со скромным названием SUPER ссылка
В нём можно выбрать кодек H.264 для конвертирования в контейнер FLV, кодек для звука правда уже нельзя выбрать MP3… При этом все нужные данные пакуются в контейнер и перемотка работае нормально. У меня в выходном файле в 300 Мб добавляются те же 2 Мб что и у ТС.
Ну а теперь скажу что я думаю об MP4. Кодек H.264 это ЗЛО, забудьте о нём, если у вас откручивается видео с сервера. Если хотите чтоб ваш сервер застрелился поставте модуль стреминга H.264! Из за дибильной системы пересчета кадров головки дисков вынуждены елозить по диску, даже при небольшом количестве подключений на сервере 100% загрузка дисковой подсистемы!
Во вторых качество видео при одинаковых низких (300400 Кбит) битрейтак с кодеком H.263 просто не в какое сравнение не идёт! Дикая зернистость картинки, неприличный муар и постоянное скачки на уменьшение цветовой гаммы… К тому же размер выходного файла у кодека H.263 на треть меньше…
Единственно в чём проигрывает Н.263 это в скорости кодирования, по отношению к кодеку H.264, времени на кодирование тратится раза в три больше.
Уважаемый, sda-narva.info, зачем вам два моих ролика? Гораздо проще закодировать один ролик конвертором SUPER с одинаковыми парметрами по битрейту и раскадировке, но разными кодеками и вы сами всё увидите довольно наглядно.
Закодировал в mp4 h.264 ролик весом 624 МБ, а вышел весом в 427 МБ. И это с битрейтом 480 кбпс, против 25000 кбпс у оригинала. Может я чего-то не так поставил, но там особо богатых настроек то и нет. В h.263+ у меня вообще отказался кодировать ошибка DirectShow. Тем более я кодирую только квантованием, и о битрейтах в моих роликах не знаю. Вобщем, не очень хорошие впечатления на первый взгляд. Мне нравится (да и всем) когда поставил конвертер, настроил и он работает без всяких дополнительных плагинов и ошибок.
Не очень поняла о чем ты говоришь…
Вообщем я кодирую конвертором SUPER со следующими параматрами:
Video: Flash Video, размер кадра 320х176 битрейт 336 Кбит, FPS 14,985
Audio: mp3, 48 Кбит, 22050 Герц, моно
Качество выходного файла можно посмотреть на моём сайтике ссылка
Посмотрите пока на эту картинку. Здесь x264 пока рулит. Я еще не кодировал фильм, но сегодня сделаю. Может вы окажетесь правы… ссылка
размер конечных файлов естественно одинаковый, кроме оригинала
Скодировал сегодня фильм "На игре 2". Разницы практически не видно, но на динамичных сценах, квадратичная структура начинает заметно просматриваться. На картинке сравнение вашего видео и моего. ссылка
Единственное, я не знаю какая нагрузка на жесткий диск после этого. И кодируется он достаточно долго. 2 прохода по 40 минут
Окончательные тесты показали что фильм "На игре 2" можно сжать в файл размером в 150 МБ и при этом увеличить качество видео и звука в два раза. Но это, естественно, мое сугубо личное мнение.
конвертирую XviD4PSP 5.0. параметров конвертации очень много, поэтому даю пресеты ссылка В архиве две папки. Из этих папок нужно положить файлы по этому пути C:\Program Files\Winnydows\XviD4PSP5\presets\encoding\MP4 в в папки с аналогичным названием. В самом конверторе в меню-баре являются важными пункты Видео Разрешение/Аспект и Интерлейс/Частота кадров, Также важна кнопка "Настроить" под меню баром там настраивается звук. С пресетами можете экспериментировать на свой вкус может у вас лучше получится, но не забывайте что для корректного проигрывания в плеере uppod параметр B-frames mode в видео пресете, который находится во вкладке B-frames, должен стоять Spatial.
И на последок видео для сравнения ссылка
Да я и не пробовала :(((
XviD4PSP у меня не работает под Вистой, одни глюки…
А на сервере у меня райд 10 уровня из 4 терабайтных дисков, он flv то не успевает выдавать, приходится кешировать весь вывод в RAM ( к серверу подключен выделенный гигабитный канал), а если я ещё поставлю модуль стреминга под H264 это окончательно прибьёт дисковую систему. При стреминге начнуть елозить все головки на всех дисках одновременно!
Хотя можно попробовать поставить два отдельных SATA диска, зазеркалировать их и уже с них откручивать mp4, чтоб не дергать весь райд массив.
Здравствуйте!! у меня проблема: сделал все как описано выше, но плеер пишет, что файл не найден (ссылка написана верно), хотя с дропбокса все нормально работает. Это в хостинге дело? пример ссылка ссылка
Все очень доступно написано. Ссылки рабочие. Все остальные люди разобрались. Если вы не можете, попросите того кто может, в ином случае ничем помочь не могу.
подскажите пожалуйста прогу для для добавления метаданных которая может работать с кучей файлов сразу, а то flvmdi ,больше 40 за раз обработать не может и просто зависает
они конечно работают, но через cmd). подскажите пожалуйста как быть с файлами которые в имени имеют пробелы? flvmdi через gui может их обрабатывать, а как сделать тоже самое через cmd?
вся разница, что во второй вариант добавлен файл через xmoov и включена опция стриминга в стиле (байт)
Вот это то самое? Там /k как раз значит Include ’keyframes’ object ?
При запуске плеера, он определяет и время и если нажать на скачать идет в хроме видео. Но в плеере мертвяк, ни играет ни с начала ни с середины.
В нём можно выбрать кодек H.264 для конвертирования в контейнер FLV, кодек для звука правда уже нельзя выбрать MP3… При этом все нужные данные пакуются в контейнер и перемотка работае нормально. У меня в выходном файле в 300 Мб добавляются те же 2 Мб что и у ТС.
Ну а теперь скажу что я думаю об MP4. Кодек H.264 это ЗЛО, забудьте о нём, если у вас откручивается видео с сервера. Если хотите чтоб ваш сервер застрелился поставте модуль стреминга H.264! Из за дибильной системы пересчета кадров головки дисков вынуждены елозить по диску, даже при небольшом количестве подключений на сервере 100% загрузка дисковой подсистемы!
Во вторых качество видео при одинаковых низких (300400 Кбит) битрейтак с кодеком H.263 просто не в какое сравнение не идёт! Дикая зернистость картинки, неприличный муар и постоянное скачки на уменьшение цветовой гаммы… К тому же размер выходного файла у кодека H.263 на треть меньше…
Единственно в чём проигрывает Н.263 это в скорости кодирования, по отношению к кодеку H.264, времени на кодирование тратится раза в три больше.
Вообщем я кодирую конвертором SUPER со следующими параматрами:
Video: Flash Video, размер кадра 320х176 битрейт 336 Кбит, FPS 14,985
Audio: mp3, 48 Кбит, 22050 Герц, моно
Качество выходного файла можно посмотреть на моём сайтике
размер конечных файлов естественно одинаковый, кроме оригинала
Единственное, я не знаю какая нагрузка на жесткий диск после этого. И кодируется он достаточно долго. 2 прохода по 40 минут
И на последок видео для сравнения
XviD4PSP у меня не работает под Вистой, одни глюки…
А на сервере у меня райд 10 уровня из 4 терабайтных дисков, он flv то не успевает выдавать, приходится кешировать весь вывод в RAM ( к серверу подключен выделенный гигабитный канал), а если я ещё поставлю модуль стреминга под H264 это окончательно прибьёт дисковую систему. При стреминге начнуть елозить все головки на всех дисках одновременно!
Хотя можно попробовать поставить два отдельных SATA диска, зазеркалировать их и уже с них откручивать mp4, чтоб не дергать весь райд массив.
Раньше такого не наблюдалось..
Это возможно? Или только с flv так можно
после этого выставите в редакторе стилей, в настройках стриминга плеера, он должен оправлять секунды