Page 1 of 1

JVLC can not play all videos like VLC can...

Posted: 04 Jan 2009 01:45
by odd_ferret
Hi All,

I am using the latest download of JVLC and when I use it there are videos that work fine with VLC and seem to enounter EOF at the very beginning instead of playing the file. Seems like 50% of videos do not work using JVLC but do using vlc. Is there perhaps some options set in vlc that initializes the libraries this is missing from the VLCEXample.java file?

The messages I get using -vvv option for a failed video are:
== Starting VLCExample ==
Creating a JVLC instance with args:
0) --plugin-path=c:\\plugins
1) -vvv
2) --http-caching=2400
[00000001] main libvlc debug: VLC media player - version 0.9.9 Grishenko - (c) 1996-2008 the VideoLAN team
[00000001] main libvlc debug: libvlc was configured with ./configure '--host=i586-mingw32msvc' '--build=i386-linux' '--enable-mkv' '--enable-debug' '--without-contrib' '--enable-nls' '--enable-shared-libvlc' '--enable-update-check' '--enable-lua' '--enable-faad' '--enable-flac' '--enable-theora' '--enable-twolame' '--enable-quicktime' '--enable-real' '--enable-realrtsp' '--enable-ffmpeg' '--with-ffmpeg-mp3lame' '--with-ffmpeg-faac' '--with-ffmpeg-config-path=/usr/win32/bin' '--with-ffmpeg-zlib' '--enable-live555' '--with-live555-tree=/usr/win32/live.com' '--enabl
[00000001] main libvlc debug: translation test: code is "C"
[00000001] main libvlc debug: opening config file (C:\Documents and Settings\Administrator\Application Data\vlc\vlcrc)
[00000001] main libvlc debug: loading config for module "main"
[00000001] main libvlc debug: checking builtin modules
[00000001] main libvlc debug: checking plugin modules
[00000001] main libvlc debug: loading plugins cache file C:\Documents and Settings\Administrator\Application Data\vlc\plugins-zxzx04.dat
[00000001] main libvlc debug: recursively browsing `C:\java\jdk1.6.0_07\jre\bin\modules'
[00000001] main libvlc debug: recursively browsing `C:\java\jdk1.6.0_07\jre\bin\plugins'
[00000001] main libvlc debug: recursively browsing `c:\\plugins'
[00000691] main module warning: cannot find symbol "vlc_entry__0_9_0m" in file `c:\\plugins\libvlc.dll' (The specified procedure could not be found. (error 127))
[00000692] main module warning: cannot find symbol "vlc_entry__0_9_0m" in file `c:\\plugins\libvlccore.dll' (The specified procedure could not be found. (error 127))
[00000001] main libvlc debug: module bank initialized, found 262 modules
[00000001] main libvlc debug: opening config file (C:\Documents and Settings\Administrator\Application Data\vlc\vlcrc)
[00000001] main libvlc debug: CPU has capabilities 486 586 MMX 3DNow! MMXEXT SSE SSE2 FPU
[00000001] main libvlc debug: looking for memcpy module: 4 candidates
[00000001] main libvlc debug: using memcpy module "memcpymmxext"
[00000712] main interaction debug: thread 9496 (Interaction control) created at priority 0 (interface/interaction.c:382)
[00000712] main interaction debug: thread started
[00000714] main input debug: Creating an input for 'Media Library'
[00000714] main input debug: Input is a meta file: disabling unneeded options
[00000714] main input debug: `file/xspf-open://C:\Documents and Settings\Administrator\Application Data\vlc\ml.xspf' gives access `file' demux `xspf-open' path `C:\Documents and Settings\Administrator\Application Data\vlc\ml.xspf'
[00000714] main input debug: creating access 'file' path='C:\Documents and Settings\Administrator\Application Data\vlc\ml.xspf'
[00000715] main access debug: looking for access module: 2 candidates
[00000715] access_file access debug: opening file `C:\Documents and Settings\Administrator\Application Data\vlc\ml.xspf'
[00000715] main access debug: using access module "access_file"
[00000715] main access debug: TIMER module_Need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms)
[00000716] main stream debug: Using AStream*Stream
[00000716] main stream debug: pre-buffering...
[00000716] main stream debug: received first data for our buffer
[00000714] main input debug: creating demux: access='file' demux='xspf-open' path='C:\Documents and Settings\Administrator\Application Data\vlc\ml.xspf'
[00000717] main demux debug: looking for demux module: 1 candidate
[00000717] playlist demux debug: using XSPF playlist reader
[00000717] main demux debug: using demux module "playlist"
[00000717] main demux debug: TIMER module_Need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms)
[00000714] main input debug: `file/xspf-open://C:\Documents and Settings\Administrator\Application Data\vlc\ml.xspf' successfully opened
[00000718] main xml debug: looking for xml module: 2 candidates
[00000718] main xml debug: using xml module "xml"
[00000718] main xml debug: TIMER module_Need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms)
[00000717] playlist demux debug: parsed 0 tracks successfully
[00000718] main xml debug: removing module "xml"
[00000714] main input debug: EOF reached
[00000714] main input debug: control type=1
[00000717] main demux debug: removing module "playlist"
[00000715] main access debug: removing module "access_file"
[00000714] main input debug: Destroying the input for 'Media Library'
[00000714] main input debug: TIMER input launching for 'Media Library' : 3.000 ms - Total 3.000 ms / 1 intvls (Avg 3.000 ms)
[00000719] main preparser debug: waiting for thread initialization
[00000719] main preparser debug: thread started
[00000719] main preparser debug: thread 9572 (preparser) created at priority 0 (playlist/thread.c:79)
[00000720] main fetcher debug: waiting for thread initialization
[00000720] main fetcher debug: thread started
[00000720] main fetcher debug: thread 9584 (fetcher) created at priority 0 (playlist/thread.c:108)
[00000713] main playlist debug: waiting for thread initialization
[00000713] main playlist debug: thread started
[00000713] main playlist debug: thread 9580 (playlist) created at priority 0 (playlist/thread.c:117)
[00000713] main playlist debug: rebuilding array of current - root Playlist
[00000713] main playlist debug: rebuild done - 0 items, index -1
[00000721] main interface debug: looking for interface module: 1 candidate
[00000721] main interface debug: using interface module "hotkeys"
[00000721] main interface debug: TIMER module_Need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms)
[00000721] main interface debug: thread 9604 (interface) created at priority 0 (interface/interface.c:168)
[00000721] main interface debug: thread started
... done.
[00000722] main input debug: Creating an input for 'http://www.nasa.gov/55644main_NASATV_Windows.asx'
[00000722] main input debug: waiting for thread initialization
[00000722] main input debug: thread started
[00000722] main input debug: thread 9732 (input) created at priority 1 (input/input.c:370)
[00000722] main input debug: `http://www.nasa.gov/55644main_NASATV_Windows.asx' gives access `http' demux `' path `www.nasa.gov/55644main_NASATV_Windows.asx'
[00000722] main input debug: creating demux: access='http' demux='' path='www.nasa.gov/55644main_NASATV_Windows.asx'
[00000723] main demux debug: looking for access_demux module: 0 candidates
[00000723] main demux warning: no access_demux module matched "http"
[00000723] main demux debug: TIMER module_Need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms)
[00000722] main input debug: creating access 'http' path='www.nasa.gov/55644main_NASATV_Windows.asx'
[00000724] main access debug: looking for access module: 2 candidates
[00000724] access_http access debug: http: server='www.nasa.gov' port=80 file='/55644main_NASATV_Windows.asx
[00000724] main access debug: net: connecting to www.nasa.gov port 80
[00000724] main access debug: connection: Resource temporarily unavailable
[00000724] main access debug: connection succeeded (socket = 9944)
[00000724] access_http access debug: protocol 'HTTP' answer code 206
[00000724] access_http access debug: Server: Apache/2.0.45 (Unix) mod_perl/1.99_09-dev Perl/v5.6.1 covalent_auth/2.3 DAV/2 CovalentSSL/2.3.3 RSA/SSLC mod_jk/1.2.2-beta-1
[00000724] access_http access debug: Content-Type: video/x-ms-asf
[00000724] access_http access debug: stream size=695,pos=0,remaining=695
[00000724] access_http access debug: this frame size=695
[00000724] access_http access debug: Connection: keep-alive
[00000724] main access debug: using access module "access_http"
[00000724] main access debug: TIMER module_Need() : 266.000 ms - Total 266.000 ms / 1 intvls (Avg 266.000 ms)
[00000725] main stream debug: Using AStream*Stream
[00000725] main stream debug: pre-buffering...
[00000725] main stream debug: received first data for our buffer
[00000722] main input debug: creating demux: access='http' demux='' path='www.nasa.gov/55644main_NASATV_Windows.asx'
[00000726] main demux debug: looking for demux module: 51 candidates
[00000726] playlist demux debug: found valid ASX playlist
[00000726] main demux debug: using demux module "playlist"
[00000726] main demux debug: TIMER module_Need() : 1.000 ms - Total 1.000 ms / 1 intvls (Avg 1.000 ms)
[00000722] main input debug: looking for a subtitle file in C:\Documents and Settings\tony anecito\workspace\newJVLC\
[00000722] main input debug: `http://www.nasa.gov/55644main_NASATV_Windows.asx' successfully opened
Media instance played. MRL: http://www.nasa.gov/55644main_NASATV_Windows.asx
[00000722] main input debug: EOF reached
[00000722] main input debug: control type=1
new time: 0
Media instance end reached. MRL: http://www.nasa.gov/55644main_NASATV_Windows.asx

