Need Rtsp Client App Example and documentation

Topics: Question
Mar 9, 2016 at 2:50 AM
Edited Mar 9, 2016 at 5:54 AM
Hi

Your code library was very useful.

I need Rtsp Client App Example with playing a video in picture box, with latest release.

I can't understand to decode after depacketize the rtpfame.

Also really helpful and grateful to me to understand the concepts, if you will give documentation for this concepts.

Thanks.
Coordinator
Mar 9, 2016 at 7:09 PM
Thanks for your interest in the project!

There is already an example of using the client as well as the various frame and media classes, beyond that I am not sure exactly what you need or how it would benefit anyone.

If you have something specific I can address I surely will.

-Julius
Marked as answer by juliusfriedman on 3/9/2016 at 12:09 PM
Mar 10, 2016 at 12:40 PM
Hi,

Thanks for your replay..!

My target to achieve connect the IP camera and playing live video in windows application c#.

Working with your latest release "111928"...

I started client and added rtpFramechanged event.

I have received the frames and I can logged to file to inspect it. Its working.

With reference to your last replay of this Discussion:569279

I have used the "RFC6184Media" to decode the frame.
void Client_RtpFrameChanged(object sender, Media.Rtp.RtpFrame frame, Media.Rtp.RtpClient.TransportContext tc = null, bool final = false){
                 
                 if (frame.IsDisposed || false == frame.IsComplete && false == final) return;

                var context = tc ?? ((Media.Rtp.RtpClient)sender).GetContextByPayloadType(frame.PayloadTypeByte);

                if (context == null || context.MediaDescription.MediaType != Media.Sdp.MediaType.video) return;

                 using (Media.Rtsp.Server.MediaTypes.RFC6184Media.RFC6184Frame hframe = new Media.Rtsp.Server.MediaTypes.RFC6184Media.RFC6184Frame(frame))
                 {
                    hframe.Depacketize();
                    saveStream(hframe.Buffer);
                 * //The rest of the example applies exactly the same, except you would want to skip writing the sps and pps after the very first time.
                 }
                }
                 */


        private void saveStream(Stream fin)
        {
            using (var fs = new FileStream(string.Format("test.h264"), FileMode.Append))
                fin.CopyTo(fs);
        }
After hframe.Depacketize();

I called saveStream with hframe.Buffer

when I am checked with debugging for "Processpacket(rtpPacket)" all packets having firstbyte and nalUnitType is "0", so it is returned in the first step.

So I received the buffer is null

when I am checking the "test.h264" file it is "1kb" only.

I have tried with "RFC3952Media" the "test.h264" file is increasing the file size, but checked with VLC means it is blank only.

Please give me the solution to play a video in picture box in form.


Thanks.
Coordinator
Mar 10, 2016 at 12:59 PM
I am glad you were able to understand the example and that's correct about the sps and pps, I think I have notes for that and if not I'll add some.

That's interesting about the 0 value, it indicates something is wrong with the offsets in the copying of the packet or that it's not being performed.

This may have been caused by the latest changes but I need to be able to replicate it to make sure.

I will take a look at this today, if you can provide any additional information such as a Wireshark capture it may help me out.

If you could also log the packet information from the application from both the packet and frame events it will help me determine where the problem is.

In the meantime I will add some additional tests to ensure that the client is not disposing the packet early or using incorrect parsing offsets.
Marked as answer by juliusfriedman on 3/10/2016 at 5:59 AM
Coordinator
Mar 10, 2016 at 1:08 PM
Sorry, forgot to also mention about the display...

Once the depacketization is working as expected you can most likely use Media Foundation to display the decoded frames in a MediaElement, you can also just grab the frame during the decode as you need it and put it in a PictureBox I suppose...

The basemedia.codeplex.com project has an example of this, they have an example using mpeg transport streams and rtp and show how to use media foundation to decode and display the stream in their sample projects.

One could easily adopt their code examples to this library, if you get stuck let me know and I'll give you a hand.
Marked as answer by juliusfriedman on 3/10/2016 at 6:08 AM
Mar 10, 2016 at 1:20 PM
Thanks for your immediate reply....!

I have checked with the both the log.

For RTP Pcket and frames....

--- Receiving most of the frames are complete
--- most of the frame length is 332, 1448, etc., and version:2
--- most of the frame payload type is 8, 26 72, etc.,
--- most of the Marker is true.

For RTCP Pcket....

