Ross Finlayson | 19 Jun 2013 09:00
Favicon

New (custom) "REGISTER" command - for advertising a RTSP stream to a client or proxy server

The latest version of the "LIVE555 Streaming Media" software supports a new, custom RTSP command: "REGISTER".  This request is currently non-standard; however, I will shortly be submitting an IETF Internet-Draft document that describes it.

This command can be used to 'advertise' a RTSP stream (given by a "rtsp://" URL) to a client application, or to a proxy server.  In particular, a server can use this command to advertise one of its own streams to a client application (or proxy server), which then gets to reuse the TCP connection on which it received the request.  This can be useful if the server is behind a firewall or NAT (e.g., on a mobile phone data network), but the client application (or proxy server) is on the public Internet.

For (non-proxy) Servers:
====================
A LIVE555-based server application can 'advertise' one of its streams - described by a "ServerMediaSession" object in a "RTSPServer" - by calling the new member function:
           "RTSPServer::registerStream()"
specifying the remote client application (or proxy server)'s name or IP address, and port number.  This will send a "REGISTER" request, advertising the stream.

For Proxy Servers:
===============
To create a proxy server that automatically accepts incoming stream 'advertisements' (i.e., "REGISTER" requests), and proxies the advertised "rtsp://" URL for each such incoming request, create a
         "RTSPServerWithREGISTERProxying"
rather than a usual "RTSPServer".
(see "liveMedia/include/RTSPServer.hh").
(For an illustration of this, note how we implement the new '-R' command-line option for the "LIVE555 Proxy Server".)

For Client Applications:
===================
A client application can create a simple server that accepts incoming 'advertisements' (i.e., "REGISTER" requests), and then automatically creates a new "RTSPClient" object to handle the "rtsp://" URL specified by each such incoming request.  To do this, create a
         "HandlerServerForREGISTERCommand"
object, by calling
"HandlerServerForREGISTERCommand::createNew()"
(see "liveMedia/include/RTSPClient.hh").
(For an illustration of this, note how we implement the new '-R' command-line option for the "openRTSP" application.)


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

_______________________________________________
live-devel mailing list
live-devel@...
http://lists.live555.com/mailman/listinfo/live-devel
Andrey | 18 Jun 2013 10:09
Picon

MilestoneXProtect playing problem

Unfortunately I have a week waiting for a response from the Milestone, 
but it is not. What if I use the reclamationTestSeconds = 0 when 
creating RTSPServer. In theory this should solve the problem.
Favicon

Full HD Contents. trickplay question

 

Hello everyone,

 

Im testing a Trick-play function using Live555 and turned out most of the contents tested are working well in STB.

But some 2x, 4x converted to testMPEG2TransportStreamTrickPlay are not played properly in STB.

 

Id like to know if theres something I did wrong.

 

I used content information is as follows:

- Test original HD contents (ts): http://aslike.ipdisk.co.kr:8000/live555/ChunMyung.ts

- index file (tsx); http://aslike.ipdisk.co.kr:8000/live555/ChunMyung.tsx

- 2scale ts file: http://aslike.ipdisk.co.kr:8000/live555/ChunMyung_02scale.ts

- 4scale ts file: http://aslike.ipdisk.co.kr:8000/live555/ChunMyung_04scale.ts

 

 

Thank you

Dennis Lee

_______________________________________________
live-devel mailing list
live-devel@...
http://lists.live555.com/mailman/listinfo/live-devel
Andrey | 18 Jun 2013 09:44
Picon

windows winsock error 10038

Thanks for the quick reply. However, the error occurs even if the test 
code testOnDemandRTSPServer reuseFirstSource set to True. I have not 
changed anything in the code, except the reuseFirstSource. The error 
occurs on the socket fClientInputSocket of RTSPServer.cpp. Closing the 
socket occurs after the call closeSockets () in the destructor ~ 
RTSPClientConnection (), respectively, which is called when the session 
with the client. The functions of the closeSockets () before closing the 
socket is called disableBackgroundHandling (fClientInputSocket). The 
idea is all right, and select () function should not be to access a 
closed socket. However, after repeated reconnect the client to the 
server in the select () function generates an error. The problem arises 
only when the true meaning of reuseFirstSource and multiple client 
reconnects to the server. Perhaps the problem is 
disableBackgroundHandling, in any case, the error is random and can 
occur as a reconnection with the client, and more than a hundred.
Andrey | 18 Jun 2013 08:20
Picon

windows winsock error 10038

Hi, Ross. I am compelled to write again from the already overexposed 
challenge posed SingleStep (). After a call to select () the invalid 
socket error occurs. It occurs in multiple-connected disabled client to 
the server, and the server will eventually fall. I know that you can 
override internalError () function, but it would still understand the 
cause of the error. After testing, it was found out that the error is 
really the choice of previously closed socket fClientInputSocket to 
function RTSPClientConnection :: closeSockets (). If the client socket 
will never close at the end of the session (although this is wrong), the 
error does not occur. Perhaps when a new socket descriptor is given to 
just closed? I do not understand what the problem is.
fuliangcheng1985 | 17 Jun 2013 16:49
Favicon

