[Решено] Видеохостинг на Drupal 7

Главные вкладки

Аватар пользователя Megacybergluk Megacybergluk 7 января 2017 в 23:30

Посоветуйте пожалуйста инструкцию, как сделать полноценный видеохостинг на Drupal 7.

Если точнее, то как сделать плеер с плейлистом, вставкой субтитров, изменением качества (предварительная конвертация видео на своем сервере и сохранение его в разном качестве), пресетами и прочими уже привычными вещами. Я два года назад, когда только начинал изучать друпал находил такой гайд, вроде бы на JWPlayer, но тогда мне это показалось слишком сложным и не нужным (теперь не могу найти, я гуглил), поэтому я сделал простой, а теперь я хочу сделать свой сайт с онлайн мультсериалами без такого огромного количества рекламы как на адультмульте и на своем сервере.
Я уже делал такой сайт, но перенос прошел неудачно, а файлы бэкапа оказались глючными...а места на несколько бэкапов не было.

В общем помогите пожалуйста с плеером на мульт сайте, очень хочется все сделать качественно, чтобы потом не переделывать.

Комментарии

Аватар пользователя Megacybergluk Megacybergluk 8 января 2017 в 1:32

Да я в курсе, но JS курить не могу, я все время учился только по инструкциям, так что мои пробелы в знаниях программирования сайтов, просто огромны, скорее одна большая дыра.

Аватар пользователя Studio VIZA Studio VIZA 8 января 2017 в 0:12
1

Megacybergluk wrote:

очень хочется

Я вернулся со своим сайтом, теперь он на 80% круче.
продвинул свой сайт во всех поисковиках и сейчас имею около 2000 уников в день, благодаря рекламе окупаю хостинг и даже немного зарабатываю.

Аватар пользователя Megacybergluk Megacybergluk 8 января 2017 в 1:42

Ну это другой проект, и сейчас уже 12 тысяч в день, и он стал еще лучше, но я в этой теме его не затрагиваю, так как хочу создать новый сайт на другую тематику, поэтому и спросил совета. Вот если что домен уже давно есть коль не верите http://multbaron.ru там первая версия сайта и была.
Если все же интересна та тема, то домен поменял по понятным причинам, теперь он оканчивается на com или org.

Аватар пользователя Megacybergluk Megacybergluk 8 января 2017 в 13:45

Нет, как то грубо называть рисованное порно так. Эта тематика сейчас очень развита и пользуется спросом на западе, а у нас она только начала развиваться и пользоваться спросом, а смотрят ее взрослые люди.
Просто онлайн мультфильмы.

Аватар пользователя bsyomov bsyomov 8 января 2017 в 19:42

Эту задачу стандартными средствами Druapal и контрибом вы нормально не решите.
Я писал полноценный конвертер сервер сайд, это довольно сложное приложение само по себе.
Кроме того, желательно иметь ещё и стриммер, умеющий HLS или MPEG-DASH, а не просто раздавать файлы по http.

По плееру - flowplayer очень не плох.

Аватар пользователя gun_dose gun_dose 8 января 2017 в 16:40
1

Никогда не понимал, почему у людей есть бабло на сервак с километром терабайт и тысячей ядер, а 200-300 баксов на помощь спеца выложить жаба душит.

Аватар пользователя Megacybergluk Megacybergluk 8 января 2017 в 17:20

Ну сайт покрывает расходы на сервер и только. Все остальное делаю я, в начале доплачивал вообще из своего кармана.
А вообще если поможешь с настройкой всего то можем договориться и об оплате. Я согласен заплатить за помощь, так что пишите.

Аватар пользователя bsyomov bsyomov 8 января 2017 в 19:49

На самом деле, не нужно много ядер - видео, в большинстве случаев не надо конвертить в процессе раздачи.
Нужны диски большой ёмкости, в рейде, чтобы быстро раздавать большие объёмы, побольше памяти на кеш ФС и полоса хотя бы в гигабит. Это сейчас не так и дорого. 4 приличных SATA диска в Raid 10 могут насытить в полку гигабитный канал, кстати.
Дальше всё это масштабируется увеличением кол-ва серверов раздачи.

А выложить денежку автору топика придётся - такой проект просто не реализовать на энтузиазме и советах. Я несколько таких делал - это довольно дорого и технически сложно.

Аватар пользователя dgastudio dgastudio 8 января 2017 в 17:34

1. выделенный сервер, а желательно 2. один под сайт, второй под конвертацию видео
2. fmmpeg, настройка
3. друпал. модуль https://www.drupal.org/project/video, его соответствующая настройка.
4. настройка rtmp