--- All received frame length is 8
--- and the PayLoadtype will be 200,201 and 202

Thanks.
Coordinator
Mar 10, 2016 at 2:22 PM
The payload types don't make sense for h264 and indicate that they are rtcp mixed up as rtp somehow.

If you could print the ssrc of packets and timestamps it would also help.

Also a copy of the session description so I can confirm the payload types it specifies.

I am imagining you are using tcp, what I am not sure of is the configuration of the socket. Is everything at its default value for the rtsp and rtp client such as buffersize?
Marked as answer by juliusfriedman on 3/10/2016 at 7:22 AM
Coordinator
Mar 10, 2016 at 5:10 PM
Edited Mar 10, 2016 at 5:14 PM
Seems I may have found it, I will update the code later today with the fix, if it's tcp then the issue is because of ParseApplicationLayerFraming.

In such cases the problem occurs when a aligned read leaves less than 6 bytes in the buffer or or less than the complete rtcp or rtcp header. The data is completed but an event is incorrectly fired and the offset is incorrectly moved and may not correct itself without missing data.

It's a fairly small fix believe or not but thanks for bringing this up and sorry for any inconvenience.
Marked as answer by juliusfriedman on 3/10/2016 at 10:11 AM
Coordinator
Mar 10, 2016 at 5:55 PM
Edited Mar 10, 2016 at 6:48 PM
111930 should fix this as well as a few other outstanding issues.

The code you need for display from the base media project comes from

http://basemedia.codeplex.com/SourceControl/latest#BMFF/SLTest/TestStreamSource.cs

If you need help adapting it post up what you tried and I will surely give you a hand.

Let me know if your still having problems or if you need any additional help!
Marked as answer by juliusfriedman on 3/10/2016 at 10:55 AM
Mar 11, 2016 at 12:02 PM
Thanks for your help regarding the display from the base media project.

For the buffer size "0" after depacketize, I have tried with version:111931 as per your guidance,
but getting same thing only.

I can give more information related to this as per your replay yesterday.
  1. I am using tcp
  2. Configuration of socket and its everything in a default value only
  3. Buffersize default only
I have attached the log details below for your reference as per your early replay.....

1-RTSP_Client_Request_Response_Log

@3/11/2016 9:07:33 AM - OPTIONS rtsp://*************************************************************
CSeq: 2
Authorization: Basic YWRtaW46YWRtaW4=


@3/11/2016 9:07:33 AM - OPTIONS rtsp://*************************************************************
CSeq: 2
Authorization: Basic YWRtaW46YWRtaW4=


@3/11/2016 9:07:34 AM - RTSP/1.0 200 OKServer: Rtsp Server/2.0
CSeq: 2
Public: OPTIONS,DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,SET_PARAMETER,GET_PARAMETER,ANNOUNCE


@3/11/2016 9:07:34 AM - DESCRIBE rtsp://*************************************************************
Accept: application/sdp
CSeq: 3
Authorization: Basic YWRtaW46YWRtaW4=


@3/11/2016 9:07:34 AM - DESCRIBE rtsp://*************************************************************
Accept: application/sdp
CSeq: 3
Authorization: Basic YWRtaW46YWRtaW4=


@3/11/2016 9:07:34 AM - RTSP/1.0 200 OKServer: Rtsp Server/2.0
CSeq: 3
Content-Base: rtsp://*************************************************************
Content-Type: application/sdp
Content-Length: 331
Cache-Control: must-revalidate
x-Accept-Dynamic-Rate: 1

v=0
o=- 2252056092 2252056092 IN IP4 0.0.0.0
s=RTSP Session/2.0
c=IN IP4 0.0.0.0
t=0 0
a=control:*
a=range:npt=now-
a=packetization-supported:DH
m=video 0 RTP/AVP 26
a=control:trackID=0
a=framerate:25.000000
a=rtpmap:26 JPEG/90000
a=recvonly
m=audio 0 RTP/AVP 8
a=control:trackID=1
a=rtpmap:8 PCMA/8000
a=recvonly

@3/11/2016 9:07:34 AM - SETUP rtsp://*************************************************************/trackID=0 RTSP/1.0
Transport: RTP/AVP/UDP;unicast;client_port=10000-10001;mode="PLAY"
CSeq: 4
Authorization: Basic YWRtaW46YWRtaW4=


