How to extract/obtain motion vectors from .mp4 videos in MATLAB?

16 views (last 30 days)
Hello, Is there any code (or inbuilt function) for extracting motion vectors (frame-to-frame) from MPEG-4 (H.264 compressed videos)? For my work, the input video is a scene of people moving through streets/malls.
  5 Comments
Shahbaz Khan
Shahbaz Khan on 6 Jul 2020
i have downloaded ffmpeg, how to use it to extract motion vectors? can you please guide. the file have several libraries and codes
Tintumon
Tintumon on 6 Jul 2020
Edited: Tintumon on 6 Jul 2020
Note: The answer is out of scope of this thread.
But, I will explain it.
1) Build the example programs (located in "doc\examples") by using the following command (run the command while you are in the source FFmpeg directory):
make examples
2) Execute the "extract_mvs" binary file, generated as a result of Step 1, to obtain the motion vectors from an h.264 compressed video (navigate to "doc\examples" or provide the absolute path while executing). Write the motion vectors to a text-file (outputFile.txt).
.\extract_mvs inputVideoName.extension > outputFile.txt
This ".txt" file can be read in MATLAB and used for further processing!

Sign in to comment.

Answers (2)

Tintumon
Tintumon on 24 Feb 2018
Thanks again for a detailed answer.
In the case of "VideoReader": 1) What if I had multiple codecs? I guess the routine chooses the default done. Can we manually change the default setting? 2) Also, Will it produce motion vectors as one of its output?

Jishnu P
Jishnu P on 28 Apr 2018
I am not sure about MATLAB. But you can have a look at MV-Tractus.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!