0
$\begingroup$

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?

$\endgroup$
1
$\begingroup$

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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.