use testOnDemandServer to steaming local video

Hi everyone:
 I have a problem that:
i put a .mp4 video in the live/testprog/ and rename it as "test.m4e" and then i run the command "./testOnDemandRTSPServer" in order to streaming the file "test.m4e", but when i open an vlc media player to play this streaming just like "vlc rtsp://192.168.1.103:8554/mpeg4ESVideoTest", 
the error like:
 "MPEG4VideoStreamParser::parseVideoObjectPlane():: marker bit not set"
 "MPEG4VideoStreamParser::parseVideoObjectPlane():: Saw unexpected code 0x13f"
occured, is there something wrong i have done these steps? or the file format of test.m4e is not correct

Thandk you very much!


_______________________________________________
live-devel mailing list
live-devel@...
http://lists.live555.com/mailman/listinfo/live-devel
Nix Lo | 17 Jun 2013 10:47
Picon

Report one possible bug about function createJPEGHeader()

Dear Sir:
    About the implementation of function createJPEGHeader() in file JPEGVideoRTPSource.cpp, the 1st time the formula of determining the value of variable "tableSize" is:

unsigned tableSize = numQtables == 1 ? qtlen : qtlen/2;

    I think it should be:

unsigned tableSize = numQtables == 1 ? qtlen/2 : qtlen;

    It makes sense that the size of quantization table is 64 bytes long if there's only one quantization table. Would you please double check if my point is correct? Thank you very much.

Sincerely,
Nix Lo
_______________________________________________
live-devel mailing list
live-devel@...
http://lists.live555.com/mailman/listinfo/live-devel
Zvika Meiseles | 15 Jun 2013 13:58
Picon

Re: Larger streams breaking when opened through live555ProxyServer

I'm having a similar (or related) issue.
I'm not using 'live555ProxyServer', since it does not fit my needs. I have implemented my own proxy, and am seeing breaks in the video as well.
The breaks disappear when I substitute the 'input' to be a file, instead of an RTP network stream (I have an intermediate buffer that presents the data in an identical stream, no matter what the source is).
This leads me to think that, for some unknown reason, there's a problem when the same code is both sending and receiving (multicast?) network traffic. I have not yet been able to confirm or disprove this assumption.

(btw: I'm currently working on a Linux machine, but I saw similar behavior on Windows).

Zvika
_______________________________________________
live-devel mailing list
live-devel@...
http://lists.live555.com/mailman/listinfo/live-devel
谢永达 | 14 Jun 2013 05:03
Picon

is it work?

I add a public member function fro RTSPClient, so that I can create the connection outside and setup TCP socket for it;

void RTSPClient::setSocketNum(int ioSocket)
{
    resetTCPSockets();

    fInputSocketNum=fOutputSocketNum=ioSocket;
    if(ioSocket>=0){
        envir().taskScheduler().setBackgroundHandling(fInputSocketNum, SOCKET_READABLE|SOCKET_EXCEPTION,
            (TaskScheduler::BackgroundHandlerProc*)&incomingDataHandler, this);
    }
}


--
by:crazyevent
_______________________________________________
live-devel mailing list
live-devel@...
http://lists.live555.com/mailman/listinfo/live-devel
Ross Finlayson | 14 Jun 2013 12:15
Favicon

ALERT: New LIVE555 version changes the signature of the "RTSPClient" constructor

The latest version (2013.06.14) of the "LIVE555 Streaming Media" code changes the signature of the constructor of the "RTSPClient" class, and of its subclass "ProxyRTSPClient".  If you have subclassed either of these classes in your code, then you will need to make a small change to your code accordingly.

The change is to add a 'socket number to server' parameter (as the final parameter to the constructor).  This socket number (if >=0) is the socket of an existing TCP connection to the server.  This allows you to create a RTSP client object from an existing TCP connection.  (If you do this, the supplied "rtsp://" URL must point to the server that's at the endpoint of the TCP connection.)

If the 'socket number to server' parameter is <0 (e.g., -1), then the old behavior remains: A new TCP connection will be created for the class, by resolving the "rtsp://" URL.

(The "RTSPClient::createNew()" function also takes a 'socket number to server' parameter, but this has a default value of -1, so existing code that creates "RTSPClient"s using only the "createNew()" function will not need to change.)

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

ps. I've also defined and implemented a custom "REGISTER" command that a server can use to notify a client (or a proxy) about the existence of one of its streams.  The client (or proxy) can then use the same TCP connection to access the stream.  This can be useful if the client (or proxy) is publicly accessible, but the server is behind a firewall or NAT.  I'm not quite ready to release this feature yet, but should be able to soon.  Stay tuned...

_______________________________________________
live-devel mailing list
live-devel@...
http://lists.live555.com/mailman/listinfo/live-devel
jacob s | 9 Jun 2013 20:15
Picon

use live555 with raw rgb data input

Is it possible to use live555 as an rtsp server that its input is raw rgb images and the output stream is mpeg4/h264 ?
_______________________________________________
live-devel mailing list
live-devel@...
http://lists.live555.com/mailman/listinfo/live-devel

Gmane