VLC + Latest LIVE555 = RTSP for Amino AmiNET? [Bug Found!]

For questions and discussion that is NOT (I repeat NOT) specific to a certain Operating System.
Brownstone
Blank Cone
Blank Cone
Posts: 54
Joined: 19 Aug 2006 02:50

VLC + Latest LIVE555 = RTSP for Amino AmiNET? [Bug Found!]

Postby Brownstone » 23 Aug 2006 05:52

I've had problems getting RTSP VOD working with my Amino 110.

Searching the forums I can see this issue has been raised many times in the past with the following responses: It'll never happen, or it'll happen when Amino take out the proprietary element of their RTSP implementation. I also read that a developer wrote a patch but withheld it, and another developer wrote another patch and committed it - but it seems the patch file has not been kept updated with the newer versions of VLC and its libraries (at least, I get make errors after I apply it.)

The latest vibe is that RTSP VOD with VLC works fine with Amino set top boxes, so long as you use the latest LIVE555 libraries available from: http://live555.com/liveMedia/public/

Before I jump in and break my working copy of VLC, can anyone shed some light on this? Sounds like there's been a heck of a lot of history for this feature!

Any help would be greatly appreciated, thanks. :)
Last edited by Brownstone on 23 Aug 2006 23:21, edited 1 time in total.
Of course, that's just my opinion. I could be wrong.

robc
Blank Cone
Blank Cone
Posts: 53
Joined: 22 Dec 2005 22:04
Location: Melbourne, Australia
Contact:

Postby robc » 23 Aug 2006 07:46

The patch which I submitted for Amino STB interoperability with VLC was incorporated into the main VLC trunk and as such this functionality should be available with nightly builds and subversion checkouts. As it is however, I have not tested the nightly or subversion builds for some time, but will seek to ensure the functionality of this component of the VLC VOD interface as features as frozen ahead of a stable 0.8.6 release. It should however be noted that this interoperability only extends as far as PLAY and PAUSE functions - There is no support for trickplay (FF/RW) features at this point in time.

Brownstone
Blank Cone
Blank Cone
Posts: 54
Joined: 19 Aug 2006 02:50

Postby Brownstone » 23 Aug 2006 15:23

Thanks for the info! I'll take a look at the nightlies. 8)
Of course, that's just my opinion. I could be wrong.

Brownstone
Blank Cone
Blank Cone
Posts: 54
Joined: 19 Aug 2006 02:50

Postby Brownstone » 23 Aug 2006 22:38

Hooray! I got it working with the source from subversion. :)

It took a bit of configuring, but the new ./menuconfig file helped greatly with that -- all I needed to do was configure and make a few of the libraries, plus tell the menuconfig program where they were for linking. I also needed to install (emerge) cvs since I didn't have that already.

I think I'll need to go through the process a few more times before I get the hang of it, though. Whenever I get something like this right I tend to forget what it was that got things working. :mrgreen:

Thanks a lot for the suggestion! 8)
Of course, that's just my opinion. I could be wrong.

Brownstone
Blank Cone
Blank Cone
Posts: 54
Joined: 19 Aug 2006 02:50

Postby Brownstone » 23 Aug 2006 23:17

I've hit my first problem, and I think it's a bug-report! :)

RTSP VOD works great across my desktop and laptop. It also works on my Amino 110.

The problem comes when the Amino "joins in." Like I said, playback is fine on this set-top-box, but my desktop and laptop can no longer playback another RTSP stream once the 110 gets in on the action. They'll finish what they're already playing if they're playing, but if you try and run the playlist again all this comes up in the VLC log:
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused
[00000643] [Media: demo] access_output_udp private warning: send error: Connection refused