и много много много нюансов, которые просто не уместятся ни в туториал, ни в помощь зала.

Аватар пользователя Megacybergluk Megacybergluk 8 января 2017 в 17:55

Я это все уже делаю, на данный момент у меня друпал пишет The PHP-FFMpeg library is not installed хотя она точно установлена на сервер.
Не знаете в чем может быть проблема?

Аватар пользователя multpix multpix 8 января 2017 в 18:32

С таким подходом - только два пути:

  1. Честно учить матчасть и самому вникать в свою деятельность, задавать конкретные вопросы предоставляя информацию о стеке и логи ошибок в объеме достаточном для моделирования проблемной ситуации.
  2. Обращаться к экстрасенсам, гадателям и предсказателям на соответствующий площадках.
Аватар пользователя bsyomov bsyomov 8 января 2017 в 19:53

1. + Настройка хранилища нормальная, что мало кто толком умеет.
3. Не сделать на этом ничего толкового. Это так в бложек пару видео вставить, если на ютубе забанили. Для серьёзного продакшена его надо полностью переписать.
4. Может быть, но HLS, возможно, будет лучшим решением.

С последним согласен - это реально сложная тематика.

Аватар пользователя Grayw0lf Grayw0lf 8 января 2017 в 18:44

Megacybergluk wrote:

Ясно, но есть еще и третий путь.

3. Кто нибудь может это сделать за меня за деньги? (это вопрос в теме)


делайте свое предложение, вероятно откликнутся.

Аватар пользователя Megacybergluk Megacybergluk 8 января 2017 в 18:56

Я не знаю сколько это стоит, а денег лишних нет, ну скажем 2к за всю настройку, хотя по сути я все уже сделал почти, осталось только как то заставить работать ffmpeg.
Пойдет?

Аватар пользователя Studio VIZA Studio VIZA 8 января 2017 в 20:29

Сейчас цена за проект средней сложности, минимум $500
Возможно вам проще разбить на задачи.
Составляйте ТЗ на задачу, выкатывайте заявку на поиск разработчика. Вам объяснят среднюю цену на этот объём работы. Дальше дело личного обаяния и опыта.

Дабы не повторять прошлых ошибок, попытки сделать бэкап и установить сайт на локальном компьютере, нужно предпринимать в начале проекта, а не когда он уже не-подконтролен и не-управляем.
Оптимизировать таблицы, базу, чистить проекту пёрышки, танцевать вокруг него еженедельно. А не только бабки лупить, грубо говоря.

Аватар пользователя Megacybergluk Megacybergluk 9 января 2017 в 2:25

Дорого как то только за установку плеера. Если бы я только бабки лупил я был бы тааак счастлив, ну а пока я больше вложил чем получил.
Мне приходится учить все подряд: проектирование, дизайн, SEO, контент итд. Я выучил минимум для создания и поддержания сайта сам, просто читая гайды в интернете, но я много чего не знаю, например в серверную часть и базы я вообще не лез.

Что то я отошел от темы, что означает не подконтролен и не управляем, это как?

Аватар пользователя bsyomov bsyomov 9 января 2017 в 21:36

Вы по незнанию недооцениваете объём работ. Вам надо не поставить плеер, а сделать систему конвертации и трансляции видео. Собственно, вставить тем или иным образом плеер на сайте, это очень мелкая задача, и менее 1% реально необходимой работы по этому проекту.

Аватар пользователя Studio VIZA Studio VIZA 9 января 2017 в 2:48

Megacybergluk wrote:

что означает не подконтролен и не управляем, это как?

Megacybergluk wrote:

но перенос прошел неудачно, а файлы бэкапа оказались глючными...

Аватар пользователя Megacybergluk Megacybergluk 9 января 2017 в 13:06

Если честно сайт похож на один большой блок рекламы, я из него бы сразу ушел)
Я понимаю, я уже как то нанимал специалиста, влез в долги и ничем хорошим это не закончилось. Если точнее то сео специалиста, программиста и копирайтеров, для продвижения сайта, в итоге 95к, а результат почти нулевой, плюс самому пришлось много работать.
В таком случае уж лучше я сам все буду изучать, вот только что и где?

Аватар пользователя Megacybergluk Megacybergluk 9 января 2017 в 13:11

Хотя нет, мне в принципе достаточно установить ffmpeg (Друпал пишет что он не установлен) а дальше сам разберусь я думаю.
Вот сколько это будет стоить?