@3/11/2016 9:07:34 AM - SETUP rtsp://*************************************************************/trackID=0 RTSP/1.0
Transport: RTP/AVP/UDP;unicast;client_port=10000-10001;mode="PLAY"
CSeq: 4
Authorization: Basic YWRtaW46YWRtaW4=


@3/11/2016 9:07:34 AM - RTSP/1.0 200 OKServer: Rtsp Server/2.0
CSeq: 4
Session: 271945785536;timeout=60
Transport: RTP/AVP;unicast;client_port=10000-10001;server_port=20032-20033;ssrc=D1615263
x-dynamic-rate: 1


@3/11/2016 9:07:34 AM - SETUP rtsp://*************************************************************/trackID=1 RTSP/1.0
Transport: RTP/AVP/UDP;unicast;client_port=10002-10003;mode="PLAY"
CSeq: 5
Session: 271945785536
Authorization: Basic YWRtaW46YWRtaW4=


@3/11/2016 9:07:34 AM - SETUP rtsp://*************************************************************/trackID=1 RTSP/1.0
Transport: RTP/AVP/UDP;unicast;client_port=10002-10003;mode="PLAY"
CSeq: 5
Session: 271945785536
Authorization: Basic YWRtaW46YWRtaW4=


@3/11/2016 9:07:34 AM - RTSP/1.0 200 OKServer: Rtsp Server/2.0
CSeq: 5
Session: 271945785536;timeout=60
Transport: RTP/AVP;unicast;client_port=10002-10003;server_port=20034-20035;ssrc=C3736040
x-dynamic-rate: 1


@3/11/2016 9:07:34 AM - PLAY rtsp://*************************************************************/ RTSP/1.0
Range: npt=now-
CSeq: 6
Session: 271945785536
Authorization: Basic YWRtaW46YWRtaW4=


@3/11/2016 9:07:34 AM - PLAY rtsp://*************************************************************/ RTSP/1.0
Range: npt=now-
CSeq: 6
Session: 271945785536
Authorization: Basic YWRtaW46YWRtaW4=


@3/11/2016 9:07:34 AM - RTSP/1.0 200 OKServer: Rtsp Server/2.0
CSeq: 6
Session: 271945785536
RTP-Info: url=trackID=0;seq=3482;rtptime=3902437076;ssrc=3512816227,url=trackID=1;seq=55151;rtptime=4226511342;ssrc=3279118400
Range: npt=0.000000-

2-RTP_Frames_Log

Time    PayloadType PacketCount IsComplete  HighestSequenceNumber
3/11/2016 14:37:34  8   1   TRUE    55151
3/11/2016 14:37:35  26  1   FALSE   3482
3/11/2016 14:37:35  8   1   TRUE    55152
3/11/2016 14:37:35  26  2   FALSE   3483
3/11/2016 14:37:35  8   1   TRUE    55151
3/11/2016 14:37:35  8   1   TRUE    55153
3/11/2016 14:37:35  26  3   FALSE   3484
3/11/2016 14:37:35  8   1   TRUE    55152
3/11/2016 14:37:36  8   1   TRUE    55161

3-RTP_Packets_Log

Payload ContributingSourceListOctets    ExtensionOctets PaddingOctets   IsComplete  Length  PayloadData PaddingData Version Padding Extension   Marker  ContributingSourceCount PayloadType SequenceNumber  Timestamp   SynchronizationSourceIdentifier IsReadOnly  Transferred IsCompressed    IsDisposed  ShouldDispose
Media.Common.MemorySegment  0   0   0   TRUE    332         2   FALSE   FALSE   TRUE    0   72  6   -782151069  -628300226  TRUE        FALSE   FALSE   FALSE
Media.Common.MemorySegment  0   0   0   TRUE    1448            2   FALSE   FALSE   TRUE    0   72  6   -782151069  -628300226  TRUE        FALSE   FALSE   FALSE
Media.Common.MemorySegment  0   0   0   TRUE    332         2   FALSE   FALSE   TRUE    0   72  6   -782151069  -628300226  TRUE        FALSE   FALSE   FALSE
Media.Common.MemorySegment  0   0   0   TRUE    1448            2   FALSE   FALSE   TRUE    0   72  6   -782151069  -628300226  TRUE        FALSE   FALSE   FALSE
Media.Common.MemorySegment  0   0   0   TRUE    332         2   FALSE   FALSE   TRUE    0   72  6   -782151069  -628300226  TRUE        FALSE   FALSE   FALSE
Media.Common.MemorySegment  0   0   0   TRUE    1448            2   FALSE   FALSE   TRUE    0   72  6   -782151069  -628300226  TRUE        FALSE   FALSE   FALSE
Media.Common.MemorySegment  0   0   0   TRUE    332         2   FALSE   FALSE   TRUE    0   72  6   -782151069  -628300226  TRUE        FALSE   FALSE   FALSE
Media.Common.MemorySegment  0   0   0   TRUE    1448            2   FALSE   FALSE   TRUE    0   72  6   -782151069  -628300226  TRUE        FALSE   FALSE   FALSE
Media.Common.MemorySegment  0   0   0   TRUE    332         2   FALSE   FALSE   TRUE    0   72  6   -782151069  -628300226  TRUE        FALSE   FALSE   FALSE

