Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#168 closed defect (invalid)

Problem with mp4 pseudostreaming module

Reported by: Dan Rossi Owned by: somebody
Priority: minor Milestone:
Component: nginx-module Version: 1.0.x
Keywords: Cc:
uname -a:
nginx -V: nginx version: nginx/1.0.11
built by gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
TLS SNI support enabled
configure arguments: --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_secure_link_module

Description

Hi here I was wondering if you can help me out. There is reports the mp4 module is not functioning correctly therefore on startup and after seeking it will not send metadata until after a portable of the video has started. This is noticable across many different players, other people are starting to complain about slow playback times after seeking because of this problem. Should they be manually compiling to upgrade the software ? Is it a codec issue ?

These people are running 1.0 ubuntu package it seems.

defaults below

http://code.google.com/p/flowplayer-core/issues/detail?id=524#makechanges
http://kino.atel.su/portal-atel/page/testfreez.do

ffmpeg flags

The issue reproduces with:
coder=1
flags=+loop
cmp=+chroma
partitions=+parti8x8+parti4x4+partp8x8+partb8x8
me_method=umh
subq=8
me_range=16
g=250
keyint_min=25
sc_threshold=40
i_qfactor=0.71
b_strategy=2
qcomp=0.6
qmin=10
qmax=51
qdiff=4
bf=3
refs=5
directpred=3
trellis=1
flags2=+bpyramid+mixed_refs+wpred+dct8x8+fastpskip
wpredp=2
rc_lookahead=50
bufsize=20000000
deblockalpha=0
deblockbeta=0
level=4.1

And not reproduces with:
coder=0
flags=+loop
cmp=+chroma
partitions=-parti8x8-parti4x4-partp8x8-partp4x4-partb8x8profile
me_method=hex
subq=8
me_range=16
g=250
keyint_min=25
sc_threshold=40
i_qfactor=0.71
qcomp=0.6
qmin=10
qmax=51
qdiff=4
bf=0
refs=3
directpred=1
trellis=1
flags2=+bpyramid+wpred+mixed_refs-dct8x8
level=30

Change History (5)

comment:1 by Maxim Dounin, 8 years ago

Resolution: invalid
Status: newclosed

The video in question have moov atom at the end, you have to prepare it for streaming by moving moov atom in front of mdat. You may do so e.g. with qt-faststart (or even with nginx itself by using "start=0" request argument).

comment:2 by Dan Rossi, 8 years ago

Resolution: invalid
Status: closedreopened

Hi I think you were too quick to close this, this is the file I sent them being used its used in alot of the demos and works properly normally especially in lighttpd.

http://pseudo01.hddn.com/vod/demo.flowplayervod/eye-pseudo.mp4

comment:3 by Dan Rossi, 8 years ago

What is happening in flash, it is downloading part of all of the file before it gets metadata so of course it may seem like its a moov issue , is this server manipulating any of this at all ?

comment:4 by Maxim Dounin, 8 years ago

Resolution: invalid
Status: reopenedclosed

Again: the file in question has moov atom after mdat, and as a result players can't start playing it before it's fully loaded. And nginx doesn't do any processing of the files requested without start= argument, so you have to use qt-faststart before you'll be able to stream it. Some other mp4 pseudo-streaming modules do processing in all cases, but it's just a waste of server resources in a normal case of properly prepared files.

comment:5 by Dan Rossi, 8 years ago

You are right, im so sorry. I will try and get this user a proper mp4 for testing he claims he's repositioned the moov atoms but its still doing it.

Note: See TracTickets for help on using tickets.