I am interested in extracting specific timechange information from an mp4 1900x1200 20fps video.The only pixels I want to process can be found in its borders. Therefore I only need to process approximately 6200 pixels/frame. I am using Matlab and VideoReader function, which is terribly slow. Is there a way to extract only one pixel from each frame of the video throughout its duration, in order to speed up the process? Or am I obliged to load the whole frame? To rephrase the question, if the video is considered to be a mxnxt complex array and the frames are mxn size, can I get a 1x1xt stream instead of mxnx1? I tried to bruteforce by finding information considering the way mp4 is encoded, with no success. If I changed the video encoding or used any other program would that be possible?
1 Answer
In video, pixels are not usually encoded independently; you will need to decode full frames. If you are going to run several experiments on a single video, I would suggest that you decode the video once frame-by-frame and write the border pixels into a file in your own raw format for easy access. This should give a manageable file size perhaps of a few gigabytes for a movie-length video.