Jump to content

High Performance Video Processing Tools: H.265/H.264/ProRes


jcs
 Share

Recommended Posts

I released a high-performance tool to convert MP4s to MOVs to allow Resolve to use the A7S's audio. This app could be updated to also support fast H.265 to H.264/ProRes for the NX1 as well as other conversions provided by ffmpeg. mlrawviewer for 5D3 RAW could be modified to use this system as a parallel batch processor to greatly reduce time converting MLV files to ProRes and even 422 10-bit H.264 (similar to XAVC spec).

Let me know your thoughts regarding updating these tools as well as any other desired tools & features.

Link to comment
Share on other sites

EOSHD Pro Color 5 for Sony cameras EOSHD Z LOG for Nikon CamerasEOSHD C-LOG and Film Profiles for All Canon DSLRs

How do i get it do not see a link?

Can you add in the ffmpeg for converting 265 to HQX for Edius use for my NX1 files

I am using VDub right now for this i like it but it needs to let the user to grab over all clips at one time right now i have to move one clip at a time very slow when doing over 100 clips.

Link to comment
Share on other sites

Hi Ed- here's the Windows version: http://brightland.com/w/mp4tomov-for-windows/ . Currently it quickly rewraps MP4s to MOVs (batched). Adding support for H.265 to H.264 or ProRes would be fairly quick.

Looking at the supported codecs for ffmpeg- I didn't find HQX or anything from Grass Valley. HQX looks like a version of MJPEG (similar to ProRes) optimized for Edius. I examined the HQX downloads at Grass Valley- didn't see any command line tools. Creating a custom tool with DirectShow is doable (in order to use the Windows HQX codecs), however would take a bit of time. VirtualDub supports the command line- if it's possible to use VirtualDub command line to process your files, I can add support very quickly.

Link to comment
Share on other sites

mlrawviewer for 5D3 RAW could be modified to use this system as a parallel batch processor to greatly reduce time converting MLV files to ProRes and even 422 10-bit H.264 (similar to XAVC spec).

​This sounds interesting.  Anything that could speed up the process would certainly make a difference in my workflow.  Raw takes too much time for me right now.  Thanks for putting in the time and making it available to the community.  Same goes for all your other tests and such.

Link to comment
Share on other sites

Ed- thanks for the file. It appears to be a component for Edius along with ffmpeg dlls (but no command line tool). If there's a command line tool to convert H.265 to HQX, I can create a parallel batch processor for it.

Chris- today I created an ffmpeg proxy to intercept the calls from mlrawviewer. ffmpeg is called in a way that uses a pipe for input, where mlrawviewer feeds ffmpeg uncompressed video frames, one at a time, which ffmpeg then compresses and writes to disk. So I can't just copy the command line arguments and run the jobs in another process. While I could read from the pipe as fast as mlrawviewer writes to it (caching the data then feeding to another instance of ffmpeg), It looks like the AmaZe debayer used by mlrawviewer is the main bottleneck.

Given this bottleneck and the nature of how mlrawviewer works e.g. load a file, set WB, exposure, and gamma curve, then export to disk, the fastest workflow (without major changes to mlrawviewer itself (written in python)), is to run multiple copies of mlrawviewer, processing the first file in the first viewer, 2nd file in 2nd viewer, and so on, cycling which viewer is used as you go along. On my 12-core MacPro running Win7 with a GTX 770 (modded to run on OSX as well), I see 80+% CPU utilization and about 60% GPU utilization running two copies of mlrawviewer at once. So 3 copies would probably be the max on this machine.

I found that ffmpeg has native MLV support, going back to April of last year: http://www.magiclantern.fm/forum/index.php?topic=11566.25 , however after testing it today with an ffmpeg build I compiled last month from the latest code, it's not complete: same results as reported in the ML thread. The reason the output looks dark, is it's linear video (no gamma applied), however it also doesn't finish processing the files, so not usable yet. A which point MLV works with ffmpeg, a parallel batch processor will be possible.

 

 

Link to comment
Share on other sites

With that file all i had to do with it was drop it into a folder called Plugins with in VDub for it to work they have a 32 or 64 bit version i have used both using the 64 now.

Looking to buy this video card next that says it dose it in real time but not sure if this will help me or not for the NX1 files to be converted what do you think?.

http://us.hardware.info/reviews/5890/test-the-geforce-gtx-960-is-the-best-htpc-gpu-of-this-moment

 

Will your program work for NX1 files to Prores fast right now i would rather have HQX but if i can do Prores very fast that would good. also with a setting for smaller sizes i am using a smaller file size and see no loss and it saves a lot of HD space.

Keep a eye out for TMPGE MW6 It is out in Japan and should out all over soon. I am told this will be the fix for all this as you can pre edit your clips before converting them to save time and HD space and it dose many other things as well..

Here is Version 5  6 adds in the new functions.

http://tmpgenc.pegasys-inc.com/en/

Link to comment
Share on other sites

The GTX960 looks pretty solid. In order to use the hardware H.265 decoder, the transcoder app must use the Windows DXVA2 API (this means a native DirectShow implementation vs. command line as with ffmpeg). IMO the DirectShow API is the most complex API in Windows (as in hard to use to create reliable apps!). lol- the original architect has left Microsoft and now works for Twitter which, ironically is one of the simplest and easiest to use apps out there! Apps that already use DirectShow will be able to support this feature fairly easily (perhaps even VirtualDub).

For those who dual-boot WIndows/Mac, check out Macvidcards: http://www.macvidcards.com/index.html . They mod fast PC cards to work in both Windows and OSX. It's unclear if the H.265 acceleration would be exposed on the OSX side (through AVFoundation), but it's certainly possible in the future.

TMPGEnc- used to use it a long time ago. Nice to see they are still around. It supports CUDA H.264 hardware encoding, but they don't indicate any form of hardware decoding. Curious that they're also using x264- thought it was GPL licensed (as in can't be used in closed source apps).

I added Prores support today and am currently adding multiple parallel job support. Also experimenting with ALL-I 10-bit 422 H.264 as well as IPB 10-bit 422 H.264 (works OK in Premiere Pro CC). Since H.264 can be hardware decoded, and H.264 10-bit 422 is a newer implementation vs. ProRes (a form of MJPEG), it might provide more efficiency as well as play back faster in NLEs which hardware decode H.264.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • EOSHD Pro Color 5 for All Sony cameras
    EOSHD C-LOG and Film Profiles for All Canon DSLRs
    EOSHD Dynamic Range Enhancer for H.264/H.265
×
×
  • Create New...