[00000260] vod_rtsp private debug: RtspCallback query: type=12
[00000260] vod_rtsp private debug: HTTPD_MSG_TEARDOWN for session: 350644783
[00000639] [Media: demo] main input debug: control type=0
[00000639] [Media: demo] main input debug: control: stopping input
[00000639] [Media: demo] main input debug: closing input
[00000649] [Media: demo] main packetizer debug: removing module "mpeg_audio"
[00000649] [Media: demo] main packetizer debug: killing decoder fourcc `mpga', 0 PES in FIFO
[00000640] [Media: demo] main stream output debug: removing an input
[00000644] [Media: demo] mux_ts private debug: removing input pid=68
[00000650] [Media: demo] main packetizer debug: removing module "packetizer_mpegvideo"
[00000650] [Media: demo] main packetizer debug: killing decoder fourcc `mpgv', 0 PES in FIFO
[00000640] [Media: demo] main stream output debug: removing an input
[00000644] [Media: demo] mux_ts private debug: removing input pid=69
[00000644] [Media: demo] mux_ts private debug: new PCR PID is 8191
[00000644] [Media: demo] main private warning: no more input streams for this mux
[00000639] [Media: demo] main input debug: Program doesn't contain anymore ES

[00000648] [Media: demo] main demuxer debug: removing module "ps"
[00000646] [Media: demo] main access debug: removing module "access_file"
[00000639] [Media: demo] main input debug: destroying sout
[00000641] main private debug: destroying chain... (name=std)
[00000644] main private debug: removing module "mux_ts"
[00000643] access_output_udp private warning: send error: Connection refused
[00000643] main private debug: thread 2818501552 joined (udp.c:316)
[00000642] access_output_udp private debug: udp access output closed
[00000642] main private debug: removing module "access_output_udp"
[00000641] main private debug: removing module "stream_out_standard"
[00000641] main private debug: destroying chain done
[00000639] [Media: demo] main input debug: thread 2839481264 joined (input/input.c:399)
[00000260] vod_rtsp private debug: closing session: 350644783, connections: 0
[00000260] vod_rtsp private debug: RtspCallback query: type=11
[00000260] vod_rtsp private debug: RtspCallback query: type=12
[00000260] vod_rtsp private debug: HTTPD_MSG_TEARDOWN for session: 2005288179
[00000599] [Media: demo] main input debug: control type=0
[00000599] [Media: demo] main input debug: control: stopping input
[00000599] [Media: demo] main input debug: closing input
[00000606] [Media: demo] main packetizer debug: removing module "mpeg_audio"
[00000606] [Media: demo] main packetizer debug: killing decoder fourcc `mpga', 0 PES in FIFO
[00000600] [Media: demo] main stream output debug: removing an input
[00000609] main private debug: thread 2667441072 joined (udp.c:316)
[00000608] access_output_udp private debug: udp access output closed
[00000608] main private debug: removing module "access_output_udp"
[00000607] [Media: demo] main packetizer debug: removing module "packetizer_mpegvideo"
[00000607] [Media: demo] main packetizer debug: killing decoder fourcc `mpgv', 0 PES in FIFO
[00000600] [Media: demo] main stream output debug: removing an input
[00000611] main private debug: thread 2659048368 joined (udp.c:316)
[00000610] access_output_udp private debug: udp access output closed
[00000610] main private debug: removing module "access_output_udp"
[00000599] [Media: demo] main input debug: Program doesn't contain anymore ES
[00000605] [Media: demo] main demuxer debug: removing module "ps"
[00000603] [Media: demo] main access debug: removing module "access_file"
[00000599] [Media: demo] main input debug: destroying sout
[00000601] main private debug: destroying chain... (name=rtp)
[00000601] main private debug: removing module "stream_out_rtp"
[00000601] main private debug: destroying chain done
[00000599] [Media: demo] main input debug: thread 2688420784 joined (input/input.c:399)
(I used quote instead of code to embolden the "yellow" VLC messages.)

Only by restarting the VLC VOD server can I get the desktop and laptop to play the streams again. I tested the Aminos interference by playing upwards of five RTSP streams on BOTH the desktop and the laptop before telling the 110 to join in.

So 10 concurrent streams all told. I thought the limit would be 3 if there was any, since desktop + laptop + 110 = 3. ;) But it seems I can get as many streams playing as my server will handle -- right up until the 110 connects, then it all goes pear-shaped.

Interestingly though, the 110 can CONTINUE to connect and playback the VOD file again after the last one finished playing. It seems like the 110 is claiming "ownership" over the server or something. :mrgreen:

I have not tested with multiple Amino boxes because I only have one for now. I hope this helps with bugfixing!
Of course, that's just my opinion. I could be wrong.

The DJ
Cone Master
Cone Master
Posts: 5987
Joined: 22 Nov 2003 21:52
VLC version: git
Operating System: Mac OS X
Location: Enschede, Holland
Contact:

Postby The DJ » 23 Aug 2006 23:26

Well the Amino doesn't properly to RTSP (the protocol used). You should provide seperate entries for Amino and other Servers.
Don't use PMs for support questions.

Brownstone
Blank Cone
Blank Cone
Posts: 54
Joined: 19 Aug 2006 02:50

Postby Brownstone » 23 Aug 2006 23:46

Thanks! Using two different VOD elements -- one for the 110 and another for everything else -- it works!

I realise from reading the forum archives that Amino don't fully support RTSP, but it seems to me that the 110 shouldn't bring down a VOD element when all connections were working fine initially, so perhaps it's worth investigating. :?:

Anyway, thanks for the workaround!
Of course, that's just my opinion. I could be wrong.

SergioTCG
Blank Cone
Blank Cone
Posts: 15
Joined: 04 Oct 2006 21:34

Postby SergioTCG » 04 Oct 2006 22:04

I've been trying like crazy to get the VLC working as a RTSP server for Amino110, but it just isn't working for me.

Can anyone (Brownstone, perhaps) post detailed instructions?

I've tried downloading a nightly and starting the RTSP server, as explained in the URL Brownstone provided few posts back. But my Amino does not even start playing the VOD content, while VLC (as a client) plays it without a problem (which implicates that I got the server working, at least :)).

Another thing is the Amino URL for the RTSP stream. Did you get it playing through the AMINOATTR tag, via JavaScript, or directly by entering the URL in Amino's URL bar?

Can you please provide more detailed information how exactly you got RTSP working on your Amino?

Thanks for all your help! I appreciate it!

Brownstone
Blank Cone
Blank Cone
Posts: 54
Joined: 19 Aug 2006 02:50

Postby Brownstone » 05 Oct 2006 01:08

Yes, it was a bit tricky. Here's a JavaScript method to handle playback:

Code: Select all

function start_RTSP ( ) { AVMedia.Play ( 'type=VOD;servertype=MediaBase;src=rtsp://192.168.0.5:554//192.168.0.5/demo_amino' ); }
Yes, unfortunately you need to duplicate the IP address like that, with the extra double-slashes and all. "demo_amino" is the name of the Broadcast stream in the VLM.

Hope this helps!
Of course, that's just my opinion. I could be wrong.

SergioTCG
Blank Cone
Blank Cone
Posts: 15
Joined: 04 Oct 2006 21:34

Postby SergioTCG » 05 Oct 2006 08:08

Yup, that's exactly what I did, and it didn't work. :)

I guess I can rule out Amino being misconfigured.

The weird thing is -- I followed the directions step by step. I downloaded the latest nighty from trunk, and ran the server with the additional console (mux ts) parameter.

You were mentioning something about adding the latest live555 libraries, which I (to be honest :)) do not know how to do. Did you, other than download/compile the latest version from trunk, and run the servre with the additional parameter, do any more work on VLC in order for Amino to play RTSP normally?

Thank you!

SergioTCG
Blank Cone
Blank Cone
Posts: 15
Joined: 04 Oct 2006 21:34

Postby SergioTCG » 05 Oct 2006 21:45

OK. I did it.