4-RTCP_Packets_Log

Payload IsReadOnly  PaddingOctets   Length  IsComplete  Version Padding PayloadType BlockCount  SynchronizationSourceIdentifier RtcpData    PaddingData IsCompressed    Transferred IsDisposed  ShouldDispose
Media.Common.MemorySegment  FALSE   0   8   TRUE    2   FALSE   201 1   737735221           FALSE       FALSE   TRUE
Media.Common.MemorySegment  FALSE   0   8   TRUE    2   FALSE   202 1   737735221           FALSE       FALSE   TRUE
Media.Common.MemorySegment  FALSE   0   8   TRUE    2   FALSE   201 1   304320376           FALSE       FALSE   TRUE
Media.Common.MemorySegment  FALSE   0   8   TRUE    2   FALSE   202 1   304320376           FALSE       FALSE   TRUE
Media.Common.MemorySegment  FALSE   0   8   TRUE    2   FALSE   200 0   -782151069          FALSE       FALSE   TRUE
Media.Common.MemorySegment  FALSE   0   8   TRUE    2   FALSE   202 1   -782151069          FALSE       FALSE   TRUE
Media.Common.MemorySegment  FALSE   0   8   TRUE    2   FALSE   200 0   -1015848896         FALSE       FALSE   TRUE
Media.Common.MemorySegment  FALSE   0   8   TRUE    2   FALSE   202 1   -1015848896         FALSE       FALSE   TRUE
I need a help to depacketize the buffer...... Please help me with fix or solution or guidance.

Thanks
Mar 11, 2016 at 12:05 PM
I missed to mention,

I have given the log few sample only, there is complete frames are there with the more packets.....

Thanks
Coordinator
Mar 11, 2016 at 2:13 PM
Thank you for the additional information.

Can you also include a Wireshark capture?

It seems your source is not H.264 but is JPEG RFC2435 which is also supported but in a different class. That is according to the SDP, you have two streams. 1) is jpeg 2) is PCM audio

It also looks like your sending Rtp packets from the logs you posted or you printed the wrong value in the column, I noticed that because the SR and RR seem to correspond to the correct Id used in the Rtp packets being sent '-782151069' but Transferred is also true for the Rtp packets.

I am not sure where you are getting the rtp packet of 72 from, it seems you are receiving a Rtcp packet and it is being determined to be rtp somehow.

I have also updated the code at 111933 to ensure that if padding or something weird was present in the rtp data that it wouldn't effect the results. (RFC2435Frame already had that logic)

Once I have the wireshark capture I can provide you with some additional information.
Marked as answer by juliusfriedman on 3/11/2016 at 7:14 AM
Mar 23, 2016 at 12:08 PM
Hi,

I have the wireshark capture with me.

Can you give me your mail address to send the ".pcapng" wireshark file.


Thanks.
Coordinator
Mar 23, 2016 at 12:13 PM
As found in the license / Readme, julius.friedman@gmail.com.
Marked as answer by juliusfriedman on 3/23/2016 at 5:13 AM
Mar 23, 2016 at 1:01 PM
Hi,

I have sent the wireshark file. Please check your mail.

Do you have Skype ID. so that i can contact through skype.

Thanks.
Coordinator
Mar 23, 2016 at 1:09 PM
As soon as I get it I will let you know.

Yes, I have Skype but I use Google Voice much more than Skype.

What's wrong with email / forums? I have no problem giving you a few minutes of my time if you really need it though.
Marked as answer by juliusfriedman on 3/23/2016 at 6:09 AM
Mar 23, 2016 at 2:40 PM
Hi,

