Please do not post the same thing multiple times. The board software automatically flags certain posts as needing moderator attention. This happens the most often for new users. I'm pretty sure this is made clear at the time you attempt to post. Posting the same thing over and over again just makes that many more posts the moderators have to weed through later. This makes us sad. Don't make us sad. If your post/thread doesn't appear, just wait a while. Don't post it again. If it hasn't shown up by the next day, then you can try again. I normally go through posts in the mornings, and try to check a few times throughout the day, but I'm not here 24/7. There will typically be a significant delay before posts are approved. Just be patient.
This app uses Live555 and FFMPEG to stream live video and audio to iphone via RTSP / RTP . Download the free app (link to iTunes at dropcam.com) to your iphone and view one of the public IP cameras, you'll see how smooth the live video is. I used Wireshark to sniff the packets from one of the cameras and was surprised to find the stream used RTP / RTSP / RTCP even noticed RTMPT - tunneled? protocol's all working fine on the iphone.
Does that mean that the iphone iOS supports RTSP stack but not mobileSafari?
No comments or thoughts on how this actually works?
I thought more developers out there would be interested to see RTSP streaming working on the iphone iOS. Looking at the source files on github I've noticed that they use CHDataStructures framework. What does this framework do?
It looks like Dropcam's repository at github only make's available the modified code as required by the LGPLv2.1 for the respective open source projects that they used code from. I'm fairly new to xcode and iphone sdk development so correct me if I'm wrong but it looks like the folders inside the lib/ directory are each separate static libraries (actually ffmpeg is built inside of and a direct dependent of DecoderWrapper, Live555 is a dependent of RTSPClient). So when you compile all of the included libraries you should end up with 4 static libraries: libCHDataStructures.a, libDecoderWrapper.a, libJSON.a, and libRTSPClient.a. Linking all these together wont produce an executable nor will it produce the libDropcam.a library that they included at github. It will give a developer a good starting point/head start on using these libraries in their own projects. I'm especially interested in the RTSPClient functionality.
Have any of you more seasoned developers had a chance to look through these libraries? Are they usable in other projects? Looking at all the post's regarding the use of FFMPEG in iphone apps, you would think the devs would be all over this example of FFMPEG working without the need for an SDL library.
I know, I know, looks like I want someone to do all the hard work for me and then post their code on how they got their iphone app to play any video (ffmpeg?) over any network (Live555?) Just kidding.... Although an example of how to get MPmovieplayer.framework working with ffmpeg would help.
Received PLAY response: RTSP/1.0 200 OK Server: QTSS/6.0.2 (Build/526.2; Platform/MacOSX; Release/Mac OS X Server; ) Cseq: 5 Session: 4196043102457707518 Range: npt=now- RTP-Info: url=rtsp://video3.americafree.tv/AFTVComedyH2641000.sdp/trackID=1,url=rtsp://video3.americafree.tv/AFTVComedyH2641000.sdp/trackID=2
If packet capture from vlc, the log is the same.
Vlc play after the call teardown and start from scratch. the second time you play vlc connect.
The problem is that if I keep all the packages as they come in a file that file will not play any player.
What happens after a packet capture? (afterGettingFrame after)
I'm capturing packets too. I'm trying to decode them but I think I'm missing a step. In the Live555 documentation I have read about : H264VideoStreamFramer that needs to be subclassed to provide a specific implementation for currentNALUnitEndsAccessUnit(). But, I don't know where this fits into the process. I wonder if the stream I'm getting without this is worthless. Also, I notice every other "frame" is length 2. The other frames being much larger. Is this small frame audio?
Does anyone have any knowledge of this? Would anyone like to get together and compare notes. I seriously need to get this working.
I'm capturing packets too. I'm trying to decode them but I think I'm missing a step. In the Live555 documentation I have read about : H264VideoStreamFramer that needs to be subclassed to provide a specific implementation for currentNALUnitEndsAccessUnit(). But, I don't know where this fits into the process. I wonder if the stream I'm getting without this is worthless. Also, I notice every other "frame" is length 2. The other frames being much larger. Is this small frame audio?
Does anyone have any knowledge of this? Would anyone like to get together and compare notes. I seriously need to get this working.
Also, I've compared the functionality of ffmpeg examples with DecoderWrapper. There are structures in the ffmpeg examples that are no where to be found in DecoderWrapper, such as AVFormatContext. In all the other examples I've read, this structure seems pretty important. Does anyone know if decoding can be accomplished without this. Perhaps they are getting info from the sdp. Has anyone else noticed this and do you have any thoughts about it?
The Dropcam App for iPhone only connects to Dropcam branded IP cameras. The cameras in question (Axis M1031?) have been modified with custom firmware in an effort to make the network set-up process much easier for the end user. The firmware also reduces the various streaming options normally found on that model camera to down to just one 320x240 H.264/AAC stream over RTP/RTSP thus making the video more network friendly.
Maybe the packets you guys are capturing are a different flavor of h264 than that of the type coming from the Dropcam cameras, and Decoder/Wrapper doesn't recognize it.
The FFmpeg build script that the Dropcam app uses doesn't leave much wiggle room as far as decoding or demuxing goes:
hi, my idea is capture packages and stored in a file. I think that if the issuer is h264 file would have no problem to play with MPMoviePlayerController.
problems: 1 .- order of the packets. 2 .- packages together 3 .- file headers
Is this possible?
[email]ewpaus@pobox.com[/email]: if you want I send my project. I am very interested in progress
nickleneck:testing video is h264. --> rtsp: / / video3.americafree.tv/AFTVComedyH2641000.sdp
I'm very interested in progress too. Saving it to a file will not work for me because it is very importance that I keep the latency as low as possible.
Recently I have been using the mplayer code as a guide to what I need to do. I've found the functionality matches up very well between the two projects.
I was going with the idea that they left something out and I needed to figure out what it is. Now I think that everything is there, I just have to figure out how to use it.
The code I'm looking at in mplayer is in the libmpdemux dir. It's demux_rtp_codec.cpp and deumx_rtp.cpp. The rtsp functionality seems to be in demux_rtp, while the h264 stuff is in demux_rtp_codec.
As far as understanding the code, I gotten as far as setting up the MediaSubsessions. It looks like the next step is decoding. But, I'm hitting a wall.
As for my video source, I'm just streaming/transcoding a .mov file. But, the transcoding looks very similar to the ffmpeg script that was described just above.
Pety - So nice to hear of your success. Open source projects are not for the faint of heart. If you have any insights - like the steps involved in decoding H264, please share. Thanks in advance, Estelle
Pety;221305 said:
iXen what´s your problem man?? We have another app that uses this project. Thanks to all the people from Dropcam
this is not an error, is only the last value of "context-> env-> getResultMsg ()"
if call "- (void) didReceiveFrame: (NSData *) frameData presentationTime: (NSDate *) presentationTime" I think that everything is correct in reception of data
this is not an error, is only the last value of "context-> env-> getResultMsg ()"
if call "- (void) didReceiveFrame: (NSData *) frameData presentationTime: (NSDate *) presentationTime" I think that everything is correct in reception of data
I'm capturing packets too. I'm trying to decode them but I think I'm missing a step. In the Live555 documentation I have read about : H264VideoStreamFramer that needs to be subclassed to provide a specific implementation for currentNALUnitEndsAccessUnit(). But, I don't know where this fits into the process. I wonder if the stream I'm getting without this is worthless. Also, I notice every other "frame" is length 2. The other frames being much larger. Is this small frame audio?
Does anyone have any knowledge of this? Would anyone like to get together and compare notes. I seriously need to get this working.
Hi. How did you capture the frame? I'm trying it and can see that afterGettingFrame method has never called. What have I done to make that method works?
Replies
I thought more developers out there would be interested to see RTSP streaming working on the iphone iOS. Looking at the source files on github I've noticed that they use CHDataStructures framework. What does this framework do?
Thanks in advance
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like Awesome- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeWe have another app that uses this project. Thanks to all the people from Dropcam
Bye!
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like Awesomelike iXen,, some help to understand how to work with would be appreciated
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like Awesome- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like Awesomei've compiled the framework and add it successfully to a test project,
and iam now trying to understand the API
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeI also compiled the framework and add it to a test project successfully, but do not understand the api.
which would have to show the video?
RTSPClientSession *session = [[RTSPClientSession alloc] initWithURL:[NSURL URLWithString:@"rtsp://video3.americafree.tv/AFTVComedyH2641000.sdp"]];
[session setup];
[session play];
this code does not work.
Me too trying to understand the API
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeHave any of you more seasoned developers had a chance to look through these libraries? Are they usable in other projects? Looking at all the post's regarding the use of FFMPEG in iphone apps, you would think the devs would be all over this example of FFMPEG working without the need for an SDL library.
I know, I know, looks like I want someone to do all the hard work for me and then post their code on how they got their iphone app to play any video (ffmpeg?) over any network (Live555?) Just kidding.... Although an example of how to get MPmovieplayer.framework working with ffmpeg would help.
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeI enabled the mode verbosite, and this is the log. If packet capture from vlc, the log is the same.
Vlc play after the call teardown and start from scratch.
the second time you play vlc connect.
I do play and do nothing
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeThe problem is that if I keep all the packages as they come in a file that file will not play any player.
What happens after a packet capture? (afterGettingFrame after)
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeH264VideoStreamFramer that needs to be subclassed to provide a specific implementation for currentNALUnitEndsAccessUnit(). But, I don't know where this fits into the process. I wonder if the stream I'm getting without this is worthless. Also, I notice every other "frame" is length 2. The other frames being much larger. Is this small frame audio?
Does anyone have any knowledge of this? Would anyone like to get together and compare notes. I seriously need to get this working.
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like Awesome- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeThe cameras in question (Axis M1031?) have been modified with custom
firmware in an effort to make the network set-up process much easier for
the end user. The firmware also reduces the various streaming options
normally found on that model camera to down to just one 320x240
H.264/AAC stream over RTP/RTSP thus making the video more network
friendly.
Maybe the packets you guys are capturing are a different flavor of h264
than that of the type coming from the Dropcam cameras, and
Decoder/Wrapper doesn't recognize it.
The FFmpeg build script that the Dropcam app uses doesn't leave much
wiggle room as far as decoding or demuxing goes:
COMMON_PARAMS="--disable-doc --disable-ffplay --disable-ffserver \
--disable-ipv6 --disable-encoders --disable-decoders --disable-hwaccels \
--disable-muxers --disable-demuxers --disable-parsers --disable-bsfs \
--disable-protocols --disable-indevs --disable-outdevs --disable-devices \
--disable-filters \
--enable-encoder=rawvideo \
--enable-decoder=h264 \
--enable-muxer=rawvideo \
--enable-demuxer=h264 \
--enable-parser=h264 \
--disable-zlib --disable-bzlib"
I see a lot of --disable
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeI think that if the issuer is h264 file would have no problem to play with MPMoviePlayerController.
problems:
1 .- order of the packets.
2 .- packages together
3 .- file headers
Is this possible?
[email]ewpaus@pobox.com[/email]: if you want I send my project. I am very interested in progress
nickleneck:testing video is h264. --> rtsp: / / video3.americafree.tv/AFTVComedyH2641000.sdp
helppppppp!!!!
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeRecently I have been using the mplayer code as a guide to what I need to do. I've found the functionality matches up very well between the two projects.
I was going with the idea that they left something out and I needed to figure out what it is. Now I think that everything is there, I just have to figure out how to use it.
The code I'm looking at in mplayer is in the libmpdemux dir. It's demux_rtp_codec.cpp and deumx_rtp.cpp. The rtsp functionality seems to be in demux_rtp, while the h264 stuff is in demux_rtp_codec.
As far as understanding the code, I gotten as far as setting up the MediaSubsessions. It looks like the next step is decoding. But, I'm hitting a wall.
As for my video source, I'm just streaming/transcoding a .mov file. But, the transcoding looks very similar to the ffmpeg script that was described just above.
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeMPlayer - The Movie Player
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeSo nice to hear of your success. Open source projects are not for the faint of heart. If you have any insights - like the steps involved in decoding H264, please share.
Thanks in advance,
Estelle
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeNo accelerated colorspace conversion found from yuv420p to rgba.
-e
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeI still do not make much progress.
call me didReceiveFrame,what are the steps to display video?
if I have to do decoding, that's my problem.
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like Awesome- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like Awesomeerror: --> liveMedia7 (with AFTVComedyH2641000.sdp stream)
error: --> liveMedia8 (with live_3gpp.sdp stream)
Any thoughts?
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like Awesomeif call "- (void) didReceiveFrame: (NSData *) frameData presentationTime: (NSDate *) presentationTime" I think that everything is correct in reception of data
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like Awesome- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like Awesome- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like AwesomeThanks.
- Spam
- Abuse
- Troll
0 · Off Topic Insightful Disagree Dislike Like Awesome