[Live-devel] testRTSPClient / H.264 Network Camera Stream
THANKS!!! For a VERY NICE library. I am experimenting with the testRTSPClient app to develop a DirectShow source filter to connect to a network camera outputting an H.264 video stream. The app successfully connects to the camera and shows the following continuous output: ... Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.117119 Stream "rtsp://192.168.1.7:65534/videoSub/"; video/H264:Received 411 bytes. Presentation time: 1365102232.186298 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.226244 Stream "rtsp://192.168.1.7:65534/videoSub/"; video/H264:Received 458 bytes. Presentation time: 1365102232.375975 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.359869 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.465869 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.585744 Stream "rtsp://192.168.1.7:65534/videoSub/"; video/H264:Received 950 bytes. Presentation time: 1365102232.666086 ... Initially, I am only interested in the video portion of the stream. Using the library, what is the most efficient way to get access to the H.264 portion of the stream so that I can copy it downstream in the FillBuffer(..) method of my source filter? I have attempted to browse the code to learn how/where to do this, but it is not obvious to me;-(( I have (+-)intermediate level C++ skills at best, so any thoughts, suggestions, constructive criticism are(is) greatly appreciated. Thanks again for a VERY nice library. Tom Fisher EE ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel
Re: [Live-devel] Need your professional opinion on upgrading our product to use your streaming technology
Aren't such product(s) already available e.g. http://foscam.us/ and others? Tom Fisher From: Amir Guterman Sent: Monday, April 08, 2013 2:29 PM To: live-de...@ns.live555.com Subject: [Live-devel] Need your professional opinion on upgrading our product to use your streaming technology Hi, I would like to receive your professional opinion on upgrading the current streaming technology that we use for our product today, by using your SDK's and libraries for streaming to mobile devices. Brief We are developing a product that will require a low-latency live video camera feed from home to a mobile device, in such way that the user will be able to look at the product at any given time as long as the product is located near a computer with a USB camera connected to it. So that generally the customers who buy our product, will also receive a software (for Mac or PC), that will stream their webcam or IP camera to their phone or tablet over 3G or WiFi, we will also provide an app for each mobile platform (Android, iOS, Windows Phone 8) that can play that stream. The server side should allow only to 1 client to play the stream at a time (encryption/authentication is an accepted solution for that matter) Current technology in use We are using Adobe Cirrus (aka Stratus) as the current technology for transferring low-latency h.264 p2p live video streaming packed in RTMFP protocol to mobile devices which support Adobe AIR such as Android smartphones and tablets, iPhone and iPad. This works perfectly, however, Adobe AIR platform is not supported on Windows Phone 8. We want to replace the Adobe technology, with any other solution that you can offer me that supports the video formats and protocols that are compatible with Android, iOS and WP8 enabled devices. The modules that we need The server-side software: Purpose - To stream the video feed from a camera device (e.g connected USB webcam or an IP camera on the local network), UI interface for changing the captured device, and connect to a db on a public server to keep track of the user's ip at home, so the mobile app will know where to connect. On Mac: We use XCode to develop cocoa UI application, that will interact/integrate with the modules that you'll provide me (hopefully) in Objective-C. On PC: We use Visual Studio .NET to develop the WinForm application, that will also interact/integrate with the modules that you'll provide me in a form of a API, SDK or even a command line utility (Java solution is also welcome). The client-side app (iPhone/iPad/Android phones & tablets/WP8): Purpose - To play the live video stream which broadcasted from home over 3G network as well as over WiFi. For Android: We use Eclipse and the ADT SDK. For iOS: We use XCode to develop the iPhone/iPad app. For WP8: We use Visual Studio 2012 for Windows Phone. * I assume that If we choose to work for example with H.264 or H.263 (3GPP, MPEG-4) which is supported in most operating systems and mobile devices, your solution will be to provide us with the SDK used for encoding and streaming the live video (from webcam) as a part of the server-side software, and we will use the core functions that come with each platform SDK (Android/iOS/WP8) for decoding and playing the specified stream. (e.g Android SDK has the VideoView class which is video player control that can play RTSP,MPEG-2, H.263, H.264 streams from a remote url) Best Regards, -- Amir Guterman ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel
Re: [Live-devel] testRTSPClient / H.264 Network Camera Stream
Reading further on your site I see that you may need the SDP description from my camera stream. BTW, I am getting some very jerky but clear video frames just by passing the NAL units directly to a MS DTV-DVD Video Decoder filter in DirectShow. I am soo close! v=0 o=- 1365522147122142 1 IN IP4 192.168.1.2 s=IP Camera Video i=videoMain t=0 0 a=tool:LIVE555 Streaming Media v2013.01.25 a=type:broadcast a=control:* a=range:npt=0- a=x-qt-text-nam:IP Camera Video a=x-qt-text-inf:videoMain m=video 0 RTP/AVP 96 c=IN IP4 0.0.0.0 b=AS:96 a=rtpmap:96 H264/9 a=control:track1 m=audio 0 RTP/AVP 0 c=IN IP4 0.0.0.0 b=AS:64 a=control:track2 Thanks again for any help. Tom Fisher From: tboonefis...@clear.net Sent: Tuesday, April 09, 2013 2:41 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] testRTSPClient / H.264 Network Camera Stream THANKS for the help. Reading the FAQ I see: “ If you are receiving H.264 video data, there is one more thing that you have to do before you start feeding frames to your decoder. H.264 streams have out-of-band configuration information ("SPS" and "PPS" NAL units) that you may need to feed to the decoder to initialize it. To get this information, call "MediaSubsession::fmtp_spropparametersets()" (on the video 'subsession' object). This will give you a (ASCII) character string. You can then pass this to "parseSPropParameterSets()" (defined in the file "include/H264VideoRTPSource.hh"), to generate binary NAL units for your decoder.” Could you be more specific as to when/where that this needs to be done? Using the DummySink example, when I attempt to call these methods as shown below I get nada... DummySink::DummySink(UsageEnvironment& env, MediaSubsession& subsession, char const* streamId) : MediaSink(env), fSubsession(subsession) { fStreamId = strDup(streamId); fReceiveBuffer = new u_int8_t[DUMMY_SINK_RECEIVE_BUFFER_SIZE]; const char* sps = fSubsession.fmtp_spropparametersets();/// returns NULL unsigned n_records=0; SPropRecord* pSPropRecord = parseSPropParameterSets( fSubsession.fmtp_spropparametersets(), n_records ); } Thanks again for ANY help... Tom Fisher From: Ross Finlayson Sent: Friday, April 05, 2013 7:10 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] testRTSPClient / H.264 Network Camera Stream I am experimenting with the testRTSPClient app to develop a DirectShow source filter to connect to a network camera outputting an H.264 video stream. The app successfully connects to the camera and shows the following continuous output: ... Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.117119 Stream "rtsp://192.168.1.7:65534/videoSub/"; video/H264:Received 411 bytes. Presentation time: 1365102232.186298 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.226244 Stream "rtsp://192.168.1.7:65534/videoSub/"; video/H264:Received 458 bytes. Presentation time: 1365102232.375975 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.359869 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.465869 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.585744 Stream "rtsp://192.168.1.7:65534/videoSub/"; video/H264:Received 950 bytes. Presentation time: 1365102232.666086 ... Initially, I am only interested in the video portion of the stream. Using the library, what is the most efficient way to get access to the H.264 portion of the stream Because this is a Frequently Asked Question, I have now added an entry for it to the FAQ. See: http://www.live555.com/liveMedia/faq.html#testRTSPClient-how-to-decode-data Ross Finlayson Live Networks, Inc. http://www.live555.com/ ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel
Re: [Live-devel] testRTSPClient / H.264 Network Camera Stream
It must also be VERY frustrating to see these companies making $$$ from your very nice work !!! Tom Fisher -Original Message- From: tboonefis...@clear.net Sent: Tuesday, April 09, 2013 6:05 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] testRTSPClient / H.264 Network Camera Stream This is BAD news as the camera is: http://foscam.us/products/foscam-fi9821w-megapixel-wireless-ip-camera.html I am just an end-user and thus probably have little influence on them. I will send them the info that you suggest but I will be very surprised IF they respond. They have their own ‘plug-in’ that works pretty well in IE and other apps. Are there any other possible work-arounds? Is possible that they are using MEDIASUBTYPE_AVC1 'AVC1' H.264(without start codes)? I did try this(GetMediatype()), but I have no decoders that will connect to that.ughh. Thanks very much for your help... Tom Fisher Dallas From: Ross Finlayson Sent: Tuesday, April 09, 2013 5:38 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] testRTSPClient / H.264 Network Camera Stream Reading further on your site I see that you may need the SDP description from my camera stream. [...] v=0 o=- 1365522147122142 1 IN IP4 192.168.1.2 s=IP Camera Video i=videoMain t=0 0 a=tool:LIVE555 Streaming Media v2013.01.25 a=type:broadcast a=control:* a=range:npt=0- a=x-qt-text-nam:IP Camera Video a=x-qt-text-inf:videoMain m=video 0 RTP/AVP 96 c=IN IP4 0.0.0.0 b=AS:96 a=rtpmap:96 H264/9 a=control:track1 m=audio 0 RTP/AVP 0 c=IN IP4 0.0.0.0 b=AS:64 a=control:track2 OK, the bug here is in your server - i.e., the camera; not the client. The camera (server) isn't including a "sprop-parameter-strings" parameter (in a "a=fmtp:96..." line) in the SDP description. Fortunately, however, I see that the camera (server) is also implemented using our software, so it should be easy to fix. Please tell whoever developed your camera to: (1) Upgrade to the latest version of the "LIVE555 Streaming Media" software, and (2) Either insert "SPS" and "PPS" NAL units at the start of the H.264 Video stream (that it feeds into the "H264VideoRTPSink" object, or else change the way that the "H264VideoRTPSink" object is created - to use one of the forms of the "H264VideoRTPSink::createNew()" function that take "SPS"/"PPS" NAL unit information as a parameter (either as raw binary NAL units, or a "sPropParameterSetsStr" string). Ross Finlayson Live Networks, Inc. http://www.live555.com/ ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel
Re: [Live-devel] testRTSPClient / H.264 Network Camera Stream
Thanks Colin. The fact that I do get some very jerky but clear video rendered, does make me suspicious that I’m not implementing my DS source filter correctly. In particular I’m looking closely at GetMediaType(..), etc method(s). As I said, my skills are weak/intermediate in this stuff, so any tips from the “Pros” are greatly appreciated. Question...is it OK for me to post some of my DirectShow code here so that you might be able so see if/where I’m going wrong ??? Tom Fisher From: Colin Caughie Sent: Wednesday, April 10, 2013 12:26 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] testRTSPClient / H.264 Network Camera Stream I’ve also worked with cameras that don’t send sprop-parameter-sets in the SDP file (but not using the Live555 client); this shouldn’t be a problem as long as the camera does send SPS and PPS in band. The fact that you are able to decode and display the raw NALUs using DirectShow would indicate that it is (decoding would fail otherwise), so perhaps your problem is elsewhere? Colin Caughie Chief Software Architect (509) 232-5261 ext 5914 What is heroic customer service? ** NOTICE ** The information contained in this e-mail and any attached documents may be privileged, confidential and protected from disclosure. If you are not the intended recipient you may not read, copy, distribute or use this information. If you have received this communication in error, please notify the sender immediately by replying to this message and then delete it from your system. From: live-devel-boun...@ns.live555.com [mailto:live-devel-boun...@ns.live555.com] On Behalf Of Ross Finlayson Sent: Tuesday, April 09, 2013 5:05 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] testRTSPClient / H.264 Network Camera Stream It must also be VERY frustrating to see these companies making $$$ from your very nice work !!! On the contrary - I am *happy* to see many companies making successful use of this software. That's why I made it available. This is BAD news as the camera is: http://foscam.us/products/foscam-fi9821w-megapixel-wireless-ip-camera.html What does frustrate me, however, is that so many of the companies that have successfully used this software in their products have avoided making use of the support offered by this mailing list. In particular, nobody from "Foscam" appears to be on this mailing list. I am just an end-user and thus probably have little influence on them. I will send them the info that you suggest but I will be very surprised IF they respond. Please also check whether you have the latest firmware for your camera. Firmware upgrades for Foscam camera can apparently be downloaded from: http://foscam.us/firmware Are there any other possible work-arounds? No. The problem is with the camera. Ross Finlayson Live Networks, Inc. http://www.live555.com/ ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel
Re: [Live-devel] How To Decode This Camera Stream
FINALLY got it working!! Typical rookie mistakes including but not limited to trying to use a 32bit FFDShow filter in a 64bit app!! DUH! When I substituted the FFDShow MP4 decoder for the MS DTV-DVD Video Decoder, everything works well. Now just need to clean up the code. Actually works better and is faster than VLC for the same rtsp URL. Thanks again for a very nice library and your tolerance of a rookie... Tom Fisher MD EE -Original Message- From: tboonefis...@clear.net Sent: Friday, April 12, 2013 9:58 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] How To Decode This Camera Stream As I previously posted, I am trying to write a Direct Show source filter using code adapted from the example testRTSPClient to display the video stream from the following Foscam camera. As you pointed out, Foscam is using an outdated version of the Live555 server that is not sending appropriate start codes. Despite this, when I pass the NAL units directly from my source filter to a connected Microsoft DTV-DVD Video Decoder, I get "good" video for the first few seconds and then the frames start getting "mixed up" for lack of a better description. The video is displayed correctly albeit with a great amount of latency when using VLC. I will be happy to post the appropriate segments of my code here if anyone can help me with it. It will be greatly appreciated. The following link is a live demo stream from the same model camera at Foscam so anyone interested can take a look at what I'm dealing with: rtsp://user:user@218.17.160.187:8082/videoMain Tom Fisher ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel
Re: [Live-devel] Support required for Live555 Media Server
What is the best *free* DirectShow H.264 decoder filter? TF From: Ross Finlayson Sent: Saturday, April 13, 2013 9:16 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] Support required for Live555 Media Server 1. We want to run two instances of Live555 Media Server in a system simultaneously with two different IP addresses. Example one with 192.168.1.2 and other with 10.0.0.2. Is it possible and how can we achieve this? You *might* be able to do this by setting "SendingInterfaceAddr" and "ReceivingInterfaceAddr" in the instance of the server that you want to use the non-default (i.e., non-multicast-enabled) IP address. This does not work reliably on all OS's, however. 2. Can you please tell us whether running Live555 Media Sever on different configuration systems will affect the number of RTSP streams it can stream to multiple clients. I've already answered this. For the last time: http://www.live555.com/liveMedia/faq.html#scalability Is Live555 Media Server is CPU intensive application? No. Ross Finlayson Live Networks, Inc. http://www.live555.com/ ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel
Re: [Live-devel] Access violationduring ReorderPacketBuffer::freepacket
>Unfortunately the cameras themselves are purchased both by us and resold and out of band by the customer. >Some can and are willing to update, others are not even open to it. >However, if the camera is using the "LIVE555 Streaming Media" software, then - >under the terms of the LGPL - their manufacturer *must* provide a way to >upgrade this software. Please remind them of this. >In any case, the only reason why you ever saw the "Hit limit when reading >incoming packet over TCP" was because the camera's data rate exceeded the >capacity of the network (between the camera and >your >client). If this >happens, you WILL lose data. Nothing - not even the use of RTP-over-TCP - can >prevent this. (Upgrading the camera's software will merely make the data loss >happen a little more >cleanly.) >If your camera's data rate exceeds the capacity of your network, you >(obviously) need to reduce the camera's data rate. So this applies to Foscam? I forwarded your comments to their tech support and so far, have no response. T Fisher___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel
Re: [Live-devel] testRTSPClient / H.264 Network Camera Stream
From: Ross Finlayson Sent: Friday, April 05, 2013 7:10 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] testRTSPClient / H.264 Network Camera Stream I am experimenting with the testRTSPClient app to develop a DirectShow source filter to connect to a network camera outputting an H.264 video stream. The app successfully connects to the camera and shows the following continuous output: ... Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.117119 Stream "rtsp://192.168.1.7:65534/videoSub/"; video/H264:Received 411 bytes. Presentation time: 1365102232.186298 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.226244 Stream "rtsp://192.168.1.7:65534/videoSub/"; video/H264:Received 458 bytes. Presentation time: 1365102232.375975 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.359869 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.465869 Stream "rtsp://192.168.1.7:65534/videoSub/"; audio/PCMU:Received 960 bytes. Presentation time: 1365102232.585744 Stream "rtsp://192.168.1.7:65534/videoSub/"; video/H264:Received 950 bytes. Presentation time: 1365102232.666086 ... Initially, I am only interested in the video portion of the stream. Using the library, what is the most efficient way to get access to the H.264 portion of the stream >>Because this is a Frequently Asked Question, I have now added an entry for it >>to the FAQ. See: >>http://www.live555.com/liveMedia/faq.html#testRTSPClient-how-to-decode-data Re-reading your explanation above, in my ContinueAfterSETUP method, should I do the following: unsigned n_records=0; const char* sps = scs.subsession->fmtp_spropparametersets(); SPropRecord* pSPropRecord = parseSPropParameterSets( sps, n_records ); Now what do I send to my downstream decoder ?? Thanks, Tom Fisher ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel
[Live-devel] Is RealAudio Or SaveFrom.net Using Live555 ?
Ross, do you happen to know if either http://www.real.com/realdownloader or http://en.savefrom.net/ are using Live555? The reason that I ask is that Realdownloader is having a problem with YouTube streams that SaveFrom is not. The .mp4 files that Realdownloader creates from YouTube are missing audio but will play with VLC. They will not play at all with Win7 MediaPlayer. SaveFrom downloads work fine with MP & VLC. Of course, Real blames the problem on YouTube and states that only their RealPlayer will play the files;-) Your thoughts? Tom Fisher ___ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel