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

lordBlack

Мой дом здесь!
Регистрация
29 Ноя 2007
Сообщения
623
Реакции
267
ервер 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
тут решение описывается, с отсылкой на модуль который уже есть, Для просмотра ссылки Войди или Зарегистрируйся
но как конфиг настроить, чтоб не 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 файлы - пишет мол нету ничего.
 
Последнее редактирование модератором:
наличие root /var/www/data/www/domen.com/; сдается не верным (согласно доке Для просмотра ссылки Войди или Зарегистрируйся).
Удалите эту строку, и пробуйте. Если не поможет, попробуйте вместо ~ \.mp4$ указать путь к файлам видео, например /video_files/ (относительно корня сайта)

следите за логами ошибок nginx (возможно надо увеличить mp4_max_buffer_size )
и какая связка nginx? с php+apache или php-fpm?
 
наличие root /var/www/data/www/domen.com/; сдается не верным (согласно доке Для просмотра ссылки Войди или Зарегистрируйся).
Удалите эту строку, и пробуйте. Если не поможет, попробуйте вместо ~ \.mp4$ указать путь к файлам видео, например /video_files/ (относительно корня сайта)

следите за логами ошибок nginx (возможно надо увеличить mp4_max_buffer_size )
и какая связка nginx? с php+apache или php-fpm?
прописал так:
location /var/www/www/domen.com/media/ {
mp4;
mp4_buffer_size 1m;
mp4_max_buffer_size 5m;
}

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


связка nginx php+apache
 
указать путь к файлам видео, например /video_files/ (относительно корня сайта) location /media/ {...
ошибки в логах nginx есть? размер видеофайла (возьми для теста по размеру что указано для mp4_max_buffer_size )?

есть подозрение, что отдает апач, а не nginx
 
может изза портов? есть способ проверить?

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

есть подозрение, что отдает апач, а не nginx
пример строки такой, 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: "Для просмотра ссылки Войди или Зарегистрируйся"

ппц, он пытается файл из папки 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;
 
Последнее редактирование модератором:
порты причем?
проверить кем забирается можно в акцес логе (либо nginx у апача забирает файл - соответственно в акцес логе обоих будет видно, либо только nginx - тогда только в его акцес логе будет виден запрос)

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

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

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

Вообщем беда.
никак не могу реализовать перемотку видеофайлов 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 файл на другом сервере (дебиан) работает все. и перемотка и т.п.
на данном - не хочет.
где еще копать, ума не приложу просто.
ну не хочет перемотка работать и все тут.

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

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

есть подозрение, что отдает апач, а не nginx
спс большое, помог разобраться
 
Последнее редактирование модератором:
Назад
Сверху