Comments (3)
Hi Adrian - Thanks for asking. The MVs are contained in the slice data - decoding is not currently supported, as this library mostly works with header data. There is some work-in-progress code, please see #8. If you want to dig into that, that would be great, but it is going to be quite a lot of work - mainly because this code doesn't have working CABAC (yet).
There are some possibly better starting points:
- JM reference software: http://iphome.hhi.de/suehring/tml/download/
- JM reference modified by VQEG to dump motion vectors and more: https://vqeg.github.io/software-tools/encoding/modified-avc-codec/
- FFMPEG decoder (try https://github.com/shengbinmeng/ffmpeg-h264-dec), or possibly a couple of simpler decoders https://github.com/mbebenita/Broadway
Note that in addition to the MVs, you will at a minimum need the macroblock types, partitioning modes and likely the reference frames as well. It is simpler than fully decoding the video (no DCT, no motion compensation) but not hugely simpler.
I'm interested in this as well, please let me know how you solve this.
from h264bitstream.
I believe that there would be a huge demand for this feature if it were to be implemented. In particular, I'd like to be able to apply this to motion detection in the field of physical security. Motion detection in open source software currently requires full decompression and frame-by-frame analysis, and the CPU cost is near prohibitive.
If motion vectors could be extracted from the compressed domain, it would allow high resolution and high frame rate motion detection even on very low end hardware.
from h264bitstream.
@lbdroid Indeed, that would be useful. I can offer to do this feature as a bounty, as it involves a significant effort - please contact me at aizvorski at gmail if you're interested.
from h264bitstream.
Related Issues (20)
- Exponential golomb encoding fixes HOT 3
- h265bitstream support HOT 6
- libh264bitstream.so.0 file not found HOT 1
- "error while loading shared libraries" when running h264_analyze HOT 1
- No avcc-support
- debug_nal not existent? HOT 1
- Compile command for h264bitstream
- How to recombine base and enhancement layer, splitted using svc_split?
- platform support HOT 1
- Fuzzing with the sample streams leads to lots of crashes HOT 8
- autoreconf: 'configure.ac' or 'configure.in' is require
- Write a h264 stream copy-paste using this library
- SPS scaling list writer assumes 8 and only 8 indices
- segmentation fault in read_slice_layer_rbsp HOT 1
- Missing braces in for loop HOT 1
- Homp
- How do I install & use h264bitstream? HOT 1
- Bug: bs_read_ue compiler-dependent behavior when i==32 HOT 2
- avcc->pps_table is initialised using the SPS count instead of the PPS count HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from h264bitstream.