Page 1 of 1

[worked-around] VLC > 0.9.9 playing mp4/HTTP

Posted: 12 May 2010 07:54
by RobMattson
VLC community,

We use the Mozilla firefox plug-in to provide an interface to a custom database of language learning material. We are having trouble playing mp4 media files accessed via HTTP using any VLC older than 0.9.9 (in both QT GUI and Mozilla plug-in).

When downloaded and played locally, the media files play correctly. Specifically, when playing the video files we have over HTTP, the player simply stops about 30 seconds in with the following info shown in a level-2 message box.

Code: Select all

...</snip> main debug: connection succeeded (socket = 1580) access_http debug: protocol 'HTTP' answer code 206 access_http debug: Server: Apache access_http debug: this frame size=55576460 access_http debug: stream size=60795898,pos=5219438,remaining=55576460 access_http debug: Content-Type: video/mp4 mp4 warning: track[0x2] will be disabled (eof?) main warning: received buffer in the future main debug: thread times: real 0m39.015625s, kernel 0m0.031250s, user 0m0.015625s main debug: removing module "faad" main debug: killing decoder fourcc `mp4a', 45 PES in FIFO main debug: removing module "scaletempo" main debug: removing module "bandlimited_resampler" aout_directx debug: closing audio device aout_directx debug: DirectSoundThread exiting main debug: thread ended main debug: thread times: real 0m38.718750s, kernel 0m0.187500s, user 0m0.015625s main debug: removing module "aout_directx" main debug: removing module "audio_format" main debug: removing module "float32_mixer" main debug: releasing aout mp4 warning: track[0x1] will be disabled (eof?) main warning: can't get output picture avcodec warning: disabling direct rendering avcodec warning: cannot decode one frame (7991 bytes) main debug: thread times: real 0m39.171875s, kernel 0m0.015625s, user 0m1.656250s avcodec debug: ffmpeg codec (H264 - MPEG-4 AVC (part 10)) stopped main debug: removing module "avcodec" main debug: killing decoder fourcc `h264', 19 PES in FIFO main debug: saving a free vout qt4 debug: Qt: Entering Fullscreen main debug: EOF reached mp4 debug: freeing all memory main debug: removing module "mp4" main debug: removing module "stream_filter_record" main debug: removing module "access_http" main debug: waitpipe: object killed main debug: Program doesn't contain anymore ES main debug: thread ended main debug: dead input main debug: thread times: real 0m39.265625s, kernel 0m0.515625s, user 0m0.203125s main debug: changing item without a request (current 0/1) main debug: nothing to play main debug: destroying useless vout qt4 debug: IM: Deleting the input main debug: Destroying the input for 'http://131.172.185.180/rob_vid1.mp4' main debug: TIMER input launching for 'http://131.172.185.180/rob_vid1.mp4' : 41.000 ms - Total 41.000 ms / 1 intvls (Avg 41.000 ms) directx debug: DirectXEventThread terminating directx debug: DirectXCloseWindow directx debug: WinProc WM_DESTROY qt4 debug: releasing video... qt4 debug: Video is not needed anymore main debug: removing module "qt4" main debug: removing module "directx" main debug: removing module "blend" main debug: removing module "freetype" main debug: removing module "yuvp" main debug: removing module "swscale"
The test mp4 file we’ve used is available at http://www.ltuic.latrobe.edu.au/rob_vid1.mp4
The versions we’ve tested are: 1.0.0-win32, 1.0.3-win32, 1.0.5-win32, vlc-1.1.0-pre3-20100502-1255-win32, 1.2.0-git-20100508-0002-win32. The playback failure issue occurs in each and every version.

Our client is windows XP sp3 and our server is a very vanilla gentoo/apache-2.2.15 on linux 2.6.29.

I performed many packet inspections with wireshark, and the byte-range requests seem to come and go (I’d like to think I’m pretty familiar with rfc2616). besides a few odd RST's sent from VLC's end prematurly, I've played some mkv files using the same method and HTTP traffic still looks good.

Does anyone have any input that would help me, I’ve surfed through a great deal of Trac/vlc and not found anything that quite describes this problem. I'm hoping i can write a good bug up, but feel I need more information than I currently have.

Does anyone have any feedback that might help?

Re: [unresolved] VLC > 0.9.9 playing mp4/HTTP

Posted: 12 May 2010 15:43
by Jean-Baptiste Kempf
You are saying that this only happens with mp4 files and not mkv ?

(yes, I read the whole post, but this part was unclear)

Re: [unresolved] VLC > 0.9.9 playing mp4/HTTP

Posted: 12 May 2010 16:18
by RobMattson
Mp4 - failed
mkv (matroska) - played without fault.

If you have a second, please do try to play the mp4 i posted as proof of concept.

Re: [unresolved] VLC > 0.9.9 playing mp4/HTTP

Posted: 13 May 2010 01:46
by Jean-Baptiste Kempf
yes, I see the same.

You should ask on vlc-devel mailing list.

Re: [unresolved] VLC > 0.9.9 playing mp4/HTTP

Posted: 13 May 2010 07:45
by RobMattson
I have just sent the information to the vlc-devel list, and thankyou for taking the time to investigate this issue.

Re: [worked-around] VLC > 0.9.9 playing mp4/HTTP

Posted: 14 May 2010 02:35
by RobMattson
An astute developer on the vlc-devel list suggested that I specify the demuxer on the command line (or in advanced options):

Code: Select all

vlc --demux=avformat <filename>
HOWEVER, the unfortunate part is that the demuxer option cannot be passed to the mozilla plugin as the demux option is considered unsafe. nor does the plugin read from the config file in documents and settings.
i guess my options are:
1. roll my own vlc from source, forcing/allowing the demux option in the plugin.
2. remux the mp4's, and there are gigs, and gigs, and gigs of them.
3. down grade vlc on all our labs to 0.9.9

Cheers Rob.