From: Rhodri James on 22 Feb 2010 19:20 On Mon, 22 Feb 2010 10:48:55 -0000, DANNY <danijel.gvero(a)gmail.com> wrote: > On Feb 21, 1:54 am, Tim Roberts <t...(a)probo.com> wrote: >> DANNY <danijel.gv...(a)gmail.com> wrote: >> >> >If I want to have a MPEG-4/10 coded video and stream it through the >> >network and than have the same video on the client side, what should I >> >use and of course I don't want to have raw MPEG data, because than I >> >couldn't extract the frames to manipulate them. >> >> If you want to manipulate the frames (as bitmaps), then you have little >> choice but to decode the MPEG as you receive it, manipulate the bitmaps, >> and re-encode it back to MPEG. >> >> That's going to take a fair amount of time... >> -- >> Tim Roberts, t...(a)probo.com >> Providenza & Boekelheide, Inc. > > Yes, well beside bieng time-consuming, that is also inappropriate for > me, > because I want to have clip that would be streamed across the network > and > have the same GoP on the client side as the original-because I want to > see > what is the effect of errors on different GoP sizes. I would > manipuleta the > received clip just in the way that (if there are too many errors) I > would > stop displaying untill the next I frame.....I cant find a way to do > that....is there a way? Could you say a bit more about what you mean when you say "the effect of errors"? It's easy enough to introduce bit errors into a data file (just flip random bits), but I'm not clear what it is you're trying to measure. -- Rhodri James *-* Wildebeeste Herder to the Masses
From: Tim Roberts on 23 Feb 2010 00:10 DANNY <danijel.gvero(a)gmail.com> wrote: > >Yes, well beside bieng time-consuming, that is also inappropriate >for me, because I want to have clip that would be streamed across >the network and have the same GoP on the client side as the >original-because I want to see what is the effect of errors on >different GoP sizes. I would manipuleta the received clip just >in the way that (if there are too many errors) I would >stop displaying untill the next I frame.....I cant find a way to do >that....is there a way? Sure. You can do a partial decode yourself, scan for the start of frame markers, pull the I/P/B state from that, and periodically "forget" to pass the buffer through. Your filter could have MPEG in and out. -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc.
From: DANNY on 23 Feb 2010 05:39 @James I am thinkinhg about effect of errors that are within the sequence of P frames. Where the P frames have only the information about the changes in previous frames, so that errors are present until the next I frame. So I would like to see how is this seen in different GoP sized clips. @Tim Thanks for the advice, now I will try to do that so I have a lot of work in front of me. I will post any problems if they occure. Guys thank you again for the help!
From: Rhodri James on 23 Feb 2010 20:11 On Tue, 23 Feb 2010 10:39:21 -0000, DANNY <danijel.gvero(a)gmail.com> wrote: > @James I am thinkinhg about effect of errors that are within the > sequence of P frames. Where the P frames have only the information > about the changes in previous frames, so that errors are present until > the next I frame. So I would like to see how is this seen in different > GoP sized clips. Ah, I see. What I'd suggest you do is to encode your video clip at various GOP sizes (you'll want some quite extreme ones for comparison), then write a little program that reads in the file byte by byte and randomly corrupts the data as it goes through. "tsplay" from the tstools suite that I mentioned earlier will do that for you (because it was very handy for testing the robustness of our decoders). Then watch the results using VLC or similar. My recollection is that when the image isn't static, P frames tend to have enough intra-coded blocks that corrupted video data doesn't have as much effect as you might think. I've dealt with streams that had ten seconds or more between I frames, and starting at a random spot (simulating changing channel on your digital TV) builds up an intelligible (if obviously wrong) image surprisingly quickly. PS: my first name is Rhodri, not James. Don't worry, it catches a lot of people out. -- Rhodri James *-* Wildebeeste Herder to the Masses
From: DANNY on 24 Feb 2010 03:28
On Feb 24, 3:11 am, "Rhodri James" <rho...(a)wildebst.demon.co.uk> wrote: > On Tue, 23 Feb 2010 10:39:21 -0000, DANNY <danijel.gv...(a)gmail.com> wrote: > > @James I am thinkinhg about effect of errors that are within the > > sequence of P frames. Where the P frames have only the information > > about the changes in previous frames, so that errors are present until > > the next Iframe. So I would like to see how is this seen in different > > GoP sized clips. > > Ah, I see. What I'd suggest you do is to encode your video clip at > various GOP sizes (you'll want some quite extreme ones for comparison), > then write a little program that reads in the file byte by byte and > randomly corrupts the data as it goes through. "tsplay" from the tstools > suite that I mentioned earlier will do that for you (because it was very > handy for testing the robustness of our decoders). Then watch the results > using VLC or similar. > > My recollection is that when the image isn't static, P frames tend to have > enough intra-coded blocks that corrupted video data doesn't have as much > effect as you might think. I've dealt with streams that had ten seconds > or more between I frames, and starting at a random spot (simulating > changing channel on your digital TV) builds up an intelligible (if > obviously wrong) image surprisingly quickly. > > PS: my first name is Rhodri, not James. Don't worry, it catches a lot of > people out. > > -- > Rhodri James *-* Wildebeeste Herder to the Masses Well for my simulation of errors I am thinking on using the WANem (Wide Area Netwrok Emulator) which has a function to simulate dellay, jitter etc.. http://wanem.sourceforge.net/ I have been downloading the clips from youtube and I surprisengly saw that I frame occures after 300 frames(at 15fps-so that means after 20 seconds)! That was quite unusal for my perception of the purpose of I frame, but then I figured out that (as you mentioned) P frames include intra-coded blocks which hide the effect of the errors. The goal of my project is to make a program which plays the corrupted video after being out thru error concealment, and in case when errors overcome some threshold error value the program doesn't paly any more frames until the I frame occures and then I would figure out the optimal threshold value for the different GoP sizes as well as different content of the clip. |