Please review the RTSP Log.....
@3/23/2016 2:12:20 PM - OPTIONS rtsp://*****************@192.168.10.124/ RTSP/1.0
CSeq: 2
Authorization: Basic YWRtaW46YWRtaW4=


@3/23/2016 2:12:20 PM - RTSP/1.0 200 OKServer: Rtsp Server/2.0
CSeq: 2
Public: OPTIONS,DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,SET_PARAMETER,GET_PARAMETER,ANNOUNCE


@3/23/2016 2:12:20 PM - DESCRIBE rtsp://*****************@192.168.10.124/ RTSP/1.0
Accept: application/sdp
CSeq: 3
Authorization: Basic YWRtaW46YWRtaW4=


@3/23/2016 2:12:20 PM - DESCRIBE rtsp://*****************@192.168.10.124/ RTSP/1.0
Accept: application/sdp
CSeq: 3
Authorization: Basic YWRtaW46YWRtaW4=


@3/23/2016 2:12:20 PM - RTSP/1.0 200 OKServer: Rtsp Server/2.0
CSeq: 3
Content-Base: rtsp://*****************@192.168.10.124/
Content-Type: application/sdp
Content-Length: 514
Cache-Control: must-revalidate
x-Accept-Dynamic-Rate: 1

v=0
o=- 2252039990 2252039990 IN IP4 0.0.0.0
s=RTSP Session/2.0
c=IN IP4 0.0.0.0
t=0 0
a=control:*
a=range:npt=now-
a=packetization-supported:DH
m=video 0 RTP/AVP 96
a=control:trackID=0
a=framerate:25.000000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=640032;sprop-parameter-sets=J2QAMq2EBUViuKxUcQgKisVxWKjiECSFITk8nyfk/k/J8nm5s00IEkKQnJ5Pk/J/J+T5PNzZphcqAeAIn5YQAAA+gAAMNQBA,KP4Niw==
a=recvonly
m=audio 0 RTP/AVP 8
a=control:trackID=1
a=rtpmap:8 PCMA/8000
a=recvonly

@3/23/2016 2:12:20 PM - SETUP rtsp://*****************@192.168.10.124/trackID=0 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
CSeq: 4
Authorization: Basic YWRtaW46YWRtaW4=


@3/23/2016 2:12:20 PM - SETUP rtsp://*****************@192.168.10.124/trackID=0 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
CSeq: 4
Authorization: Basic YWRtaW46YWRtaW4=


@3/23/2016 2:12:20 PM - RTSP/1.0 200 OKServer: Rtsp Server/2.0
CSeq: 4
Session: 102240982816;timeout=60
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=C85C26B0
x-dynamic-rate: 1


@3/23/2016 2:12:21 PM - SETUP rtsp://*****************@192.168.10.124/trackID=1 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=2-3
CSeq: 5
Session: 102240982816
Authorization: Basic YWRtaW46YWRtaW4=


@3/23/2016 2:12:21 PM - SETUP rtsp://*****************@192.168.10.124/trackID=1 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=2-3
CSeq: 5
Session: 102240982816
Authorization: Basic YWRtaW46YWRtaW4=


@3/23/2016 2:12:21 PM - RTSP/1.0 200 OKServer: Rtsp Server/2.0
CSeq: 5
Session: 102240982816;timeout=60
Transport: RTP/AVP/TCP;unicast;interleaved=2-3;ssrc=1A2D3AE9
x-dynamic-rate: 1


@3/23/2016 2:12:21 PM - PLAY rtsp://192.168.10.124/ RTSP/1.0
Range: npt=now-
CSeq: 6
Session: 102240982816
Authorization: Basic YWRtaW46YWRtaW4=


@3/23/2016 2:12:21 PM - PLAY rtsp://192.168.10.124/ RTSP/1.0
Range: npt=now-
CSeq: 6
Session: 102240982816
Authorization: Basic YWRtaW46YWRtaW4=


