[Live-devel] MJPEG2000 support (.mj2)

BONNISSENT Francois - Contractor francois.bonnissent at external.thalesgroup.com
Mon May 20 01:27:37 PDT 2019


for my tests, I generated mj2 files with ffmpeg as it:

- eg convert a h264 file to mj2 (mov):

ffmpeg -i test.h264 -map 0 -c:v libopenjpeg -c:a copy lossless.mov 
mv lossless.mov myvideo.mj2


- after I can receive it via OpenRTSP :

openRTSP -m rtsp://10.198.165.62:8554/myvideo.mj2

- and assemble all the pictures in a mp4 file.

ffmpeg -f image2 -i video-JPEG2000-1-1554984397.187172-%d -r 24 -vcodec mpeg4 -b 15000k -start_number 1 myvideo.mp4

this can be readed by 
ffplay myvideo.mp4

Regards
F.BONNISSENT

-----Message d'origine-----
De : live-devel [mailto:live-devel-bounces at us.live555.com] De la part de BONNISSENT Francois - Contractor
Envoyé : lundi 20 mai 2019 10:00
À : LIVE555 Streaming Media - development & use
Objet : Re: [Live-devel] MJPEG2000 support (.mj2)

Hi Ross

You can find a mj2 sample file at : http://www.openjpeg.org/speedway_opj.mj2

Francois Bonnissent

-----Message d'origine-----
De : live-devel [mailto:live-devel-bounces at us.live555.com] De la part de Ross Finlayson
Envoyé : dimanche 19 mai 2019 03:04
À : LIVE555 Streaming Media - development & use
Objet : Re: [Live-devel] MJPEG2000 support (.mj2)



> On May 17, 2019, at 5:03 AM, Ross Finlayson <finlayson at live555.com> wrote:
> 
> 
> 
>> On May 17, 2019, at 12:43 AM, BONNISSENT Francois - Contractor <francois.bonnissent at external.thalesgroup.com> wrote:
>> 
>> Hello
>> I just integrated the mj2 format (MotionJepg2000) to the streaming live-media
>> and in reception with openRTSP
>> I used the latest version (2019.05.03) and submitted you a patch to apply to.
> 
> Thank you.  Can you point me at one or more examples of a “.mj2” file (i.e., a motion-JPEG-2000 file) that I can use to test this?

Also, there’s a bug in your patch to  “MediaSession.cpp” (for receiving RTP streams specified by a SDP description).  You implement incoming “video/JPEG2000” streams using “SimpleRTPSource”, which seems wrong, because of the special (8-byte) RTP special header for JPEG 2000 (specified in RFC 5371, section 4.2).
I notice that you define and implement a class “JPEG2000RTPSource” (BTW, for consistency with our other classes, this should really be named “JPEG2000VideoRTPSource” instead) - but you don’t use this anywhere.  I presume that you meant to use this in “MediaSession.cpp”, instead of “SimpleRTPSource”?

Also, the parameters for “JPEG2000RTPSource::createNew()” and “JPEG2000RTPSource::JPEG2000RTPSource()” are wrong.  “mimeTypeString”, “offset”, and “doNormalMBitRule” should not be parameters, because those are actually constant properties of the JPEG 2000 RTP payload format.  (I suggest that you use the “JPEGVideoRTPSource” class (specification and implementation) as a model here.)

I can probably fix all of these things - but in any case, I can’t begin working on this unless/until I see one or more examples of a “.mj2” file (i.e., a motion-JPEG-2000 file)


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

_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel



More information about the live-devel mailing list