Аватар пользователя Megacybergluk Megacybergluk 9 января 2017 в 14:55

Тот был на втором месте в рейтинге, а на счет той классической шутки про поиск в гугле - не смешно так как он установлен и сервер это подтверждает, и вообще этим сисадмин занимался. Вот только друпал его не видит, а помощи в гугле я не нашел как и на этом форуме.

Аватар пользователя Studio VIZA Studio VIZA 9 января 2017 в 13:33

Там работы ровно на 15 минут хорошему специалисту, пацаны реально 2тр делите на 15 минут, получается 120 долларов в час. Вы чо заелись штоле.

Аватар пользователя Megacybergluk Megacybergluk 9 января 2017 в 14:57

Я понимаю что это уже троллинг, но я не говорил чтобы все сделали за 2к, я сказал что цену не знаю, и предложил то как сам примерно считаю, присылайте свои ценники и тогда уже обсудим.

Аватар пользователя Megacybergluk Megacybergluk 9 января 2017 в 19:48

Все мы справились, осталось дело только за настройкой, а вы все говорите что учиться надо)
Самообучение вот сила!!! Ну и сисадмин тоже.

Аватар пользователя Megacybergluk Megacybergluk 9 января 2017 в 21:50

Это еще не конец) Я все настроил, при загрузке видео создаются его пресеты, но при попытке конвертации самого видео выдается, ошибка, помогите пожалуйста разобраться. Вот ошибка из журнала друпала:

FFmpeg failed to transcode spooky_scary_borks.mp4.
Reported errors

PHPVideoToolkit error: Execute error. Output for file "/var/www/multbaron/sites/default/files/videos/original/spooky_scary_borks.mp4" was not found. Please check server write permissions and/or available codecs compiled with FFmpeg. You can check the encode decode availability by inspecting the output array from PHPVideoToolkit::getFFmpegInfo().

Executed commands and output

/usr/bin/ffmpeg -i '/var/www/multbaron/sites/default/files/videos/original/spooky_scary_borks.mp4' -vf 'scale=640:360' -strict experimental -vcodec 'h264' -vpre 'libx264-hq' -qscale '19' -acodec 'aac' -ac '2' -ar '44100' -pass '1' -passlogfile '/tmp/1483987567-5873da6fef5b0-multipass' -y /tmp/1483987567-5873da6fef522.mp4

ffmpeg version 2.6.9 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample --disable-htmlpages --disable-podpages --enable-libutvideo --enable-libfdk-aac --enable-libx265 --enable-libiec61883 --enable-vaapi --enable-libdc1394 --disable-altivec --shlibdir=/usr/lib/x86_64-linux-gnu
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/multbaron/sites/default/files/videos/original/spooky_scary_borks.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2016-11-02 08:41:36
Duration: 00:00:30.05, start: 0.000000, bitrate: 1317 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 1187 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc (default)
Metadata:
creation_time : 2016-11-02 08:41:36
handler_name : ISO Media file produced by Google Inc.
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
Metadata:
creation_time : 2016-11-02 08:41:36
handler_name : ISO Media file produced by Google Inc.
File for preset 'libx264-hq' not found

/usr/bin/ffmpeg -i '/var/www/multbaron/sites/default/files/videos/original/spooky_scary_borks.mp4' -vf 'scale=640:360' -strict experimental -vcodec 'h264' -vpre 'libx264-hq' -qscale '19' -acodec 'aac' -ac '2' -ar '44100' -pass '2' -passlogfile '/tmp/1483987567-5873da6fef5b0-multipass' -y /tmp/1483987567-5873da6fef522.mp4

ffmpeg version 2.6.9 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample --disable-htmlpages --disable-podpages --enable-libutvideo --enable-libfdk-aac --enable-libx265 --enable-libiec61883 --enable-vaapi --enable-libdc1394 --disable-altivec --shlibdir=/usr/lib/x86_64-linux-gnu
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/multbaron/sites/default/files/videos/original/spooky_scary_borks.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2016-11-02 08:41:36
Duration: 00:00:30.05, start: 0.000000, bitrate: 1317 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 1187 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc (default)
Metadata:
creation_time : 2016-11-02 08:41:36
handler_name : ISO Media file produced by Google Inc.
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
Metadata:
creation_time : 2016-11-02 08:41:36
handler_name : ISO Media file produced by Google Inc.
File for preset 'libx264-hq' not found

Аватар пользователя vladpolotsk vladpolotsk 4 июля 2017 в 23:24

