#414 closed defect (invalid)
Ошибка 500 при использовании seek для файлов с mp4s stream
Reported by: | Sergey Beduev | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | nginx-module | Version: | 1.3.x |
Keywords: | mp4, seek, isma | Cc: | |
uname -a: | Linux d4436.example.net 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux | ||
nginx -V: |
nginx version: nginx/1.3.8
TLS SNI support enabled configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-pcre-jit --with-debug --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-mail --with-mail_ssl_module --with-openssl=/build/buildd/nginx-1.3.8/debian/openssl-1.0.1c --add-module=/build/buildd/nginx-1.3.8/debian/modules/nginx-auth-pam --add-module=/build/buildd/nginx-1.3.8/debian/modules/chunkin-nginx-module --add-module=/build/buildd/nginx-1.3.8/debian/modules/headers-more-nginx-module --add-module=/build/buildd/nginx-1.3.8/debian/modules/nginx-development-kit --add-module=/build/buildd/nginx-1.3.8/debian/modules/nginx-echo --add-module=/build/buildd/nginx-1.3.8/debian/modules/nginx-http-push --add-module=/build/buildd/nginx-1.3.8/debian/modules/nginx-lua --add-module=/build/buildd/nginx-1.3.8/debian/modules/nginx-upload-module --add-module=/build/buildd/nginx-1.3.8/debian/modules/nginx-upload-progress --add-module=/build/buildd/nginx-1.3.8/debian/modules/nginx-upstream-fair --add-module=/build/buildd/nginx-1.3.8/debian/modules/nginx-dav-ext-module |
Description
Для файлов содержащих mp4s strems при попытке выполнить seek, nginx возвращает ошибку 500
Добавление ISMA спецификации производится через MP4Box
MP4Box -isma -inter 0.5
Вывод ffprobe
Metadata: major_brand : mp42 minor_version : 1 compatible_brands: isommp423gp5 creation_time : 2013-09-18 20:29:15 Duration: 00:01:45.51, start: 0.000000, bitrate: 1617 kb/s Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x528 [SAR 11:15 DAR 1:1], 1553 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc Metadata: handler_name : VideoHandler Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 22050 Hz, stereo, fltp, 73 kb/s Metadata: creation_time : 2013-09-18 20:29:15 handler_name : GPAC ISO Audio Handler Stream #0:2(und): Data: none (mp4s / 0x7334706D) Metadata: creation_time : 2013-09-18 20:29:15 handler_name : GPAC MPEG-4 OD Handler Stream #0:3(und): Data: none (mp4s / 0x7334706D) Metadata: creation_time : 2013-09-18 20:29:15 handler_name : GPAC MPEG-4 Scene Description Handler
Решением может быть игнорирование обработки mp4s stream.
--- nginx-1.3.8/src/http/modules/ngx_http_mp4_module.c 2013-05-06 06:26:50.000000000 -0400 +++ nginx-1.3.8a/src/http/modules/ngx_http_mp4_module.c 2013-09-18 17:16:49.741142097 -0400 @@ -1849,6 +1849,10 @@ ngx_mp4_get_32value(stsd_atom->entries), 4, stsd_atom->media_name); + if (ngx_strncmp(stsd_atom->media_name, "mp4s", 4) == 0) { + return NGX_DECLINED; + } + trak = ngx_mp4_last_trak(mp4); atom = &trak->stsd_atom_buf;
Attachments (2)
Change History (4)
by , 11 years ago
Attachment: | mp4sbug_nginx_debug.txt added |
---|
comment:1 by , 11 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
Судя по debug log'у, файл содержит дорожки, которые короче, чем запрошенный seek. Такого nginx не поддерживает (отсюда и ошибка 500), и игнорирование дорожек по типу - совершенно точно не решение.
Note:
See TracTickets
for help on using tickets.
debug вывод nginx