From Patrick.Weber at iecinfrared.com Fri Dec 2 07:43:24 2016
From: Patrick.Weber at iecinfrared.com (Weber, Patrick)
Date: Fri, 2 Dec 2016 15:43:24 +0000
Subject: [Live-devel] Multiple NIC - RTSP URL.
Message-ID: <7B283D8251DEA14AA6CFE585B081B2D007055935@IECSX5700.iec.bw.corp>
My application can have multiple NICs - how do I tell RTSPServer which IP address to use?
Patrick Weber
Principal Consultant
[IAC Logo][mesa_recognized_practitioner_logo - Small]
Integrated Automation Consulting LLC
440-552-5937
www.IntAutomation.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 2449 bytes
Desc: image001.jpg
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 6755 bytes
Desc: image002.jpg
URL:
From finlayson at live555.com Fri Dec 2 08:25:13 2016
From: finlayson at live555.com (Ross Finlayson)
Date: Sat, 3 Dec 2016 05:25:13 +1300
Subject: [Live-devel] Multiple NIC - RTSP URL.
In-Reply-To: <7B283D8251DEA14AA6CFE585B081B2D007055935@IECSX5700.iec.bw.corp>
References: <7B283D8251DEA14AA6CFE585B081B2D007055935@IECSX5700.iec.bw.corp>
Message-ID: <46E41433-385E-4078-9B76-72F71A112C9D@live555.com>
> On Dec 3, 2016, at 4:43 AM, Weber, Patrick wrote:
>
> My application can have multiple NICs ? how do I tell RTSPServer which IP address to use?
By default, the server uses the network interface that?s used for IP multicast routing - i.e., the one that has a route for 224.0.0.0/4. (The reason for this is that it uses IP multicast to detect its own IP address.)
So, the easiest way to choose a particular network interface is to reconfigure your host so that it uses that network interface for IP multicast routing. You should be able to do this by running (as root):
route add 224.0.0.0/4 ip-address-for-that-nic
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
From Patrick.Weber at iecinfrared.com Mon Dec 5 06:27:19 2016
From: Patrick.Weber at iecinfrared.com (Weber, Patrick)
Date: Mon, 5 Dec 2016 14:27:19 +0000
Subject: [Live-devel] live-devel Digest, Vol 157, Issue 1
In-Reply-To:
References:
Message-ID: <7B283D8251DEA14AA6CFE585B081B2D007056985@IECSX5700.iec.bw.corp>
Thanks for the response. Is there a non-default way (via C++ API) to select the NIC/IP address? My application may use multicast for other purposes (Web service discovery, for example), and I need to have it active on each NIC.
-----Original Message-----
From: live-devel [mailto:live-devel-bounces at ns.live555.com] On Behalf Of live-devel-request at ns.live555.com
Sent: Friday, December 2, 2016 3:00 PM
To: live-devel at ns.live555.com
Subject: live-devel Digest, Vol 157, Issue 1
Send live-devel mailing list submissions to
live-devel at lists.live555.com
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.live555.com/mailman/listinfo/live-devel
or, via email, send a message with subject or body 'help' to
live-devel-request at lists.live555.com
You can reach the person managing the list at
live-devel-owner at lists.live555.com
When replying, please edit your Subject line so it is more specific than "Re: Contents of live-devel digest..."
Today's Topics:
1. Multiple NIC - RTSP URL. (Weber, Patrick)
2. Re: Multiple NIC - RTSP URL. (Ross Finlayson)
----------------------------------------------------------------------
Message: 1
Date: Fri, 2 Dec 2016 15:43:24 +0000
From: "Weber, Patrick"
To: "live-devel at lists.live555.com"
Subject: [Live-devel] Multiple NIC - RTSP URL.
Message-ID:
<7B283D8251DEA14AA6CFE585B081B2D007055935 at IECSX5700.iec.bw.corp>
Content-Type: text/plain; charset="us-ascii"
My application can have multiple NICs - how do I tell RTSPServer which IP address to use?
Patrick Weber
Principal Consultant
[IAC Logo][mesa_recognized_practitioner_logo - Small] Integrated Automation Consulting LLC
440-552-5937
www.IntAutomation.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 2449 bytes
Desc: image001.jpg
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 6755 bytes
Desc: image002.jpg
URL:
------------------------------
Message: 2
Date: Sat, 3 Dec 2016 05:25:13 +1300
From: Ross Finlayson
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] Multiple NIC - RTSP URL.
Message-ID: <46E41433-385E-4078-9B76-72F71A112C9D at live555.com>
Content-Type: text/plain; charset=utf-8
> On Dec 3, 2016, at 4:43 AM, Weber, Patrick wrote:
>
> My application can have multiple NICs ? how do I tell RTSPServer which IP address to use?
By default, the server uses the network interface that?s used for IP multicast routing - i.e., the one that has a route for 224.0.0.0/4. (The reason for this is that it uses IP multicast to detect its own IP address.)
So, the easiest way to choose a particular network interface is to reconfigure your host so that it uses that network interface for IP multicast routing. You should be able to do this by running (as root):
route add 224.0.0.0/4 ip-address-for-that-nic
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
------------------------------
Subject: Digest Footer
_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
------------------------------
End of live-devel Digest, Vol 157, Issue 1
******************************************
From warren at etr-usa.com Mon Dec 5 11:00:15 2016
From: warren at etr-usa.com (Warren Young)
Date: Mon, 5 Dec 2016 12:00:15 -0700
Subject: [Live-devel] live-devel Digest, Vol 157, Issue 1
In-Reply-To: <7B283D8251DEA14AA6CFE585B081B2D007056985@IECSX5700.iec.bw.corp>
References:
<7B283D8251DEA14AA6CFE585B081B2D007056985@IECSX5700.iec.bw.corp>
Message-ID: <5ECBC5FD-06EF-4DA8-A775-B59C9031DE73@etr-usa.com>
On Dec 5, 2016, at 7:27 AM, Weber, Patrick wrote:
>
> Thanks for the response. Is there a non-default way (via C++ API) to select the NIC/IP address? My application may use multicast for other purposes (Web service discovery, for example), and I need to have it active on each NIC.
These services must use different addresses, which gives you the opportunity to route them separately.
I suggest that you use the default rule Ross recommended for the ?best? interface for multicast, then add additional routes with lower metrics (see the netstat/route(8) manual page) for the exceptions.
For example, let?s say you have IPTV going out on 239.255.{0-3}.x and you wanted it to go out the 1.2.3.4 interface. Let?s further say you have the 224/4 route on the 2.3.4.5 interface with metric 10. You could then say:
route add 239.255.0.0/22 1.2.3.4 metric 9
That causes the network stack?s routing layer to prefer sending IPTV multicast packets out the 1.2.3.4 NIC while everything else goes out 2.3.4.5.
From hungnvsdtc at elcom.com.vn Tue Dec 6 01:54:55 2016
From: hungnvsdtc at elcom.com.vn (=?utf-8?B?Tmd1eeG7hW4gVmnhu4d0IEjDuW5n?=)
Date: Tue, 6 Dec 2016 16:54:55 +0700
Subject: [Live-devel] How to create ProxyServer with "Environment Pool"
Message-ID: <000201d24fa6$cd491550$67db3ff0$@elcom.com.vn>
Dear Team,
Now we are want to build a proxy server to proxy many camera. Here we found that your proxy using one environment to distribute contents, that means it is using one thread for receiving and sending content. So my question is can we build a proxy using ?Environment Pool? to use multi-thread for receiving and sending content, but maintain one server port i.e. 8554? If I am wrong somewhere, please so me. Sorry for my bad English.
Best Regards,
Nguyen Viet Hung (Mr.)
Team Leader, Software-02 Department
-----------------------------------------------------------------------------
ESOFT CO., LTD
Add: Elcom Building, Duy Tan Street, Cau Giay District, Ha Noi
Mobile: 0904828118 | Tel: (+84-4) 38 359 359 (Ext: 8607) | Fax: +84-4 38355 884
Email: hungnvsdtc at elcom.com.vn | Web: www.elcom.com.vn | Skype: hungtrodt5
-----------------------------------------------------------------------------
This email and any attachment is intended for use only by specified addressees and may contain legally privileged and/or confidential information. If you are not an intended recipient, please delete the original and any copy of this message, notify the writer by email or telephone at (+84-4) 3835 9359 and accept our apologies for any inconvenience.
* Please consider the environment before you print this email.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From finlayson at live555.com Tue Dec 6 02:12:08 2016
From: finlayson at live555.com (Ross Finlayson)
Date: Tue, 6 Dec 2016 23:12:08 +1300
Subject: [Live-devel] How to create ProxyServer with "Environment Pool"
In-Reply-To: <000201d24fa6$cd491550$67db3ff0$@elcom.com.vn>
References: <000201d24fa6$cd491550$67db3ff0$@elcom.com.vn>
Message-ID:
The asynchronous, event-driven architecture of LIVE555-based applications means that you don?t need multiple threads to proxy multiple cameras. In fact, our existing ?LIVE555 Proxy Server? application, described at
http://live555.com/proxyServer/
already allows you to do this. Simply enter the URLs of the (multiple) back-end RTSP camera streams on the command line.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
From hungnvsdtc at elcom.com.vn Tue Dec 6 03:08:42 2016
From: hungnvsdtc at elcom.com.vn (=?utf-8?B?Tmd1eeG7hW4gVmnhu4d0IEjDuW5n?=)
Date: Tue, 6 Dec 2016 18:08:42 +0700
Subject: [Live-devel] How to create ProxyServer with "Environment Pool"
In-Reply-To:
References: <000201d24fa6$cd491550$67db3ff0$@elcom.com.vn>
Message-ID: <001201d24fb1$1b760210$52620630$@elcom.com.vn>
Thank Ross,
But it seem you misunderstood my idea, I want to create multiple thread to reduce latency in receiving and sending content, for example, I want to proxy 60 cameras, my server has 4 cores so I want split 15 cameras in one thread aka environment, so here I have an environment pool that contains 4 environments, each dedicate for 15 cams. So can we do this?
Best Regards,
Nguyen Viet Hung (Mr.)
Team Leader, Software-02 Department
-----------------------------------------------------------------------------
ESOFT CO., LTD
Add: Elcom Building, Duy Tan Street, Cau Giay District, Ha Noi
Mobile: 0904828118 | Tel: (+84-4) 38 359 359 (Ext: 8607) | Fax: +84-4 38355 884
Email: hungnvsdtc at elcom.com.vn | Web: www.elcom.com.vn | Skype: hungtrodt5
-----------------------------------------------------------------------------
This email and any attachment is intended for use only by specified addressees and may contain legally privileged and/or confidential information. If you are not an intended recipient, please delete the original and any copy of this message, notify the writer by email or telephone at (+84-4) 3835 9359 and accept our apologies for any inconvenience.
* Please consider the environment before you print this email.
-----Original Message-----
From: live-devel [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson
Sent: Tuesday, December 06, 2016 5:12 PM
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] How to create ProxyServer with "Environment Pool"
The asynchronous, event-driven architecture of LIVE555-based applications means that you don?t need multiple threads to proxy multiple cameras. In fact, our existing ?LIVE555 Proxy Server? application, described at
http://live555.com/proxyServer/
already allows you to do this. Simply enter the URLs of the (multiple) back-end RTSP camera streams on the command line.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
From finlayson at live555.com Tue Dec 6 06:08:14 2016
From: finlayson at live555.com (Ross Finlayson)
Date: Wed, 7 Dec 2016 03:08:14 +1300
Subject: [Live-devel] How to create ProxyServer with "Environment Pool"
In-Reply-To: <001201d24fb1$1b760210$52620630$@elcom.com.vn>
References: <000201d24fa6$cd491550$67db3ff0$@elcom.com.vn>
<001201d24fb1$1b760210$52620630$@elcom.com.vn>
Message-ID: <0FBAB080-A75D-4A75-8403-77B4C69C9E40@live555.com>
> But it seem you misunderstood my idea
No I didn?t.
> , I want to create multiple thread to reduce latency in receiving and sending content, for example, I want to proxy 60 cameras, my server has 4 cores so I want split 15 cameras in one thread aka environment, so here I have an environment pool that contains 4 environments, each dedicate for 15 cams. So can we do this?
First, please read the FAQ; in particular
http://live555.com/liveMedia/faq.html#threads
(as you were asked to do before posting to the mailing list)
The existing ?LIVE555 Proxy Server? application is single-threaded. However, if you really want to, you could run 4 parallel copies of the application, each using a different ?front end? RTSP port number - e.g., from the command line:
live555ProxyServer -p 8554 &
live555ProxyServer -p 8555 &
live555ProxyServer -p 8556 &
live555ProxyServer -p 8557 &
Note that this runs 4 separate *processes*, rather than 4 separate threads within a single process. (Because the "LIVE555 Proxy Server? application is single-threaded (using events rather than threads for concurrency), there is no way to run a single instance of this application so that it uses multiple threads.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
From Patrick.Weber at iecinfrared.com Tue Dec 6 10:55:27 2016
From: Patrick.Weber at iecinfrared.com (Weber, Patrick)
Date: Tue, 6 Dec 2016 18:55:27 +0000
Subject: [Live-devel] live-devel Digest, Vol 157, Issue 2 - Multiple NICs
Message-ID: <7B283D8251DEA14AA6CFE585B081B2D0070569E3@IECSX5700.iec.bw.corp>
Thanks Warren. Unfortunately my scope of control ends at my application boundary. This application is video distribution of live camera feeds (surveillance system) and frequently our clients do not want us mucking around with their system settings. Clearly I *could* do what has been suggested from within my application (the top layer is C#/.NET, so the System.Web assembly has everything needed), but it would be so much nicer to just tell Live555 which NIC to use - either by IP or MAC address - instead of allowing Live555 to infer the NIC based on routing settings. But if that is my only option, then that is what I must do...
-----Original Message-----
From: live-devel [mailto:live-devel-bounces at ns.live555.com] On Behalf Of live-devel-request at ns.live555.com
Sent: Monday, December 5, 2016 3:00 PM
To: live-devel at ns.live555.com
Subject: live-devel Digest, Vol 157, Issue 2
Send live-devel mailing list submissions to
live-devel at lists.live555.com
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.live555.com/mailman/listinfo/live-devel
or, via email, send a message with subject or body 'help' to
live-devel-request at lists.live555.com
You can reach the person managing the list at
live-devel-owner at lists.live555.com
When replying, please edit your Subject line so it is more specific than "Re: Contents of live-devel digest..."
Today's Topics:
1. Re: live-devel Digest, Vol 157, Issue 1 (Weber, Patrick)
2. Re: live-devel Digest, Vol 157, Issue 1 (Warren Young)
----------------------------------------------------------------------
Message: 1
Date: Mon, 5 Dec 2016 14:27:19 +0000
From: "Weber, Patrick"
To: "live-devel at ns.live555.com"
Subject: Re: [Live-devel] live-devel Digest, Vol 157, Issue 1
Message-ID:
<7B283D8251DEA14AA6CFE585B081B2D007056985 at IECSX5700.iec.bw.corp>
Content-Type: text/plain; charset="us-ascii"
Thanks for the response. Is there a non-default way (via C++ API) to select the NIC/IP address? My application may use multicast for other purposes (Web service discovery, for example), and I need to have it active on each NIC.
-----Original Message-----
From: live-devel [mailto:live-devel-bounces at ns.live555.com] On Behalf Of live-devel-request at ns.live555.com
Sent: Friday, December 2, 2016 3:00 PM
To: live-devel at ns.live555.com
Subject: live-devel Digest, Vol 157, Issue 1
Send live-devel mailing list submissions to
live-devel at lists.live555.com
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.live555.com/mailman/listinfo/live-devel
or, via email, send a message with subject or body 'help' to
live-devel-request at lists.live555.com
You can reach the person managing the list at
live-devel-owner at lists.live555.com
When replying, please edit your Subject line so it is more specific than "Re: Contents of live-devel digest..."
Today's Topics:
1. Multiple NIC - RTSP URL. (Weber, Patrick)
2. Re: Multiple NIC - RTSP URL. (Ross Finlayson)
----------------------------------------------------------------------
Message: 1
Date: Fri, 2 Dec 2016 15:43:24 +0000
From: "Weber, Patrick"
To: "live-devel at lists.live555.com"
Subject: [Live-devel] Multiple NIC - RTSP URL.
Message-ID:
<7B283D8251DEA14AA6CFE585B081B2D007055935 at IECSX5700.iec.bw.corp>
Content-Type: text/plain; charset="us-ascii"
My application can have multiple NICs - how do I tell RTSPServer which IP address to use?
Patrick Weber
Principal Consultant
[IAC Logo][mesa_recognized_practitioner_logo - Small] Integrated Automation Consulting LLC
440-552-5937
www.IntAutomation.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 2449 bytes
Desc: image001.jpg
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 6755 bytes
Desc: image002.jpg
URL:
------------------------------
Message: 2
Date: Sat, 3 Dec 2016 05:25:13 +1300
From: Ross Finlayson
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] Multiple NIC - RTSP URL.
Message-ID: <46E41433-385E-4078-9B76-72F71A112C9D at live555.com>
Content-Type: text/plain; charset=utf-8
> On Dec 3, 2016, at 4:43 AM, Weber, Patrick wrote:
>
> My application can have multiple NICs ? how do I tell RTSPServer which IP address to use?
By default, the server uses the network interface that?s used for IP multicast routing - i.e., the one that has a route for 224.0.0.0/4. (The reason for this is that it uses IP multicast to detect its own IP address.)
So, the easiest way to choose a particular network interface is to reconfigure your host so that it uses that network interface for IP multicast routing. You should be able to do this by running (as root):
route add 224.0.0.0/4 ip-address-for-that-nic
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
------------------------------
Subject: Digest Footer
_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
------------------------------
End of live-devel Digest, Vol 157, Issue 1
******************************************
------------------------------
Message: 2
Date: Mon, 5 Dec 2016 12:00:15 -0700
From: Warren Young
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] live-devel Digest, Vol 157, Issue 1
Message-ID: <5ECBC5FD-06EF-4DA8-A775-B59C9031DE73 at etr-usa.com>
Content-Type: text/plain; charset=utf-8
On Dec 5, 2016, at 7:27 AM, Weber, Patrick wrote:
>
> Thanks for the response. Is there a non-default way (via C++ API) to select the NIC/IP address? My application may use multicast for other purposes (Web service discovery, for example), and I need to have it active on each NIC.
These services must use different addresses, which gives you the opportunity to route them separately.
I suggest that you use the default rule Ross recommended for the ?best? interface for multicast, then add additional routes with lower metrics (see the netstat/route(8) manual page) for the exceptions.
For example, let?s say you have IPTV going out on 239.255.{0-3}.x and you wanted it to go out the 1.2.3.4 interface. Let?s further say you have the 224/4 route on the 2.3.4.5 interface with metric 10. You could then say:
route add 239.255.0.0/22 1.2.3.4 metric 9
That causes the network stack?s routing layer to prefer sending IPTV multicast packets out the 1.2.3.4 NIC while everything else goes out 2.3.4.5.
------------------------------
Subject: Digest Footer
_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
------------------------------
End of live-devel Digest, Vol 157, Issue 2
******************************************
From finlayson at live555.com Tue Dec 6 12:06:25 2016
From: finlayson at live555.com (Ross Finlayson)
Date: Wed, 7 Dec 2016 09:06:25 +1300
Subject: [Live-devel] Multiple NIC - RTSP URL.
In-Reply-To: <7B283D8251DEA14AA6CFE585B081B2D0070569E3@IECSX5700.iec.bw.corp>
References: <7B283D8251DEA14AA6CFE585B081B2D0070569E3@IECSX5700.iec.bw.corp>
Message-ID:
Please everybody - when replying to a mailing list ?Digest?, (1) fix the ?Subject:? line, and (2) trim your post to not quote excessive text. This is basic mailing list ?netiquette?.
One other thing you could try is - in your ?main()? program, do
#include
and then, near the beginning
ReceivingInterfaceAddr = SendingInterfaceAddr = our_inet_addr(?x.y.z.w?);
where x.y.z.w is the IP address of the interface that you want to use (in ?dotted quad? form).
This is not guaranteed to work, though...
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
From warren at etr-usa.com Tue Dec 6 12:18:51 2016
From: warren at etr-usa.com (Warren Young)
Date: Tue, 6 Dec 2016 13:18:51 -0700
Subject: [Live-devel] live-devel Digest, Vol 157, Issue 2 - Multiple NICs
In-Reply-To: <7B283D8251DEA14AA6CFE585B081B2D0070569E3@IECSX5700.iec.bw.corp>
References: <7B283D8251DEA14AA6CFE585B081B2D0070569E3@IECSX5700.iec.bw.corp>
Message-ID: <78C741ED-F560-4262-B866-48D92FE5FD68@etr-usa.com>
On Dec 6, 2016, at 11:55 AM, Weber, Patrick wrote:
>
> Clearly I *could* do what has been suggested from within my application (the top layer is C#/.NET, so the System.Web assembly has everything needed)
Not according to this SO answer:
https://stackoverflow.com/questions/7333764/
You may be confusing network stack routing with ASP.NET routes. Very much not the same thing.
> it would be so much nicer to just tell Live555 which NIC to use - either by IP or MAC address
You may be able to play some games with bind() calls way down in the inner socket handling layers of Live555, but I wouldn?t recommend it.
You?re asking us to help you second-guess an incorrect network stack routing setup instead of configuring it correctly.
> instead of allowing Live555 to infer the NIC based on routing settings.
Live555 infers nothing. It gives the packets to the network stack, and the network stack sends them out the network interface it decides is most appropriate based on the routing configuration.
Go read Stevens or Quinn.
From Jeremiah.Morrill at econnect.tv Tue Dec 6 13:27:14 2016
From: Jeremiah.Morrill at econnect.tv (Jeremiah Morrill)
Date: Tue, 6 Dec 2016 21:27:14 +0000
Subject: [Live-devel] live-devel Digest, Vol 157, Issue 2 - Multiple NICs
In-Reply-To: <7B283D8251DEA14AA6CFE585B081B2D0070569E3@IECSX5700.iec.bw.corp>
References: <7B283D8251DEA14AA6CFE585B081B2D0070569E3@IECSX5700.iec.bw.corp>
Message-ID:
Haven't tried this, so grain of salt.
The protected RTSPServer constructor has a parameter for the socket FD.
I think you could first, subclass the RTSPServer class so you can pass in your own socket fd.
Using system calls w/ C++ or using .NET, initialize your own socket bound to the NIC you prefer (don't forget to set it to listen and set the correct socket options, like non-blocking...follow GenericMediaServer::setUpOurSocket path for exacts).
Pass your initialized socket to a new instance of your RTSPServer subclass.
If you are initializing your socket in C#, I believe you can get the socket FD from socket.Handle.ToInt32() property...and don't let the handle be destroyed (eg, store reference to Socket object).
HTH,
-Jer
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From Jeremiah.Morrill at econnect.tv Tue Dec 6 14:15:59 2016
From: Jeremiah.Morrill at econnect.tv (Jeremiah Morrill)
Date: Tue, 6 Dec 2016 22:15:59 +0000
Subject: [Live-devel] live-devel Digest, Vol 157, Issue 2 - Multiple NICs
In-Reply-To: <78C741ED-F560-4262-B866-48D92FE5FD68@etr-usa.com>
References: <7B283D8251DEA14AA6CFE585B081B2D0070569E3@IECSX5700.iec.bw.corp>,
<78C741ED-F560-4262-B866-48D92FE5FD68@etr-usa.com>
Message-ID:
(last reply got rejected, so trying again w/o trimming response)
Haven't tried this, so grain of salt.
The protected RTSPServer constructor has a parameter for the socket FD.
I think you could first, subclass the RTSPServer class so you can pass in your own socket fd.
Using system calls w/ C++ or using .NET, initialize your own socket bound to the NIC you prefer (don't forget to set it to listen and set the correct socket options, like non-blocking...follow GenericMediaServer::setUpOurSocket path for exacts).
Pass your initialized socket to a new instance of your RTSPServer subclass.
If you are initializing your socket in C#, I believe you can get the socket FD from socket.Handle.ToInt32() property...and don't let the handle be destroyed (eg, store reference to Socket object).
HTH,
-Jer
From: live-devel
Sent: Tuesday, December 6, 2016 12:40 PM
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] live-devel Digest, Vol 157, Issue 2 - Multiple NICs
On Dec 6, 2016, at 11:55 AM, Weber, Patrick wrote:
>
> Clearly I *could* do what has been suggested from within my application (the top layer is C#/.NET, so the System.Web assembly has everything needed)
Not according to this SO answer:
https://stackoverflow.com/questions/7333764/
You may be confusing network stack routing with ASP.NET routes. Very much not the same thing.
> it would be so much nicer to just tell Live555 which NIC to use - either by IP or MAC address
You may be able to play some games with bind() calls way down in the inner socket handling layers of Live555, but I wouldn't recommend it.
You're asking us to help you second-guess an incorrect network stack routing setup instead of configuring it correctly.
> instead of allowing Live555 to infer the NIC based on routing settings.
Live555 infers nothing. It gives the packets to the network stack, and the network stack sends them out the network interface it decides is most appropriate based on the routing configuration.
Go read Stevens or Quinn.
_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From hemant at mnkcg.com Tue Dec 6 15:05:16 2016
From: hemant at mnkcg.com (hemant at mnkcg.com)
Date: Tue, 6 Dec 2016 18:05:16 -0500
Subject: [Live-devel] Multiple NIC - RTSP URL.
In-Reply-To: <7B283D8251DEA14AA6CFE585B081B2D007055935@IECSX5700.iec.bw.corp>
References: <7B283D8251DEA14AA6CFE585B081B2D007055935@IECSX5700.iec.bw.corp>
Message-ID: <007201d25015$35aa3c50$a0feb4f0$@mnkcg.com>
Having read all the emails, I see that the Live555 design uses the interface
which supports a multicast router. I don't see anything wrong with the
request below from Patrick. If a node is a router, a router supports many
interfaces. Each interface can independently support multicast routing.
Therefore if a server runs on the router, the server would need
configuration for what NIC to use. What Patrick wants to do is already an
issue solved by the Cisco CNR (Cisco Network Registrar), a DHCP server which
runs on a Linux machine with multiple NICs.
http://tinyurl.com/zdjgrfr
The DHCP server is configured for which NIC and IPv4 or IPv6 address on the
NIC to use.
I agree with Ross when he proposed this solution:
"One other thing you could try is - in your "main()" program, do
#include
and then, near the beginning
ReceivingInterfaceAddr = SendingInterfaceAddr =
our_inet_addr("x.y.z.w"); where x.y.z.w is
the IP address of the interface that you want to use (in 'dotted quad'
form).
This is not guaranteed to work, though..."
Just implement what Ross suggested above. If you run into any issues,
please send your code changes so that we can help fix your issues.
Cheers,
Hemant
From: live-devel [mailto:live-devel-bounces at ns.live555.com] On Behalf Of
Weber, Patrick
Sent: Friday, December 02, 2016 10:43 AM
To: live-devel at lists.live555.com
Subject: [Live-devel] Multiple NIC - RTSP URL.
My application can have multiple NICs - how do I tell RTSPServer which IP
address to use?
Patrick Weber
Principal Consultant
Integrated Automation Consulting LLC
440-552-5937
www.IntAutomation.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.jpg
Type: image/jpeg
Size: 3002 bytes
Desc: not available
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image005.jpg
Type: image/jpeg
Size: 4118 bytes
Desc: not available
URL:
From warren at etr-usa.com Tue Dec 6 16:08:19 2016
From: warren at etr-usa.com (Warren Young)
Date: Tue, 6 Dec 2016 17:08:19 -0700
Subject: [Live-devel] Multiple NICs
In-Reply-To:
References: <7B283D8251DEA14AA6CFE585B081B2D0070569E3@IECSX5700.iec.bw.corp>
<78C741ED-F560-4262-B866-48D92FE5FD68@etr-usa.com>
Message-ID: <5086FB45-F094-49BE-8319-822FD77AEDFB@etr-usa.com>
On Dec 6, 2016, at 3:15 PM, Jeremiah Morrill wrote:
>
> The protected RTSPServer constructor has a parameter for the socket FD.
RTSP is a TCP-based protocol. Messing about with its socket will have no effect on how the *UDP* multicast packets go out.
There is such a thing as RTP over TCP, but then you?re not talking about multicast at all, since you can?t multicast TCP.
Keep in mind that RTSP is just the ?VCR buttons? protocol for the actual streaming media protocol, whether that be raw UDP, RTP, or something else.
From Patrick.Weber at iecinfrared.com Wed Dec 7 06:35:32 2016
From: Patrick.Weber at iecinfrared.com (Weber, Patrick)
Date: Wed, 7 Dec 2016 14:35:32 +0000
Subject: [Live-devel] Multiple NICs
Message-ID: <7B283D8251DEA14AA6CFE585B081B2D007056A3D@IECSX5700.iec.bw.corp>
Thanks all.
I'll give Ross's solution a try first, then should I still need something more concrete I'll give Jeremiah's suggestion a shot. Thanks to Hemant for his insights as well. Warren's comments, while appreciated, seem to miss the point - it's beyond my scope of control to "correctly configure" a customer's network stack. It will be their machine, their infrastructure, and configured to work in their environment by their own technicians. They want to just install my software and have it work. What I want to do is configure my own application to limit Live555 to a specific NIC.
- Pat
From sampsa.riikonen at dasys.fi Fri Dec 9 13:55:27 2016
From: sampsa.riikonen at dasys.fi (sampsa)
Date: Fri, 9 Dec 2016 23:55:27 +0200
Subject: [Live-devel] Frames from the future - or maybe not
Message-ID: <98d2c43d-f276-b6b6-731a-41b74d10c4d7@dasys.fi>
Hi,
I am looking at frame/slice timestamps from several rtsp cameras (most
of them chinese brands) and have this strange problem ..
.. the timestamps refer to future, when comparing them to the frame's
arrival time to the client machine (typically in the order of tens of
milliseconds).
i.e. I am comparing the system time at slice arrival to the timestamp
included in the slice.
One way to confirm this, is to modify the good old testRTSPClient.cpp:
void DummySink::afterGettingFrame along these lines:
------------
...
char uSecsStr[30+1];
struct timeval systime;
double systimefloat;
double frametimefloat;
gettimeofday(&systime, NULL);
sprintf(uSecsStr,
"%u.%06u",(unsigned)systime.tv_sec,(unsigned)systime.tv_usec);
systimefloat=strtod(uSecsStr,NULL);
sprintf(uSecsStr, "%u.%06u",
(unsigned)presentationTime.tv_sec,(unsigned)presentationTime.tv_usec);
frametimefloat=strtod(uSecsStr,NULL);
envir() << systimefloat-frametimefloat << " ";
if (fSubsession.rtpSource() != NULL &&
!fSubsession.rtpSource()->hasBeenSynchronizedUsingRTCP()) {
envir() << " !"; // mark the debugging output to indicate that this
presentation time is not RTCP-synchronized
}
...
-----------
I would expect the time-of-arrival of the frame-slice to my client being
greater than the timestamp in the slice (that is supposedly generated in
the rtsp camera)- i.e., frames arrive after they have been generated,
uh.. right? But I get lots of this kind of output:
0.014241 !
-0.004223 !
0.012092 !
0.013395 !
-0.003483 !
0.020684 !
-0.021564 !
0.002708 !
So, there are three options here:
1) The chinese camera manufacturers have created a camera that grabs
video from the future
2) The camera generates faulty timestamps. If so, is this a common
problem with rtsp cameras?
3) live555 has to do some guessing (based on the bitrate?) of the
timestamps, as there seems to be no rtcp sync and that might go wrong
4) I made a mistake here / have not understood something fundamental
Help appreciated to solve this mystery.
Regards,
Sampsa
From finlayson at live555.com Fri Dec 9 14:07:44 2016
From: finlayson at live555.com (Ross Finlayson)
Date: Sat, 10 Dec 2016 11:07:44 +1300
Subject: [Live-devel] Frames from the future - or maybe not
In-Reply-To: <98d2c43d-f276-b6b6-731a-41b74d10c4d7@dasys.fi>
References: <98d2c43d-f276-b6b6-731a-41b74d10c4d7@dasys.fi>
Message-ID: <85CB95E6-02B8-4259-B3D5-1B22227C5C9A@live555.com>
First, you should use the term ?presentation time?, not ?timestamp?. (The word ?timestamp? typically refers to the RTP timestamp, which LIVE555 programmers never need to concern themselves with.)
Yes, it is perfectly normal for video frames? presentation times to be non-monotonic - i.e., not always increasing. The reason for this is that frames are sent in ?decoding order? - i.e., in the order that they are to be fed into a decoder, not the order in which they are displayed on a screen (i.e., the presentation time). Because of ?B frames? (a MPEG term; they might be called something different in H.26*), some video frames depend upon a frame that will be displayed later; therefore the later frame will actually be sent first.
?Nothing to see here. Move along? :-)
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
From sampsa.riikonen at dasys.fi Sat Dec 10 03:45:03 2016
From: sampsa.riikonen at dasys.fi (sampsa)
Date: Sat, 10 Dec 2016 13:45:03 +0200
Subject: [Live-devel] Frames from the future - or maybe not
In-Reply-To: <85CB95E6-02B8-4259-B3D5-1B22227C5C9A@live555.com>
References: <98d2c43d-f276-b6b6-731a-41b74d10c4d7@dasys.fi>
<85CB95E6-02B8-4259-B3D5-1B22227C5C9A@live555.com>
Message-ID:
On 10.12.2016 00:07, Ross Finlayson wrote:
> First, you should use the term ?presentation time?, not ?timestamp?. (The word ?timestamp? typically refers to the RTP timestamp, which LIVE555 programmers never need to concern themselves with.)
>
> Yes, it is perfectly normal for video frames? presentation times to be non-monotonic - i.e., not always increasing. The reason for this is that frames are sent in ?decoding order? - i.e., in the order that they are to be fed into a decoder, not the order in which they are displayed on a screen (i.e., the presentation time). Because of ?B frames? (a MPEG term; they might be called something different in H.26*), some video frames depend upon a frame that will be displayed later; therefore the later frame will actually be sent first.
>
> ?Nothing to see here. Move along? :-)
Thanks Ross.
I guess I did not explain myself clearly enough.
*** It is not about the frames arriving in weird order *** , in fact,
they arrive in monotonic presentation time order (I just use baseline
and I and P frames), like this (number being the presentation timestamp):
13 14 15 16 17 18
All good. But then I check at what time they arrive to the client (by
looking at the client's system clock):
13 arrives to client at client time 13.5 .. i.e. it arrives after the
presentation time, as one would expect (13<13.5)
14 arrives to client at client time 14.5
.. but
15 arrives to client at client time 14.9 .. so it arrives earlier than
the presentation time! (15>14.9)
16 arrives to client at client time 15.5
and again, as one would expect
17 arrives to client at time 17.1
etc.
Trying to synchronize such presentation times with respect to system
time (when visualizing the stream) is impossible.
But maybe I am not supposed to look at the timestamps, just decode and
present the frames on the screen as they arrive..
Regards,
Sampsa
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
From finlayson at live555.com Sat Dec 10 08:53:06 2016
From: finlayson at live555.com (Ross Finlayson)
Date: Sun, 11 Dec 2016 05:53:06 +1300
Subject: [Live-devel] Frames from the future - or maybe not
In-Reply-To:
References: <98d2c43d-f276-b6b6-731a-41b74d10c4d7@dasys.fi>
<85CB95E6-02B8-4259-B3D5-1B22227C5C9A@live555.com>
Message-ID:
> *** It is not about the frames arriving in weird order *** , in fact, they arrive in monotonic presentation time order (I just use baseline and I and P frames), like this (number being the presentation timestamp):
>
> 13 14 15 16 17 18
>
> All good. But then I check at what time they arrive to the client (by looking at the client's system clock):
>
> 13 arrives to client at client time 13.5 .. i.e. it arrives after the presentation time, as one would expect (13<13.5)
> 14 arrives to client at client time 14.5
>
> .. but
>
> 15 arrives to client at client time 14.9 .. so it arrives earlier than the presentation time! (15>14.9)
> 16 arrives to client at client time 15.5
>
> and again, as one would expect
>
> 17 arrives to client at time 17.1
> etc.
>
> Trying to synchronize such presentation times with respect to system time (when visualizing the stream) is impossible.
> But maybe I am not supposed to look at the timestamps, just decode and present the frames on the screen as they arrive..
No, you?re supposed to buffer incoming frames for a short period of time (typically a few 100 ms), and then play them back at the proper rate (based on their presentation times). I.e., you implement a ?jitter buffer?
https://en.wikipedia.org/wiki/Jitter#Jitter_buffers
This is the way all network media players work (at least, all network media players that are any good).
Things get a little more complicated if (as sometimes happens, and which I suspect may be happening in your case) the server?s clock runs at a slightly different rate than the client?s clock. (Remember that the ?presentation time?s are generated by the server, using the server?s clock.) In that case you may find that, over time, your jitter buffer runs dry (if the server?s clock is slower than the client?s), or fills up (if the server?s clock is faster than the client?s). There are various techniques (of varying sophistication) for dealing with this. You might want to look at how VLC implements its jitter buffer.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
From zoell at zoell.us Sat Dec 10 14:54:11 2016
From: zoell at zoell.us (=?UTF-8?B?Wm9sdMOhbiBTemFiw7M=?=)
Date: Sat, 10 Dec 2016 22:54:11 +0000
Subject: [Live-devel] Record every X seconds wtih playlist (piped ffmpeg?)
Message-ID:
Hi Everyone,
I am trying to record a stream via openRTSP. The idea is that I want to
generate a file every 10 seconds with a playlist.
So I tried it using a pipe to ffmpeg, like this:
./openRTSP -v -t rtsp://user:password at hostname:port/path/to/stream | ffmpeg
-i - -codec copy -hls_time 10 /data/recording.m3u8
This is working, it generates recordingXXX.ts files every 10 seconds and
adds them into a m3u8 playlist which is nice, however I also want to attach
the audio stream, so I tried the following:
./openRTSP -4 -t rtsp://user:password at hostname:port/path/to/stream | ffmpeg
-i - -codec copy -hls_time 10 /data/recording.m3u8
But ffmpeg throws the following:
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55965d57a2c0] moov atom not found
pipe:: Invalid data found when processing input
I understand that moov atom should be there but as it arrives directly from
openRTSP it is not there at that time. Is there any way to solve this
problem?
An alternative would be if I could set openRTSP to also output a playlist
if I use the -P 10 option.
Any idea would be really appreciated.
Thank you,
Zoltan
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From finlayson at live555.com Sat Dec 10 15:19:01 2016
From: finlayson at live555.com (Ross Finlayson)
Date: Sun, 11 Dec 2016 12:19:01 +1300
Subject: [Live-devel] Record every X seconds wtih playlist (piped
ffmpeg?)
In-Reply-To:
References:
Message-ID: <37B49FDA-D459-40E5-BB7F-6623E938B3B4@live555.com>
> This is working, it generates recordingXXX.ts files every 10 seconds and adds them into a m3u8 playlist which is nice, however I also want to attach the audio stream, so I tried the following:
>
> ./openRTSP -4 -t rtsp://user:password at hostname:port/path/to/stream | ffmpeg -i - -codec copy -hls_time 10 /data/recording.m3u8
The reason why this doesn?t work is that (because of the stupidity of the ?.mp4? file format) ?.mp4?-format files need to be ?finalized? before they can be played. Therefore, when you give ?openRTSP" the ?-4? or ?-q? option, you can?t pipe its output to something else; instead, you have to let it output a file (and have ?openRTSP? end normally).
> I understand that moov atom should be there but as it arrives directly from openRTSP it is not there at that time.
That?s correct. The ?moov? atom cannot be written until the file is completed (i.e., until ?openRTSP? has ended). (Again, blame the stupidity of the ?.mp4? file format.) See above.
> An alternative would be if I could set openRTSP to also output a playlist if I use the -P 10 option.
Yes, I suggest using the ?-P 10? option (along with ?-4?) to output a ?.mp4?-format file every 10 seconds. Then use some other software (e.g., a simple shell script) to create a ?m3u8?-format playlist for these files.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
From mehdi at msemsar.com Mon Dec 12 12:45:48 2016
From: mehdi at msemsar.com (Mehdi Semsarzadeh)
Date: Mon, 12 Dec 2016 15:45:48 -0500
Subject: [Live-devel] sending metadata within RTP packet
Message-ID:
Hi there,
I want to send some metadata with the rtp packets (e.g. putting them in rtp
extension).
As I searched live555 does not support sending rtp extension so is there
any way to send such metadata in current live555.
Or are you aware of any patch that adds such functionality to live555?
thanks,
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From finlayson at live555.com Mon Dec 12 12:59:12 2016
From: finlayson at live555.com (Ross Finlayson)
Date: Tue, 13 Dec 2016 09:59:12 +1300
Subject: [Live-devel] sending metadata within RTP packet
In-Reply-To:
References:
Message-ID: <6E30129E-ADB5-4AEA-AB23-9B3B44A0CF5B@live555.com>
> I want to send some metadata with the rtp packets (e.g. putting them in rtp extension).
> As I searched live555 does not support sending rtp extension so is there any way to send such metadata in current live555.
As you noted, we currently do not support RTP header extensions.
However, depending on the type of ?metadata? that you wish to send, it may be possible to use an existing RTP (or new) payload format, to send them in separate RTP packets.
For example, if your metadata is in text form, then you may be able to send it using a ?T140TextRTPSink? - i.e., using the RTP payload format defined in RFC 2793.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
From chris at gotowti.com Mon Dec 12 14:38:34 2016
From: chris at gotowti.com (Chris Richardson (WTI))
Date: Mon, 12 Dec 2016 14:38:34 -0800
Subject: [Live-devel] sending metadata within RTP packet
In-Reply-To:
References:
Message-ID: <01a601d254c8$7a8785a0$6f9690e0$@com>
Hello,
> I want to send some metadata with the rtp packets (e.g. putting them in rtp extension).
> As I searched live555 does not support sending rtp extension so is there any way to send such metadata in current live555.
> Or are you aware of any patch that adds such functionality to live555?
Attached you will find a patch implementing support for RTP header extensions in LIVE555.
To use this on the server side, you will need to override the MultiFramedRtpSink::doExtensionHeaderHandling and MultiFramedRtpSink::extensionHeaderSize functions. In your override of doExtensionHeaderHandling, you will need to set the header data via one of the new methods setExtensionHeaderWord or setExtensionHeaderBytes, then call setExtensionHeaderBit to indicate that you placed extension header data.
To use this on the client side, you will need to set a header extension callback by calling setExtensionHeaderCallback on the RTPSource object that LIVE555 creates for you. The callback will then be called when a header extension is processed.
Thanks,
Chris Richardson
WTI
-------------- next part --------------
A non-text attachment was scrubbed...
Name: RTPHeaderExtensions.patch
Type: application/octet-stream
Size: 10486 bytes
Desc: not available
URL:
From liverwurst at owal.io Mon Dec 12 18:30:51 2016
From: liverwurst at owal.io (Virginia Hamm)
Date: Mon, 12 Dec 2016 21:30:51 -0500
Subject: [Live-devel] who can add some functionality to the rtsp proxy for
me (for pay)
Message-ID:
Ross said it was OK to post this!
I need to give temporary access to a running proxy to users, and not only
revoke the access when it times out, but also kill their existing streams.
There are two components here:
1. Add and remove authorizations at runtime.
- The authorization could piggy-back on the existing authdb mechamism
(I already have code that uses grpc (google RPC) to create new
username/passwords; you can reuse that code, or you can write
your own with
your favorite IPC mechanism.
- Alternatively, authorization could happen by generating a long,
random URL and giving that to the user. That is, instead of the
user having
to connect to rtsp://foo:pass at example.com:28882/proxyStream, they
could just as well connect to rtsp://
example.com:28882/piweuroiajsdf8weorpoajdflqopoiykdlgjloiute.
- It does not matter whether the username/password (or url) is
generated by the proxy and communicated to my user-facing service (which
will subsequently forward it to the final user), or whether the service
generates those and passes them to the proxy. They are obviously
functionally equivalent, but one may be easier to implement than
the other.
2. The authorization should come with a time limit, of the order of one
minute. When this time limit expires:
- The credentials of step 1 should be removed from proxy
- Any sessions (so, both the rtsp TCP connection and any video
streams being sent to the user) that were created using those credentials
should be terminated.
Needless to say, the code should come with full tests.
Anyone interested in working on this for a fee? The only condition I impose
is that the code can be released under the LGPL (or whatever Ross tells me
is appropriate to release it under). This means that if you incorporate
anyone else's code, that use should neither violate *their* licensing, nor
should encumber the releasability (is this a word?) under the LGPL.
\/-/
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From chingmlai at rcn.com Thu Dec 15 20:33:02 2016
From: chingmlai at rcn.com (chingmlai at rcn.com)
Date: Thu, 15 Dec 2016 23:33:02 -0500 (EST)
Subject: [Live-devel] Help streaming over HTTP to Apple devices
In-Reply-To: <1254820602.12084231.1481862709570.JavaMail.root@rcn.com>
Message-ID: <1750677708.12084531.1481862782377.JavaMail.root@rcn.com>
Hi,
I have been using Live555 tools to deliver RTSP from h264 and AAC streams or from mp4 file with very satisfied results. My ultimate client is Apple mobile devices. As we know, Apple accepts only HTTP Transport Streaming (TS). Live555 tool can do that. I have downloaded Live555 test files bipbop-gear1-all.ts and bipbop-gear1-all.tsx, and use DynamicRTSPServer to deliver the AV streams through TunnellingOverHTTP. The AvPlayer of iPhone client can receive them and playback them nicely. I also used MPEG2TransportStreamIndexer function to generate tsx file from bipbop-gear1-all.ts. It generated the exact same data as the downloaded bipbop-gear1-all.tsx file. The indexer function is working correctly.
In the next step, I downloaded Live555 test files, test.264 and test.aac. I followed the example of testH264VideoToTransportStream to create a H264VideoStreamFramer from test.264 as the video source. I also created ADTSAudioFileSource from test.acc as the audio source. Then I created a MPEG2TransportStreamFromESSource filter by adding the video source and the audio source to generate the TS file ?out.ts?. The VLC can play this TS file but the audio is silent with error message of ?Multiple blocks per frame in ADTS not supported?. With that in mind, I went ahead to generate the out.tsx file from out.ts. Both file sizes are in expected range. But when they are used to stream over HTTP, the iPhone cannot play it out (it popped a No-Play icon on the screen). However, it apparently had downloaded all the segments and it showed the video duration correctly as 58 seconds.
The Apple AvPlayer error message is brief with Code=-11800 "The operation could not be completed". Apple provides a program, MediaStreamValidator, to debug the transport stream content. When I run that, the error message is also brief with ?Error injecting segment data?. Thus, I cannot determine the source of the problem. In any case, iPhone did not accept the ts file. When I prepared the ts file with the video source only, the AvPlayer could not complete the loading process. It is possibly due to the requirement that both video and audio streams must be present or stream audio only. I cannot stream audio alone, because the indexer function generates nothing from audio ts file.
It is very desirable if LIve555 can make this work. Currently, LIve555 also does not have a function to convert AAC from non-ADTS (as in the mp4 file) to ADTS. It will be very useful for the developers, if Live555 can provide a ?testMP4AudioVideoToTransportStream? program, or the like, to demonstrate that h246 video and AAC can be multiplexed and streamed over HTTP and accepted by Apple devices.
Maybe I missed something or did not do it right. Please help me with instructions or suggestions to make it works.
Holden
From support at vidhvatthamah.com Sat Dec 17 00:26:03 2016
From: support at vidhvatthamah.com (support)
Date: Sat, 17 Dec 2016 13:56:03 +0530
Subject: [Live-devel] Proxy Server using TCP crashes
Message-ID:
Hi
I'm streaming RTSP video using TCP.
When I play the video using VLC, it plays for a while. then it crashes with
access violation. Sometime it takes time to crash.
It crashes in the function
void RTPInterface::removeStreamSocket
when executing this instruction "if ((*streamsPtr)->fStreamSocketNum ==
sockNum."
This is the verbosity output.
ProxyRTSPClient[rtsp://192.168.1.123/mpeg4/]: lost connection to server
('errno': 10057). Resetting...
ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Opening connection to 192.168.1.123, port 554...
When I look deep into the access violation, the stack shows the function
removeStreamSocket is called at SocketDescriptor destructor.
it fetches the rtpinterface pointer.
The pointer is already deleted it is referencing a deleted pointer which
causes access violation.
Could you please help me on this problem.
Thanks
Renganayaki
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From finlayson at live555.com Sat Dec 17 00:54:49 2016
From: finlayson at live555.com (Ross Finlayson)
Date: Sat, 17 Dec 2016 21:54:49 +1300
Subject: [Live-devel] Proxy Server using TCP crashes
In-Reply-To:
References:
Message-ID: <7F0A25BC-A6ED-4456-920A-23EF8B8EC97D@live555.com>
Are you using the latest version of the ?LIVE555 Streaming Media? code? See
http://live555.com/liveMedia/faq.html#latest-version
Several bugs related to RTP/RTCP-over-TCP streaming have been fixed in recent years.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
From support at vidhvatthamah.com Sat Dec 17 03:35:06 2016
From: support at vidhvatthamah.com (support)
Date: Sat, 17 Dec 2016 17:05:06 +0530
Subject: [Live-devel] Proxy Server using TCP crashes
In-Reply-To: <7F0A25BC-A6ED-4456-920A-23EF8B8EC97D@live555.com>
References:
<7F0A25BC-A6ED-4456-920A-23EF8B8EC97D@live555.com>
Message-ID:
Ross
I'm using the latest and greatest.
Thanks
Renganayaki
On Dec 17, 2016 2:43 PM, "Ross Finlayson" wrote:
> Are you using the latest version of the ?LIVE555 Streaming Media? code?
> See
> http://live555.com/liveMedia/faq.html#latest-version
>
> Several bugs related to RTP/RTCP-over-TCP streaming have been fixed in
> recent years.
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From mehdi at msemsar.com Tue Dec 20 08:59:51 2016
From: mehdi at msemsar.com (Mehdi Semsarzadeh)
Date: Tue, 20 Dec 2016 11:59:51 -0500
Subject: [Live-devel] live555 support for SEI or unspecified NAL unit
Message-ID:
Dear All,
I want to embed a custom NAL unit to H264 and stream it using live555.
So I have two questions:
1 - does live555 support streaming h264 bitstream with SEI?
2 - Instead of adding SEI I can add an unspecified NAL (e.g. nal_unit_type
0 or 24..31), does live555 support sending and unspecified NAL unit, as
well?
Thanks,
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From finlayson at live555.com Tue Dec 20 09:22:26 2016
From: finlayson at live555.com (Ross Finlayson)
Date: Wed, 21 Dec 2016 06:22:26 +1300
Subject: [Live-devel] live555 support for SEI or unspecified NAL unit
In-Reply-To:
References:
Message-ID: <44125990-F181-451F-BF94-7B7EE1A96CCF@live555.com>
Our software will probably handle (send and receive) H.264 NAL units with ?unspecified? nal_unit_types - but please don?t do this. Standards exist for a reason. Use an existing standard nal_unit_type, so that other implementations (i.e., not our code) will understand your stream as well.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
From robin.imrie at dotorigin.com Wed Dec 21 03:07:59 2016
From: robin.imrie at dotorigin.com (Robin Imrie)
Date: Wed, 21 Dec 2016 11:07:59 +0000
Subject: [Live-devel] Detecting when a RTSP server has gone offline
Message-ID: <87870756d1b948e5903701fc9e33a337@SEHSTE15D3BE4.hs20.net>
I have adapted the testRTSPClient application so I can see the data received from my RSTP server which sends SOAP packets when various events occur (no audio or video data). These data packets are not continuous. However when I unplug it from the network there isn't any notification that the server is now unavailable.
Do I need to periodically send keep alive messages?
Robin Imrie
Senior Software Developer
[cid:image004.png at 01CE44E1.D07D5C50][cid:image002.png at 01D25B7A.7D438380]
Phone +44 (0) 1428 685861
Email robin.imrie at dotorigin.com
Dot Origin Ltd., Unit 7, Coopers Place Business Park, Combe Lane, Wormley, Godalming, GU8 5SZ, United kingdom
The information in this E-mail and in any attachment is confidential and is intended solely for the addressee. Access, copying, disclosure or use of such information by anyone else is unauthorised.Dot Origin Ltd. is registered in England, registration number 3441848
Registered office: Suite 3pm Midday Court, 20-24 Brighton Road, Sutton, Surrey SM2 5BN, VAT registration number GB 707 571 824
______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 2280 bytes
Desc: image001.png
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 174 bytes
Desc: image002.png
URL:
From daniel.deus at icen.ufpa.br Thu Dec 22 10:47:20 2016
From: daniel.deus at icen.ufpa.br (daniel.deus at icen.ufpa.br)
Date: Thu, 22 Dec 2016 10:47:20 -0800 (PST)
Subject: [Live-devel] Issue with nmake testProgs.mak
Message-ID: <909ebcd843394670b5c2bc7b7d0b88ca@icen.ufpa.br>
Hi,
I want to build the testProgs.mak, but I got this particular error which
I could not to find in over internet yet:
_C:\USERS\DANIEL\DOCUMENTS\LIVE555\TESTPROGS>NMAKE /B -F TESTPROGS.MAK_
_MICROSOFT (R) PROGRAM MAINTENANCE UTILITY VERSION 14.00.24210.0_
_COPYRIGHT (C) MICROSOFT CORPORATION. ALL RIGHTS RESERVED._
_ -OUT:TESTMP3STREAMER.EXE MSVCRT.LIB TESTMP3STREAMER.OBJ
../LIVEMEDIA_
_/LIBLIVEMEDIA.LIB ../GROUPSOCK/LIBGROUPSOCK.LIB
../BASICUSAGEENVIRONMENT/LIBBAS_
_ICUSAGEENVIRONMENT.LIB ../USAGEENVIRONMENT/LIBUSAGEENVIRONMENT.LIB_
_THE FILENAME, DIRECTORY NAME, OR VOLUME LABEL SYNTAX IS INCORRECT._
_NMAKE : FATAL ERROR U1077: '-OUT:TESTMP3STREAMER.EXE' : RETURN CODE
'0X1'_
_STOP._
I found only a forum which was saying that there is a bad quotes (") in
somewhere of testProgs.mak file.
Att,
Daniel
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From erik at montnemery.com Mon Dec 26 08:03:16 2016
From: erik at montnemery.com (Erik Montnemery)
Date: Mon, 26 Dec 2016 17:03:16 +0100
Subject: [Live-devel] When streaming RTP over TCP,
Live555 Proxy Server sometimes does not reconnect to 'back end'
device
Message-ID:
Hi,
Most of the time, the proxy server reconnects to the 'back-end' server
after an error or loss of connection, but every now and then the
following happens:
Error or connection loss is detected, and the reset sequence is performed.
However, after the new connection to the 'back end' server is
initiated but before it is established, the socket's background
handler is reset and the reestablish of the connection to the 'back
end' server is thus hung forever:
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 5)::deregisterRTPInterface(channel 0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 5)::deregisterRTPInterface(channel 255)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor::deregisterRTPInterface setting fDeleteMyselfNext
^-- fDeleteMyselfNext is set
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTPInterface::stopNetworkReading
turnOffBackgroundReadHandling(4294967295)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(4294967295, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTPInterface::stopNetworkReading
turnOffBackgroundReadHandling(4294967295)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(4294967295, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 5)::deregisterRTPInterface(channel 2)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient[(NULL)]: Calling setBaseURL(fOurURL)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient[rtsp://root:xxxxxx at 192.168.0.35/axis-media/media.amp]:
Calling sendDESCRIBE(this)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient::sendDESCRIBE rtspClient == NULL: FALSE
Dec 26 16:20:15 Thor live555ProxyServer[27609]: RTSPClient::sendRequest
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPClient::sendRequest - we need to open a connection
Dec 26 16:20:15 Thor live555ProxyServer[27609]: RTSPClient::openConnection
Dec 26 16:20:15 Thor live555ProxyServer[27609]: Opening connection to
192.168.0.35, port 554...
Dec 26 16:20:15 Thor live555ProxyServer[27609]: Setting up
BackgroundHandling for socket 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPClient::connectToServer setBackgroundHandling(5,
SOCKET_WRITABLE|SOCKET_EXCEPTION, connectionHandler, this)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(5, c, 0x40a250, 0x10b6430)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPClient::sendRequest - connectResult:0
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPClient::sendRequest - connectionIsPending:1
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient[rtsp://root:xxxxxx at 192.168.0.35/axis-media/media.amp]:
Reset done
^-- Reset sequence in ProxyRTSPClient::continueAfterLivenessCommand finished
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor::tcpReadHandler fDeleteMyselfNext set
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor::~SocketDescriptor turnOffBackgroundReadHandling(5)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(5, 0, 0x0, 0x0)
^-- Background handler reset again before the connection is reestablished
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPClient::handleAlternativeRequestByte1 setBackgroundHandling(5,
SOCKET_READABLE|SOCKET_EXCEPTION, incomingDataHandler, this)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(5, a, 0x40d4f0, 0x10b6430)
I guess the problem is related to the reset sequence being run from
within SocketDescriptor::tcpReadHandler?
More context:
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient[rtsp://192.168.0.35/axis-media/media.amp/]: lost
connection to server ('errno': -2). Resetting...
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient[rtsp://192.168.0.35/axis-media/media.amp/]: Calling
reset
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient[rtsp://192.168.0.35/axis-media/media.amp/]:
ProxyRTSPClient::reset enter
Dec 26 16:20:15 Thor live555ProxyServer[27609]: RTSPClient::reset
Dec 26 16:20:15 Thor live555ProxyServer[27609]: RTSPClient::resetTCPSockets
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPClient::resetTCPSockets disableBackgroundHandling(5) 1
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(5, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient[(NULL)]: ProxyRTSPClient::reset leave
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient[(NULL)]: Calling
fOurServerMediaSession.resetDESCRIBEState()
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPServer::RTSPClientSession(0x17eea90)::~RTSPClientSession
session(0x10b6210)->referenceCount(): 1
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 1
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 2
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 9
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 9)::deregisterRTPInterface(channel 0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 9
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 9)::deregisterRTPInterface(channel 1)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 3
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream()
streamState(0x17eea20)->referenceCount(): 1
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 4
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
StreamState(0x17eea20)::~StreamState()
Dec 26 16:20:15 Thor live555ProxyServer[27609]: StreamState::reclaim()
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTPInterface::stopNetworkReading turnOffBackgroundReadHandling(28)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(28, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTPInterface::stopNetworkReading
turnOffBackgroundReadHandling(4294967295)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(4294967295, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 5)::deregisterRTPInterface(channel 0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTPInterface::stopNetworkReading
turnOffBackgroundReadHandling(4294967295)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(4294967295, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 5)::deregisterRTPInterface(channel 0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
fParentSession(0x10b6210)->refcnt: 1
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
subsession: (0) port:52784, codecName: H264, hasRTPSource: YES
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
subsession: (1) port:43362, codecName: MPEG4-GENERIC, hasRTPSource:
YES
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 6
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 1
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 2
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 9
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 9)::deregisterRTPInterface(channel 2)
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 9
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 9)::deregisterRTPInterface(channel 3)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor::deregisterRTPInterface calling delete
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor::~SocketDescriptor turnOffBackgroundReadHandling(9)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(9, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(9, a, 0x402d1a, 0x189b340)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 3
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream()
streamState(0x1894570)->referenceCount(): 1
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 4
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
StreamState(0x1894570)::~StreamState()
Dec 26 16:20:15 Thor live555ProxyServer[27609]: StreamState::reclaim()
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTPInterface::stopNetworkReading turnOffBackgroundReadHandling(31)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(31, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTPInterface::stopNetworkReading
turnOffBackgroundReadHandling(4294967295)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(4294967295, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 5)::deregisterRTPInterface(channel 2)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::closeStreamSource()
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::closeStreamSource()
fParentSession(0x10b6210)->refcnt: 1
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::closeStreamSource()
subsession: (0) port:52784, codecName: H264, hasRTPSource: YES
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::closeStreamSource()
subsession: (1) port:43362, codecName: MPEG4-GENERIC, hasRTPSource:
YES
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
OnDemandServerMediaSubsession::deleteStream() 6
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
GenericMediaServer::ClientSession::~ClientSession
fOurServerMediaSession(0x10b6210)->referenceCount(): 0
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 5)::deregisterRTPInterface(channel 255)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor::deregisterRTPInterface setting fDeleteMyselfNext
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTPInterface::stopNetworkReading
turnOffBackgroundReadHandling(4294967295)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(4294967295, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTPInterface::stopNetworkReading
turnOffBackgroundReadHandling(4294967295)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(4294967295, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 5)::deregisterRTPInterface(channel 0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 5)::deregisterRTPInterface(channel 255)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor::deregisterRTPInterface setting fDeleteMyselfNext
^-- fDeleteMyselfNext is set
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTPInterface::stopNetworkReading
turnOffBackgroundReadHandling(4294967295)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(4294967295, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTPInterface::stopNetworkReading
turnOffBackgroundReadHandling(4294967295)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(4294967295, 0, 0x0, 0x0)
Dec 26 16:20:15 Thor live555ProxyServer[27609]: deregisterSocket sockNum: 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor(socket 5)::deregisterRTPInterface(channel 2)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient[(NULL)]: Calling setBaseURL(fOurURL)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient[rtsp://root:xxxxxx at 192.168.0.35/axis-media/media.amp]:
Calling sendDESCRIBE(this)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient::sendDESCRIBE rtspClient == NULL: FALSE
Dec 26 16:20:15 Thor live555ProxyServer[27609]: RTSPClient::sendRequest
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPClient::sendRequest - we need to open a connection
Dec 26 16:20:15 Thor live555ProxyServer[27609]: RTSPClient::openConnection
Dec 26 16:20:15 Thor live555ProxyServer[27609]: Opening connection to
192.168.0.35, port 554...
Dec 26 16:20:15 Thor live555ProxyServer[27609]: Setting up
BackgroundHandling for socket 5
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPClient::connectToServer setBackgroundHandling(5,
SOCKET_WRITABLE|SOCKET_EXCEPTION, connetionHandler, this)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(5, c, 0x40a250, 0x10b6430)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPClient::sendRequest - connectResult:0
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPClient::sendRequest - connectionIsPending:1
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
ProxyRTSPClient[rtsp://root:xxxxxx at 192.168.0.35/axis-media/media.amp]:
Reset done
^-- Reset sequence in ProxyRTSPClient::continueAfterLivenessCommand finished
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor::tcpReadHandler fDeleteMyselfNext set
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
SocketDescriptor::~SocketDescriptor turnOffBackgroundReadHandling(5)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(5, 0, 0x0, 0x0)
^-- Background handler reset again before the connection is reestablished
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
RTSPClient::handleAlternativeRequestByte1 setBackgroundHandling(5,
SOCKET_READABLE|SOCKET_EXCEPTION, incomingDataHandler, this)
Dec 26 16:20:15 Thor live555ProxyServer[27609]:
BasicTaskScheduler::setBackgroundHandling(5, a, 0x40d4f0, 0x10b6430)
Dec 26 16:20:20 Thor live555ProxyServer[27609]:
RTSPServer::RTSPClientConnection(0x189b340)::~RTSPClientConnection
Dec 26 16:20:20 Thor live555ProxyServer[27609]:
RTSPServer::RTSPClientConnection(0x189b340)::closeSocketsRTSP
Dec 26 16:20:20 Thor live555ProxyServer[27609]:
GenericMediaServer::ClientConnection::closeSockets
disableBackgroundHandling(9)
/Erik
From vivek at youraydio.com Wed Dec 28 22:15:17 2016
From: vivek at youraydio.com (Vivek V)
Date: Thu, 29 Dec 2016 11:45:17 +0530
Subject: [Live-devel] Encoding the Stream in AMR-WB+
Message-ID:
Hi Developers,
We're building an audio streaming application and after through
consideration we finalized on AMR-WB+ (Extended Adaptive Multi-Rate
Wideband), for our application at low bitrates we found this to be the best
codec.(http://www.voiceage.com/AMR-WBplus.html)
I am exploring LIVE 555 Server for a couple days now and trying to setup in
Windows Environment. I would be using VS 2015 for development.
Goal: I want to encode the Wav Files into a AMR-WB+ Stream and Decode it on
the mobile app.
I have seen that LIVE 555 server supports AMR Stream, but will it support
AMR-WB+ encoding if not how can I build one. I have seen the source code at
ANSI-C 26.104.
Any help regarding this would be hugely appreciated.
--
Thanks,
*Vivek*
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From finlayson at live555.com Wed Dec 28 22:37:52 2016
From: finlayson at live555.com (Ross Finlayson)
Date: Thu, 29 Dec 2016 19:37:52 +1300
Subject: [Live-devel] Encoding the Stream in AMR-WB+
In-Reply-To:
References:
Message-ID:
> I have seen that LIVE 555 server supports AMR Stream, but will it support AMR-WB+ encoding
Yes, it should. If your AMR input source is a file, or a pipe (i.e., ?stdin?), then you can use the existing ?AMRAudioFileServerMediaSubsession? class. Otherwise, you?ll need to define your own ?OnDemandServerMediaSubsession? subclass
see this FAQ: http://live555.com/liveMedia/faq.html#liveInput-unicast
that uses your own subclass of the ?AMRAudioSource? abstract base class.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/