CentOS 6 перемотка mp4

Тема в разделе "Администрирование серверов", создана пользователем lordBlack, 11 сен 2014.

Модераторы: mefish, stooper
  1. lordBlack

    lordBlack

    Регистр.:
    29 ноя 2007
    Сообщения:
    620
    Симпатии:
    246
    ервер CentOS. Настройка nginx вопрос.

    на сервере лежат файлы видео mp4 - есть проблема - не срабатывает прокрутка.
    по идее проверяем так:

    Сайт.com/media/имяфайла.mp4?start=30 и видео отдается сразу с 30-ой секунды.

    Соответственно это не работает(
    гугл подсказывает что вопрос решается nginx
    в конфиг в блок server прописать:

    location ~ \.mp4$ {
    root /var/www/data/www/domen.com/;
    mp4;
    mp4_buffer_size 1m;
    mp4_max_buffer_size 5m;
    }

    прописываю в конфиг в блок сервер домена своего.
    перезагружаю nginx - и все...файл mp4 недоступен))) 404 )))) вообще, все файлы на сайте mp4 -недоступны))))))))))))))))))

    ребят, подскажите куда копать и что делать))))

    чтоб вопросов не было --with-http_mp4_module в системе стоит
    [root@вuseer ~]# nginx -V
    nginx version: nginx/1.5.11
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
    TLS SNI support enabled
    configure arguments: --user=nginx --group=nginx --prefix=/usr/share/nginx --sbin -path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/lo g/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-t emp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tm p/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-pa th=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid- path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --with-debug --with-h ttp_secure_link_module --with-http_random_index_module --with-http_ssl_module -- with-http_realip_module --with-http_addition_module --with-http_sub_module --wit h-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip _static_module --with-http_degradation_module --with-http_stub_status_module --w ith-http_perl_module --with-http_geoip_module --with-http_spdy_module --with-mai l --with-mail_ssl_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE =2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --with-ipv6 --with-file-aio --add-module=/builddir/build/BUILD/nginx-1.5.11/ngi nx-upstream-fair --add-module=/builddir/build/BUILD/nginx-1.5.11/nginx-upload-pr ogress-module --add-module=/builddir/build/BUILD/nginx-1.5.11/mod_zip-1.1.6 --ad d-module=/builddir/build/BUILD/nginx-1.5.11/ngx_http_auth_pam_module-1.2 --add-m odule=/builddir/build/BUILD/nginx-1.5.11/nginx-rtmp-module-master --add-module=/ builddir/build/BUILD/nginx-1.5.11/ngx_upstream_status-master

    тут решение описывается, с отсылкой на модуль который уже есть, http://nginx.org/ru/docs/http/ngx_http_mp4_module.html
    но как конфиг настроить, чтоб не 404 отдавало а обрабатывало как надо...

    прописываю:
    location ~* ^.+\.mp4$ {
    root /var/www/www/domen.com/media/;
    mp4;
    mp4_buffer_size 1m;
    mp4_max_buffer_size 5m;
    }

    /var/www/www/domen.com/media/ - папка где лежат mp4 файлы - пишет мол нету ничего.
     
    Последнее редактирование модератором: 11 сен 2014
  2. metsys

    metsys

    Регистр.:
    27 апр 2014
    Сообщения:
    477
    Симпатии:
    458
    наличие root /var/www/data/www/domen.com/; сдается не верным (согласно доке http://nginx.org/ru/docs/http/ngx_http_mp4_module.html).
    Удалите эту строку, и пробуйте. Если не поможет, попробуйте вместо ~ \.mp4$ указать путь к файлам видео, например /video_files/ (относительно корня сайта)

    следите за логами ошибок nginx (возможно надо увеличить mp4_max_buffer_size )
    и какая связка nginx? с php+apache или php-fpm?
     
  3. lordBlack

    lordBlack

    Регистр.:
    29 ноя 2007
    Сообщения:
    620
    Симпатии:
    246
    прописал так:
    location /var/www/www/domen.com/media/ {
    mp4;
    mp4_buffer_size 1m;
    mp4_max_buffer_size 5m;
    }

    теперь 404 не выдает, но и перемотка так и не заработала(


    связка nginx php+apache
     
  4. metsys

    metsys

    Регистр.:
    27 апр 2014
    Сообщения:
    477
    Симпатии:
    458
    указать путь к файлам видео, например /video_files/ (относительно корня сайта) location /media/ {...
    ошибки в логах nginx есть? размер видеофайла (возьми для теста по размеру что указано для mp4_max_buffer_size )?

    есть подозрение, что отдает апач, а не nginx
     
    lordBlack нравится это.
  5. lordBlack

    lordBlack

    Регистр.:
    29 ноя 2007
    Сообщения:
    620
    Симпатии:
    246
    может изза портов? есть способ проверить?

    пример строки такой, 46.174.80.6 -мой ip
    46.174.80.6 - - [11/Sep/2014:16:47:43 +0400] "GET /media/caa007ea63ae7fa7417151205c0982b3.mp4 HTTP/1.0" 206 1 "-" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.103 Safari/537.36"

    2014/09/11 17:36:07 [error] 21973#0: *5 openat() "/usr/share/nginx/html/media/caa007ea63ae7fa7417151205c0982b3.mp4" failed (2: No such file or directory), client: 46.174.80.6, server: домен.com, request: "GET /media/caa007ea63ae7fa7417151205c0982b3.mp4 HTTP/1.1", host: "46.165.249.104", referrer: "http://домен/v/1441"

    ппц, он пытается файл из папки ngixn подцепить /usr/share/nginx/html/media/caa007ea63ae7fa7417151205c0982b3.mp4

    есть ли смысл так прописать в локацию
    disable_symlinks if_not_owner from=$root_path;
    set $root_path /var/www/user/data/www/домен.com;
     
    Последнее редактирование модератором: 12 сен 2014
  6. metsys

    metsys

    Регистр.:
    27 апр 2014
    Сообщения:
    477
    Симпатии:
    458
    порты причем?
    проверить кем забирается можно в акцес логе (либо nginx у апача забирает файл - соответственно в акцес логе обоих будет видно, либо только nginx - тогда только в его акцес логе будет виден запрос)

    вот и можешь смотреть в логе откуда и кем он подхватывается. (у мну стандартный видеопроигрыватель тянет весь файл, а потом играет)
    m4.jpg
    по типу открываемого объекта - он статичен. могу ошибаться, но должно быть что то типа стрим. поэтому я могу предположить что отдает апач через nginx, никак не через модуль http_mp4_module
     
    Последнее редактирование модератором: 11 сен 2014
    lordBlack нравится это.
  7. lordBlack

    lordBlack

    Регистр.:
    29 ноя 2007
    Сообщения:
    620
    Симпатии:
    246
    увы, и так и так пробую, не выходит((( перемотка не работает

    парни, у меня уже ахтунг.
    решить проблему нужно не просто срочно, а ОЧЕНЬ срочно!
    я готов денег проплатить, помогите.

    Вообщем беда.
    никак не могу реализовать перемотку видеофайлов mp4
    еще раз отмечу несколько моментов.

    1. nginx -V
    Код:
    [root@usernoob ~]# nginx -V
    nginx version: nginx/1.6.1
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)
    
    куча всего, но главное что
    --with-http_mp4_module
    присутсвует.

    2. nginx.conf
    в блоке server домена:
    Код:
        set $root_path /var/www/usernoob/data/www/freedomen.com;
            location ~ \.mp4$ {
                root $root_path;
                mp4;
                mp4_buffer_size     1m;
                mp4_max_buffer_size 5m;
                access_log /var/www/httpd-logs/mp4.access.log ;
            }
    
    без этой строки set $root_path /var/www/usernoob/data/www/freedomen.com; начинают сыпаться ошибки на 404 файл - по логу он вообще в папке nginx ищет их.
    3. файл mp4 построен правильно, инфа в начале прописана (qt-faststart). на другом серваке -где дебиан -все великолепно прокручивается-перематывается

    4. C Ютуба качал заведомо исправный mp4 файл и проверял на нём. Не работает.

    5. плеер Uppod, тот же скрипт, тот же плеер, тот же mp4 файл на другом сервере (дебиан) работает все. и перемотка и т.п.
    на данном - не хочет.
    где еще копать, ума не приложу просто.
    ну не хочет перемотка работать и все тут.

    все решилось. проблема оказалась простая до невозможности

    спс большое, помог разобраться
     
    Последнее редактирование модератором: 14 сен 2014