Author Topic: H.264 in-camera encoder - proxy.mo ?  (Read 261 times)

theBilalFakhouri

  • Contributor
  • Senior
  • *****
  • Posts: 295
H.264 in-camera encoder - proxy.mo ?
« on: May 03, 2019, 10:24:50 PM »
I am still searching around how we can get real-time MLV preview, I gave some ideas here.

And got this idea today
Can we encode MLV from the card to H.264.mov in camera ? Using the chipset or H.264 engine not sure what I should call it.

Making proxies in camera it will be very fast process just like recording H.264 (e.g. in 700D a 20 seconds clip @1736x976 @ 29.97 FPS needs 20 Seconds to encode it and maybe less, then we can preview it in real-time with sound.

Not sure if it worked how the higher resolution will take to encode, but at least we don't need real-time encoding, some more seconds doesn't seem a problem.
700D 1.1.5 | no more ISOless LV err 8

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12181
  • Maintenance mode
Re: H.264 in-camera encoder - proxy.mo ?
« Reply #1 on: May 04, 2019, 09:04:15 AM »
Might be doable, but.... keep in mind you also have to decode and render the movie, so it's not going to be any faster than mlv_play. Don't forget mlv_play renders at 720x480, so... if you need high resolution, it's not going to require just "some more seconds".

To make it as fast as possible, one has to:
- figure out how Canon renders a Bayer image buffer as YUV422 (non-trivial)
- figure out how to call the H.264 encoder (likely similar to lossless compression)
- optimize both the MLV reading and the H.264 writing routines (doable, but...)

TLDR - a lot of work would be required for this (and you can achieve the same thing in post-processing).

As a comparison, implementing a software-based pixel binning (starting from 1x3 readout) would be easier by at least one order of magnitude.