Thanks.

Re: JVLC can not play all videos like VLC can...

Posted: 04 Jan 2009 11:48
by odd_ferret
More info,

Seems the mov files that failed via http from jvlc work fine from the disk. Also, does not matter if I use MediaPlayer or MediaListPlayer I get the same response.

Re: JVLC can not play all videos like VLC can...

Posted: 04 Jan 2009 21:24
by odd_ferret
Hi All,

I copied a mov file I was having problems with to my own site and it worked just fine via jvlc. More testing indicated asx files do not work from jvlc and all the mov files failed when going to a specific site.

Re: JVLC can not play all videos like VLC can...

Posted: 05 Jan 2009 17:00
by erwan10
Your problem is similar to the one described on the forum at viewtopic.php?f=32&t=54259

playlists (.asx, .m3u, dir://, ... ) are never automatically played when libvlc API is used (JVLC is based on libvlc API if I am not mistaken)

If it were in C/C++ with libvlc, (I suppose JVLC is not too different), things would be :

- If you play a playlist with media_player, libvlc_media_subitems() allows retrieving each items from the playlist once the playlist is demuxed.

- if you use media_list_player, you're doomed (this is an unfinished work)...

Re: JVLC can not play all videos like VLC can...

Posted: 07 Jan 2009 05:35
by odd_ferret
Hi erwan10,

I just read an very interesting email on the vlc dev group list where someone who developed MyUniPortal figured out what is going on.
He found out that the deprecated playlist object does something the mediaplayer and other new objects fail to do and that is take an asx, mov refernce and get the metadata from it in order to run it. For example an asx might contain mms:xxxx:9089 and if you pass that to the MediaPlayer or MediaListPlayer it will play the video correctly. Seems vlc.exe is getting that info correctly and the playlist object is also getting it correctly but not the rest of the jvlc api.
Also noticed was the incomplete nature of the MediaListPlayer object and in one case the MediaPlayer object does not have a isPlaying method. MediaListPlayer is missing several important methods such as getPosition and setPosition which you need for a progress bar.

These issues may be the result of an evolving interface of vlc itself and not the JVLC api. Hopefully the JVLC/VLC team can address the one issue for metadata to get the real url and at least the MediaPlayer object will be usable. So far no response from the JVLC developers so hopefully they understand the issue and address it.

The JVLC team has put a great deal of effort into the api and seems like just a little more is needed for others to use it :)

Regards,
odd_ferret

Re: JVLC can not play all videos like VLC can...

Posted: 07 Jan 2009 13:45
by erwan10
Just one thing, media_player is usable right now even with asx files.

Media_player is designed so that playing a playlist (asx, m3u; dir://) means parsing it and populating a subitem(media_list) (even if the playlist is limited to one item). It is then up to the developer to __explicitly__ select an item to be played from this media_list.

The deprecated playlist was designed differently (parsing a playlist and starting first item was done in one call by default). Media_player just does things differently.

Media_list_player (which is automating playback of successive items) is another matter. And for this one, libvlc developers have some more work to carry out.