Читаю и думаю, неужели все здесь собравшиеся уже сразу были профессионалами? Если вы почитаете основы создания drupal - максимально дружественное сообщество. Ответ уважаемому - если не хотите заморачиваться, используйте модуль https://www.drupal.org/project/jw_player, библиотеку после регистрации можно взять https://www.jwplayer.com/ (разместить в папке sites/all/\libraries). Единственное ограничение - сайт должен работать в интернет, а не intranet (в этом случае jwplayer брать не старше 7.3.6). Если нужны подробности, зайдите на youtube - там есть много видеоинструкций. Удачи в освоении!

Аватар пользователя bsyomov bsyomov 5 июля 2017 в 12:23

Почитайте внимательно задачу: предложенное вами решение, не покрывает и 10% оной. Да и вообще не уместно для её решения.

Аватар пользователя vladpolotsk vladpolotsk 5 июля 2017 в 20:38

Нет, ну частично сделает (судя по первому комментарию), хотя согласен, хочется много и сложно - аналог youtube сделать непросто.

Аватар пользователя bsyomov bsyomov 6 июля 2017 в 10:34

Я уже выше писал, но тут повторюсь. Для такого проекта выбор видео плеера, это не то что не основная задача, это мелочь. Video.js вполне можно использовать, но остальная работа, которую нужно сделать, по масштабу сравнима с написанием такого video.js, а не выбором плеера.
Если реально хотите помочь автору топика, попробуйте найти готовый и работоспособный сервер сайд, для такого проекта, который при этом, не будет стоить как чугунный мост - вот тогда да, вы решите его проблемы. Smile

Аватар пользователя mozh mozh 6 июля 2017 в 11:34

знаю один проект, для показа фильмов используют video.js на одном из сайтов и все там прекрасно работает, пилят они библиотеку по минимуму. по посещаемости не скажу, но фильмов там много и вытягивает все на ура

Аватар пользователя bsyomov bsyomov 6 июля 2017 в 15:11

http://videojs.com/ - Вот это? Это только фронтэнд, т.е. фреймворк для создания html 5 плеера.
Он не заливает, не конвертирует, не хранит, не стримит видео.
Только показывает готовый поток, и возможно, умеет вставлять рекламу, выбирать при поддержке на строне сервера скорость потока, и прочие чисто интерфейсные фишки реализует. Плееров разной степени продвинутости 100500 и полностью готовых есть.

По посещаемости, количеству фильмов и.т.п. вообще всё равно какой плеер - он работает у клиента в браузере, и отношения к серверу не имеет вообще никакого...

Аватар пользователя gun_dose gun_dose 6 июля 2017 в 15:27

Вот-вот! На ютуб любой видос залей и он сконвертится в понятный браузеру формат, да ещё и в несколько разрешений. А это серверные мощности нужны такие, что без спонсоров это вряд ли кто поятнет.

Аватар пользователя bsyomov bsyomov 6 июля 2017 в 16:03

Это тоже не решает задачу, кстати. Для бложека какого-нибудь пару видео вставить сокнвертировав на ютубе, а ещё лучше даже с него и вставить - да. А для сайта, где видео основной контент, это, конечно, не вариант.

Вообще с конвертацией всё не так плохо, как раз. Конвертация выполняется по очереди, и не так много на это ресурсов и надо, обычно - редко где добавляются видео 24/7 и по многу. Ну и она очень легко масштабируется горизонтально, если это нужно и видео много.

Но вот нормального решения, которое объединяет:

  • Конвертер (или ферму конвертеров, ещё лучше, в облаке запускающихся по запросу).
  • Хранение/Стриминг сервер(ы) (тут только железные серверы, на не дорогих толстых каналах - в облаках трафик очень дорог, и очень дорого место на на копителях)
  • Систему, которая всём этим рулит, и интегрируется с CMS, или даже является её частью

просто не существует в готовом виде. Это всё пишется и интегрируется под конкретные условия и конкретные проекты. И это большая, и сложная задача.

Аватар пользователя bsyomov bsyomov 6 июля 2017 в 19:00

Это один из кусков, работоспособный, и даже не плохой. Но, обычно, куда выгоднее, в итоге, использовать простаивающие процессоры на серверах хранения/раздачи.

Можно как из кубиков собрать всё решение, хранить в облаке, стримить из специализированного CDN, конвертить в zencoder, но всё равно надо будет разработать промежуточный слой, который всё это свяжет воедино и с CMS.
Это будет дешевле, конечно, в разработке, но в перспективе, это будет просто золотое решение, если будет хоть какой-то трафик. И заодно, это будет очень жёсткий vendor lock.