some of you have been asking about the features of the new Fobs version, so I think I'd better write something about it. First of all, next version is mainly an update to adapt to changes in the ffmpeg API and also to fix some of the known bugs. The main improvements to the code will be:
- J2SE 1.5 compatibility: Don't ask me why but Fobs suddenly seems to work fine with J2SE 1.5. That's great news!
- RTP reception: explained in a previous post. It's trickier than I though and is still not working.... Maybe I will finally leave this to the next version.
Fobs is still quite unstable and my priority is to make it as reliable as possible, even if that means loosing some functionality. The other great challenge is to get encoding working in JMF, but that won't be possible in the near future.
I need to release the new version before August (as well as my holidays) ends. I hope the new version becomes a little bit more useful.
Thanks to all of you guys for using fobs!
Cheers,
Jose San Pedro
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
>>- RTP reception: explained in a previous post. It's trickier than I though and is still not working.... Maybe I will finally leave this to the next version.
I can work on this issue full time for the next week, so if you'd like to share where you are at currently (on or off of the forum), I'd be glad to help.
Thanks,
Nikolai
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
well.... after many tests I've been unable to get ffmpeg receiving RTP streams, which is of course the first step before trying to get them in Fobs.
I've updated my ffmpeg version to the latest CVS and that broke the compatibility, so I've been kind of fixing it again. Everything works fine now and I've improved the audio seek routines for speed.
My progress till now.
Cheers,
Jose San Pedro
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I can work on this as well. I've been trying to get MPEG4 video streaming working using Sun's RTP framework (I haven't been impressed with ffmpeg's built-in RTP support in its stand-alone player and Windows support is absolutely necessary for me). No success yet. MPlayer and VLC use the LIVE.COM streaming library for RTP streaming. That's another option.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm going to spend the day evaluating the different alternetives we've got to get RTP reception working. I'll post my conclusions so that we can try to work on them together. Thanks a lot for willing to contribute to Fobs Project!!!
Cheers,
Jose San Pedro
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
About RTP, I've been unable to get a single stream playing using JMStudio without fobs, and it is not a matter of codecs but a buggy implementation of the protocol in SUN classes. At least, that is what it seems. Using ffmpeg, I cannot read a RTSP stream either, even though rtsp:// appears as a supported protocol when typing 'ffmpeg -formats'. My conclusion: not possible to do.
I've been updating a little bit more the stand_alone_codec (or decoder, because it is just a decoder). The problems related to this decoder come from the fact that libav uses data from the format itself to initialize some parameters of the codec (such as extradata, and others). That means AVCodecContext is not properly initialized calling just avcodec_alloc_context, which is what stand_alone_codec does. This doesn't seem to be an issue when playing AVI files, but it definetly is when playing MOV/SVQ3. Anyway, while the decoder is able to decode at least one codec, that is enough to mantain it in the project.
My holidays will end soon so I think I'm gonna close the current version as it is. Maybe I'll work a little bit in playback performance this weekend. Expect the brand new version (best stability ever) NEXT WEEK!!
We can start building the TODO list:
- Get RTP support: don't have a clue how
- Look at the awt native support in J2SE 1.5: this can be the very answer to all performance problems.
- Build a stand_alone_decoder for audio streams
- Study the feasibility of adding encoding support into Fobs4JMF: there'll problems with A/V sync, I'm afraid.
Cheers,
Jose San Pedro
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yeah, Sun's RTSP support doesn't seem to be too great, but that's not that important since RTSP is just a "remote control" protocol; it has nothing to do with actual RTP support. Of course, if you don't have your own RTP stream to test with, poor RTSP support makes testing difficult. If you haven't already and are still working on this, I suggest downloading the LIVE.COM library and using one of the many example streamers to set up your own test streaming service.
I've been able to get data from an RTP stream to fobs using the Sun RTP framework (bypassing RTSP), but it doesn't play because the data needs to be unpacked first. I'm working on an MPEG4 depacketizer (because MPEG4 is what I need to play). If this is successful, I'll send you the code.
Scott
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
well... I have built LIVE.COM and set up a RTP server. Indeed, I'm right now watching and mpeg1video stream using JMF&Fobs thanks to the stand_alone_codec. What I've been unable is to get both sound and video, because each stream is multicasted to a different port. Anyway, this is much more than what I had a couple of hours ago!!
The point about using ffmpeg is that it is already included in Fobs, so the integration in the project will be easier.
Cheers,
Jose San Pedro
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm glad you're having luck. I've written an RTP depacketizer in Java for MPEG 4 video, but I can't seem to get JMF to realize a player to take the RTP stream and send it to JavaDecoder for processing. This is my first JMF project, so I'm probably just missing something simple (I hope). I'll take it up again tomorrow.
Scott
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi everyone,
some of you have been asking about the features of the new Fobs version, so I think I'd better write something about it. First of all, next version is mainly an update to adapt to changes in the ffmpeg API and also to fix some of the known bugs. The main improvements to the code will be:
- J2SE 1.5 compatibility: Don't ask me why but Fobs suddenly seems to work fine with J2SE 1.5. That's great news!
- RTP reception: explained in a previous post. It's trickier than I though and is still not working.... Maybe I will finally leave this to the next version.
Fobs is still quite unstable and my priority is to make it as reliable as possible, even if that means loosing some functionality. The other great challenge is to get encoding working in JMF, but that won't be possible in the near future.
I need to release the new version before August (as well as my holidays) ends. I hope the new version becomes a little bit more useful.
Thanks to all of you guys for using fobs!
Cheers,
Jose San Pedro
Hi Jose,
>>- RTP reception: explained in a previous post. It's trickier than I though and is still not working.... Maybe I will finally leave this to the next version.
I can work on this issue full time for the next week, so if you'd like to share where you are at currently (on or off of the forum), I'd be glad to help.
Thanks,
Nikolai
Hi,
well.... after many tests I've been unable to get ffmpeg receiving RTP streams, which is of course the first step before trying to get them in Fobs.
I've updated my ffmpeg version to the latest CVS and that broke the compatibility, so I've been kind of fixing it again. Everything works fine now and I've improved the audio seek routines for speed.
My progress till now.
Cheers,
Jose San Pedro
I can work on this as well. I've been trying to get MPEG4 video streaming working using Sun's RTP framework (I haven't been impressed with ffmpeg's built-in RTP support in its stand-alone player and Windows support is absolutely necessary for me). No success yet. MPlayer and VLC use the LIVE.COM streaming library for RTP streaming. That's another option.
Hi,
I'm going to spend the day evaluating the different alternetives we've got to get RTP reception working. I'll post my conclusions so that we can try to work on them together. Thanks a lot for willing to contribute to Fobs Project!!!
Cheers,
Jose San Pedro
Hi,
I've been playing around with LIVE.COM's liveMedia library. No luck so far, but it seems promising.
I'll keep you guys posted,
Nikolai
Hi guys,
quite bad news I bring today...
About RTP, I've been unable to get a single stream playing using JMStudio without fobs, and it is not a matter of codecs but a buggy implementation of the protocol in SUN classes. At least, that is what it seems. Using ffmpeg, I cannot read a RTSP stream either, even though rtsp:// appears as a supported protocol when typing 'ffmpeg -formats'. My conclusion: not possible to do.
I've been updating a little bit more the stand_alone_codec (or decoder, because it is just a decoder). The problems related to this decoder come from the fact that libav uses data from the format itself to initialize some parameters of the codec (such as extradata, and others). That means AVCodecContext is not properly initialized calling just avcodec_alloc_context, which is what stand_alone_codec does. This doesn't seem to be an issue when playing AVI files, but it definetly is when playing MOV/SVQ3. Anyway, while the decoder is able to decode at least one codec, that is enough to mantain it in the project.
My holidays will end soon so I think I'm gonna close the current version as it is. Maybe I'll work a little bit in playback performance this weekend. Expect the brand new version (best stability ever) NEXT WEEK!!
We can start building the TODO list:
- Get RTP support: don't have a clue how
- Look at the awt native support in J2SE 1.5: this can be the very answer to all performance problems.
- Build a stand_alone_decoder for audio streams
- Study the feasibility of adding encoding support into Fobs4JMF: there'll problems with A/V sync, I'm afraid.
Cheers,
Jose San Pedro
Yeah, Sun's RTSP support doesn't seem to be too great, but that's not that important since RTSP is just a "remote control" protocol; it has nothing to do with actual RTP support. Of course, if you don't have your own RTP stream to test with, poor RTSP support makes testing difficult. If you haven't already and are still working on this, I suggest downloading the LIVE.COM library and using one of the many example streamers to set up your own test streaming service.
I've been able to get data from an RTP stream to fobs using the Sun RTP framework (bypassing RTSP), but it doesn't play because the data needs to be unpacked first. I'm working on an MPEG4 depacketizer (because MPEG4 is what I need to play). If this is successful, I'll send you the code.
Scott
Hi Scott,
I'm pretty sure that ffmpeg includes a RTP depacketizer. I'll try to make it work using the live.com library you mentioned. Thanks for the tip!
Cheers,
Jose San Pedro
The LIVE.COM library has several depacketizers itself. Those would probably be more useful than the ones included with ffmpeg.
Scott
Hi,
well... I have built LIVE.COM and set up a RTP server. Indeed, I'm right now watching and mpeg1video stream using JMF&Fobs thanks to the stand_alone_codec. What I've been unable is to get both sound and video, because each stream is multicasted to a different port. Anyway, this is much more than what I had a couple of hours ago!!
The point about using ffmpeg is that it is already included in Fobs, so the integration in the project will be easier.
Cheers,
Jose San Pedro
I'm glad you're having luck. I've written an RTP depacketizer in Java for MPEG 4 video, but I can't seem to get JMF to realize a player to take the RTP stream and send it to JavaDecoder for processing. This is my first JMF project, so I'm probably just missing something simple (I hope). I'll take it up again tomorrow.
Scott