I just followed the same directions again (i don't know why, providence I guess).

It works perfectly. I coded the Play() and the Pause() functionality.

I tried FFing and REWing out of pure superstition, but it didn't work. :)

Is there any news on when the trick play functions will be available in VLC? Or, if anybody knows the system from the inside, could I be of any help in programming the functionality, so that us Amino users can get fully functional RTSP?

Brownstone
Blank Cone
Blank Cone
Posts: 54
Joined: 19 Aug 2006 02:50

Postby Brownstone » 06 Oct 2006 23:59

On my forum-travels I discovered that trick-play does not yet work for the Aminos, but it's in the pipeline.

I'm glad you got it working!
Of course, that's just my opinion. I could be wrong.

SergioTCG
Blank Cone
Blank Cone
Posts: 15
Joined: 04 Oct 2006 21:34

Postby SergioTCG » 07 Oct 2006 08:19

Well, I've read some Live555 material, and from what I can see, trick play can be implemented directly in Live555 by implementing some C++ pure virtual functions which (to put it simply) give the server the information on which byte offset the seeked second of the video is located.

The problem is that these functions need to be implemented for each and every codec, which can take up quite a lot of time. For current set-top-boxes, I presume that only mpeg2ts should be implemented, and trick playing should then be working perfectly.


I'll check Live555's examples and see what can be done.

robc
Blank Cone
Blank Cone
Posts: 53
Joined: 22 Dec 2005 22:04
Location: Melbourne, Australia
Contact:

Postby robc » 16 Oct 2006 12:26

Well, I've read some Live555 material, and from what I can see, trick play can be implemented directly in Live555 by implementing some C++ pure virtual functions which (to put it simply) give the server the information on which byte offset the seeked second of the video is located.

The problem is that these functions need to be implemented for each and every codec, which can take up quite a lot of time. For current set-top-boxes, I presume that only mpeg2ts should be implemented, and trick playing should then be working perfectly.


I'll check Live555's examples and see what can be done.
While there is talk of this functionality being incorporated into the Live555 codebase, there is no firm timeline on this as yet - There is another method by which I am investigating the incorporation of trickplay, which should be relatively portable between codecs, but is dependent upon accurate time seeking. I have not however had much time to investigate this over the last few months (and have additionally been unwell during this time), but hope to look at it once again shortly.

SergioTCG
Blank Cone
Blank Cone
Posts: 15
Joined: 04 Oct 2006 21:34

Postby SergioTCG » 16 Oct 2006 16:02

Yeah... You and me both. :)

I've been searching around Live555's code, and noticed that parsing PCR information (Program Clock Reference PID) is already implemented.

duration() could be implemented by seeking for the last PCR, while seeking could be implemented by guessing the offset, seeking PCR, and correcting (with bisection maybe, or perhaps with Newton's square method, options are really infinite).

The problem is that I _understand_ how I'd start working on that, but do not yet have sufficient insight into Live555 code. I'd need at least 2 weeks before I could program anything useful. :)

Dunno. Was your solution simillar?

ottos
Blank Cone
Blank Cone
Posts: 14
Joined: 21 Sep 2006 17:57

vod amino vlc

Postby ottos » 07 Nov 2006 15:34

On my forum-travels I discovered that trick-play does not yet work for the Aminos, but it's in the pipeline.

I'm glad you got it working!
Maybe somebpdy could show how to get amino 110 play vod from vlc ? i try metod as described above but... have no result...

a=tool:vlc 0.8.5
c=IN IP4 192.168.99.253
m=audio 1234 RTP/AVP 14
a=rtpmap:14 MPA/90000
m=video 1236 RTP/AVP 32
a=rtpmap:32 MPV/90000

[00000574] [Media: sno] access_output_udp private warning: send error: Connection refused

ottos
Blank Cone
Blank Cone
Posts: 14
Joined: 21 Sep 2006 17:57

Postby ottos » 07 Nov 2006 17:29

could you please help me solved problem with playing vod form vlc on amino 110?
i'v got problem: vlc doesnt undesrtand rigth port that sends by amino 11111 and send false port like 1234 and 1236 for video.

i tried rtsp://192.168.0.5:554//192.168.0.5/test but i have same connection refused.....

how you solv this problem in your case ?

Brownstone
Blank Cone
Blank Cone
Posts: 54
Joined: 19 Aug 2006 02:50

Postby Brownstone » 08 Mar 2007 16:43

Sorry to bump this old thread, but I notice some progress on the LIVE555 site on RTSP streaming. Is this functionality now part of VLC so that we can all do trick-play VOD to an AmiNET 110? Thanks for any help! 8)
Of course, that's just my opinion. I could be wrong.


Return to “General VLC media player Troubleshooting”

Who is online

Users browsing this forum: No registered users and 7 guests