The motion vector extractor is a tool to extract frames, motion vectors, frame types and timestamps from H.264 and MPEG-4 Part 2 encoded videos. The tool provides a single class, which serves as a replacement for OpenCV's VideoCapture and can be used to read and decode video frames from a H.264 or MPEG-4 Part 2 encoded video stream/file.
This Docker image is based on the manylinux_2_28 image and serves two purposes:
- It contains all dependencies to run the motion vector extractor and its test suite.
- It functions as build environment for building the Python package of the motion vector extraction for all supported Python versions.
Images tagged with dev
and buildcache
are intermediate artefacts generated by the CI and should not be used directly.
Pull and run the motion vector extractor with
docker run lubo1994/mv-extractor:latest extract_mvs -h
Map a video file into the container and extract motion vectors (replace <videofile.mp4> with the actual filename)
docker run -v ./<videofile.mp4>:/home/video_cap/<videofile.mp4> lubo1994/mv-extractor:latest extract_mvs <videofile.mp4> --verbose
If you want to use the graphical preview, you have to supply additional arguments to the docker run command
docker run -it --ipc=host --env="DISPLAY" -v ./<videofile.mp4>:/home/video_cap/<videofile.mp4> -v /tmp/.X11-unix:/tmp/.X11-unix:rw lubo1994/mv-extractor:latest extract_mvs <videofile.mp4> --preview
For more details on the usage see the project homepage.
This software is written by Lukas Bommes and licensed under the MIT License.
If you use the project for academic research please cite
@INPROCEEDINGS{9248145,
author={L. {Bommes} and X. {Lin} and J. {Zhou}},
booktitle={2020 15th IEEE Conference on Industrial Electronics and Applications (ICIEA)},
title={MVmed: Fast Multi-Object Tracking in the Compressed Domain},
year={2020},
volume={},
number={},
pages={1419-1424},
doi={10.1109/ICIEA48937.2020.9248145}}