I am writing a monitoring program for DVB-H that should also play H.264/RTP and HE-AAC/RTP streams. Therefore I already installed successfully FOBS4JMF and integrated a java player in my program. It even works and plays H.264 Files and HE-AAC Files from my harddisk.
Now I'd like to play H.264 video which the program receives in a RTP stream. As I tested it with the >>AVReceive2.java<< from the SUN/JMF Solutions page it told me:
"No format has been registered for RTP payload type 96".
So obviously I have to write a Custom Depacketizer for this type of payload, so that the fobs4jmf enabled java player can decode the h.264/RTP stream correctly?!
I've already read the example file for a depacketizer ("PcmDepacketizer.java") from the sun homepage but I think that a Depacketizer for H.264 (and HE-AAC) is more complicated. Is that right?
Moreover I also downloaded the rfc specifications for the rtp transport, h.264 and different payload types. Will I need them for writing the h.264 depacketizer?
Does anybody have experience in writing a custom depacketizer? Perhaps even for H.264 or HE-AAC? Or does anybody can give me some information or hints concerning this subject?
Thanks a lot,
Benjamin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
For a better understanding I'll add the code of a sdp file that includes all necessary information about the h.264 and he-aac streams (payload type, port, rate, etc...)
I'm not really very much into RTP. I recall someone contributed an MPEG-4 Depacketizer that is currently available in the CVS version. Use it as the base for your own development. I'm sorry I cannot help your more with this problem.
Cheers,
Jose San Pedro
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
can you please tell me how I access/download the mpeg-4 depacketizer.
I downloaded the "current-ffmpeg.tar.gz" from the cvs repository but couldn't find anything regarding the depacketizer.
Where is it located?
Thanks again for your help.
Bye,
Benjamin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
ok thank you. I found it and downloaded also the "rtp.java". I've contacted also Scott who wrote these files in order to get some help in writing the h.264 depacketizer.
I will try to use the mp4v depacketizer as a base for the development of a h.264 depacketizer. As soon as I have any successes or problems I will post a message in here.
Thanks again for your help.
Benjamin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm really sorry I cannot help you with this matter. Indeed, RTP support is something that many people are willing to have in order to use Fobs in their project. I hope to have some more time in the future to dig into this protocol. Any contributions will be fine as a start point.
Thanks!!
Jose San Pedro
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I tried to build the current HEAD, but I'm getting the following error:
src\jmf-pi\decoder.cpp:185: error: ISO C++ forbids cast to non-reference type used as lvalue
src\jmf-pi\decoder.cpp:191: error: ISO C++ forbids cast to non-reference type used as lvalue
src\jmf-pi\decoder.cpp: In function `jboolean Java_com_omnividea_media_parser_video_Parser_avProcessAudio(JNIEnv*, _jobject*, jint, _jobject*, jlong, jlong)':
src\jmf-pi\decoder.cpp:436: warning: cast to pointer from integer of different size
src/cppapi/Decoder.h: At global scope:
src/cppapi/Decoder.h:193: warning: inline function `virtual double omnividea::fobs::Decoder::getNextFrameTime()' used but never defined
scons: *** [src\jmf-pi\decoder.o] Error 1
Is it a problem in the HEAD or my configuration (WinXP, MinGW 5, MSYS, python 2.4, jdk 5)? Including the depacketizer into the 0.4 build does not work (there is a NPE bug that has been fixed).
(ffmpeg compiled, there was a problem with SSE, but worked with the suggested parameter)
Thanks
Remo
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I am writing a monitoring program for DVB-H that should also play H.264/RTP and HE-AAC/RTP streams. Therefore I already installed successfully FOBS4JMF and integrated a java player in my program. It even works and plays H.264 Files and HE-AAC Files from my harddisk.
Now I'd like to play H.264 video which the program receives in a RTP stream. As I tested it with the >>AVReceive2.java<< from the SUN/JMF Solutions page it told me:
"No format has been registered for RTP payload type 96".
So obviously I have to write a Custom Depacketizer for this type of payload, so that the fobs4jmf enabled java player can decode the h.264/RTP stream correctly?!
I've already read the example file for a depacketizer ("PcmDepacketizer.java") from the sun homepage but I think that a Depacketizer for H.264 (and HE-AAC) is more complicated. Is that right?
Moreover I also downloaded the rfc specifications for the rtp transport, h.264 and different payload types. Will I need them for writing the h.264 depacketizer?
Does anybody have experience in writing a custom depacketizer? Perhaps even for H.264 or HE-AAC? Or does anybody can give me some information or hints concerning this subject?
Thanks a lot,
Benjamin
Additional Information:
For a better understanding I'll add the code of a sdp file that includes all necessary information about the h.264 and he-aac streams (payload type, port, rate, etc...)
-----------------------
v=0
o=FhG-HHI 2890844526 2890842807 IN IP4 127.0.0.1
s=/live.mp4
u=http:///
e=admin@
c=IN IP4 225.0.1.3/64
a=control:*
a=range:npt=0-3000000
m=video 11030 RTP/AVP 96
a=rtpmap:96 H264/90000
a=control:trackID=1
a=mpeg4-esid:201
a=fmtp:96 profile-level-id=42c00c; paketization-mode=1; sprop-parameter-sets=Z0LADPICg+I=,aNuOIA==;
m=audio 11032 RTP/AVP 97
a=rtpmap:97 mpeg4-generic/48000
a=control:trackID=2
a=mpeg4-esid:101
a=fmtp:97 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=1310; SizeLength=13; IndexLength=3; IndexDeltaLength=3; Profile=1;
----------------------
Does the sdp code include enough information to write a custom depacketizer for both codecs? Or is something else necessary?
best regards,
Benjamin
Hi Benajmin,
I'm not really very much into RTP. I recall someone contributed an MPEG-4 Depacketizer that is currently available in the CVS version. Use it as the base for your own development. I'm sorry I cannot help your more with this problem.
Cheers,
Jose San Pedro
Hello Jose,
can you please tell me how I access/download the mpeg-4 depacketizer.
I downloaded the "current-ffmpeg.tar.gz" from the cvs repository but couldn't find anything regarding the depacketizer.
Where is it located?
Thanks again for your help.
Bye,
Benjamin
Hi
I'm interested in exactly the same thing (rtp, h.264, aac/mp4).
I believe Jose referred to:
com.neon.media.codec.video.mp4v.DePacketizer
However, I've not tried it out yet...
Remo
Hello Remo,
ok thank you. I found it and downloaded also the "rtp.java". I've contacted also Scott who wrote these files in order to get some help in writing the h.264 depacketizer.
I will try to use the mp4v depacketizer as a base for the development of a h.264 depacketizer. As soon as I have any successes or problems I will post a message in here.
Thanks again for your help.
Benjamin
Hi,
I'm really sorry I cannot help you with this matter. Indeed, RTP support is something that many people are willing to have in order to use Fobs in their project. I hope to have some more time in the future to dig into this protocol. Any contributions will be fine as a start point.
Thanks!!
Jose San Pedro
Hi
I tried to build the current HEAD, but I'm getting the following error:
src\jmf-pi\decoder.cpp:185: error: ISO C++ forbids cast to non-reference type used as lvalue
src\jmf-pi\decoder.cpp:191: error: ISO C++ forbids cast to non-reference type used as lvalue
src\jmf-pi\decoder.cpp: In function `jboolean Java_com_omnividea_media_parser_video_Parser_avProcessAudio(JNIEnv*, _jobject*, jint, _jobject*, jlong, jlong)':
src\jmf-pi\decoder.cpp:436: warning: cast to pointer from integer of different size
src/cppapi/Decoder.h: At global scope:
src/cppapi/Decoder.h:193: warning: inline function `virtual double omnividea::fobs::Decoder::getNextFrameTime()' used but never defined
scons: *** [src\jmf-pi\decoder.o] Error 1
Is it a problem in the HEAD or my configuration (WinXP, MinGW 5, MSYS, python 2.4, jdk 5)? Including the depacketizer into the 0.4 build does not work (there is a NPE bug that has been fixed).
(ffmpeg compiled, there was a problem with SSE, but worked with the suggested parameter)
Thanks
Remo
This has been discussed before.Look into the forums, it compiles with the permissive flag.
Hello Romeo and nobody,
were you able to write the packetizer&depacketizer ?
if you have, can you post a link to it?
10x