@3/23/2016 2:12:21 PM - RTSP/1.0 200 OKServer: Rtsp Server/2.0
CSeq: 6
Session: 102240982816
RTP-Info: url=trackID=0;seq=26900;rtptime=551629577;ssrc=3361482416,url=trackID=1;seq=58973;rtptime=2561062000;ssrc=439171817
Range: npt=0.000000-
I have used the "RFC6184Media" to decode the frame.
void Client_RtpFrameChanged(object sender, Media.Rtp.RtpFrame frame, Media.Rtp.RtpClient.TransportContext tc = null, bool final = false){
                 
                 if (frame.IsDisposed || false == frame.IsComplete && false == final) return;

                var context = tc ?? ((Media.Rtp.RtpClient)sender).GetContextByPayloadType(frame.PayloadTypeByte);

                if (context == null || context.MediaDescription.MediaType != Media.Sdp.MediaType.video) return;

                 using (Media.Rtsp.Server.MediaTypes.RFC6184Media.RFC6184Frame hframe = new Media.Rtsp.Server.MediaTypes.RFC6184Media.RFC6184Frame(frame))
                 {
                    hframe.Depacketize();
                    saveStream(hframe.Buffer);
                 * //The rest of the example applies exactly the same, except you would want to skip writing the sps and pps after the very first time.
                 }
                }
                 */


        private void saveStream(Stream fin)
        {
            using (var fs = new FileStream(string.Format("test.h264"), FileMode.Append))
                fin.CopyTo(fs);
        }
After hframe.Depacketize();

I called saveStream with hframe.Buffer

when I am checked with debugging for "Processpacket(rtpPacket)" all packets having firstbyte and nalUnitType is "0", so it is returned in the first step.

So I received the buffer is null

when I am checking the "test.h264" file it is "1kb" only.

I have tried with "RFC3952Media" the "test.h264" file is increasing the file size, but checked with VLC means it is blank only.

Please give me the solution to play a video in picture box in form.

Thanks.
Coordinator
Mar 23, 2016 at 3:58 PM
Can you please add the output of a few things I need to match up with your captures and your problem as explained...

I need to be able to see what you mean about the first byte being 0 and where it falls in the dumps so if you could add this code and try again please:
                     ///....
                    //Remove any profile header and create a stream which can be given to a decoder.
                    profileFrame.Depacketize();

                   Console.WriteLine("Contained Nal Types: " + string.Join(",", profileFrame.ContainedUnitTypes));

                    Console.WriteLine("Rtsp Buffer Offset: " + rtspClient.Buffer.Offset + ", Count: " + rtspClient.Buffer.Count + " FirstByte: " + rtspClient.Buffer[0]);

                    foreach (var rtp in profileFrame)
                    {
                        Console.WriteLine("Rtp @ " + rtp.SequenceNumber + " Payload Offset: " + rtp.Payload.Offset + ", Count: " + rtp.Payload.Count +  " FirstByte: " + rtp.Payload[0]);
                    }
Without that it's hard to say exactly how to help or what is going wrong.
Marked as answer by juliusfriedman on 3/23/2016 at 8:58 AM
Mar 24, 2016 at 11:55 AM
Hi,

I have sent you the logs as required to your mail. Please check it.

Anyway I can Depacketize the buffer successfully with your latest release 111950.

After Depacketize the buffer how can I DECODE it and save the video in file or play the video in picture box..?

I have checked your discussion in this link stackoverflow.com/questions/25604108

You have mentioned like you have added the example to decode the frame after depacketize.

Have you implemented the frame decoder (H264) and to convert to image in your library.?

Kindly help me.

Thanks.
Coordinator
Mar 24, 2016 at 9:41 PM
Glad your no longer having trouble.

You must use a decoder to decode, there is cs Codec but it is not really kept up to date and not really the best starting point to use for a new project however it does work to get you going.

See this thread for more information

http://net7mma.codeplex.com/discussions/569279

If you need anything else let me know!
Marked as answer by juliusfriedman on 3/24/2016 at 2:41 PM
Coordinator
Mar 24, 2016 at 9:49 PM
Sorry, I rushed to answer and forgot about the display question.

I have personally started working on quite a few things related to decoding, some of which are in the source in the form of the Image class but nothing really production ready quite yet especially as far as the Codec implementations.

There are over 100 MPEG standards last I checked, almost none are free and all require serious thought to implement in a way which doesn't require native languages and hardware acceleration but still performs modestly and correctly.

I already showed you how you would be able to use Media Foundation, did you try porting that example or are you unable to use Media Foundation?
Marked as answer by juliusfriedman on 3/24/2016 at 2:50 PM
Mar 25, 2016 at 4:21 AM
Thanks for your replay,

I am checking the "Media Foundation" & "CsCodec". I need to study fully first and then go for the debugging.....

Please let me know If you implement the codec concepts in this library.

Thanks.