Log in

View Full Version : ProRes in ffmpeg is here! (i think)


Mug Funky
8th November 2011, 06:33
i just saw a commit on the ffmpeg git log thing under the name "proresenc". in my curiosity, i gitted and compiled in msys.

it seems to create prores files that are readable in quicktime! seems to maintain 10-bit as well.

just thought i'd put the news here, because i know there's people who would very much like this capability.

smok3
8th November 2011, 08:42
i saw that some time ago, care to share some command lines? (especially considering keeping the bitnes)
anything special to do while compiling?

Mug Funky
8th November 2011, 12:25
nothing too special about compiling, though note that --enable-version2 is no longer a configure option.

i've known about the decoder for a while, but today's the first commit i've seen about an encoder...

it seems to be C only and doesn't seem to multithread on my work machine (though i could have misconfigured it, as the behavior with w32threads has changed recently). it's still decent fast in SD - realtime and then some.

as far as bitness... just feed it a 10-bit source. it seems to step everything up to 422p10le or whatever it's called for encoding to prores. i'm sure it'll take input from that avs2yuv mod.

i'm a bit n00b when compiling in msys (or indeed anything - it's a new world opened when my laptop HDD died and i replaced it with linux and forced myself to make it work), but i seem to have been lucky with it lately.

btw, i tested an encode in final cut pro, and it loaded fine and didn't need re-rendering. it warned about it not being optimised for FCP, but that just means it wasn't made in FCP and can be ignored. no artefacts spotted so far. i doubt there will be any. prores appears to be mjpeg adapted for multithreading.

smok3
8th November 2011, 13:57
which fcp isued a warning? 7 or X?

Mug Funky
9th November 2011, 00:24
7.

it's the same warning you get when you export from MPEG streamclip, or QToutput, or anything not FCP. certainly not something i'm worried about.

i'm not quite willing to use this in production just yet, but it's good to know it works, and it's a boon for any indie types.

smok3
10th November 2011, 09:59
i did some mega googling yesterday, but couldn't find even a shred of docs on the subject, basically what would editor want is the ability to encode to:

prores 422 LT
prores 422 standard
prores 422 HQ
prores 444

clues?

edit: staring at the code http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavcodec/proresenc.c;h=d27719d3681592e1412e2c1d0eb3eedbf52e336b;hb=HEAD
first 3 seems plausible, but no idea how should that transform into ffmpeg command line...

J_Darnley
10th November 2011, 14:47
1 - It only supports 10-bit 422
2 - I think you would use:
-profile apch|apcn|apcs|acpo
Based on the comment at the top of the file:
Known FOURCCs: 'apch' (HQ), 'apcn' (SD), 'apcs' (LT), 'acpo' (Proxy)

smok3
11th November 2011, 12:01
J_Darnley: I will try that.

kolak
13th November 2011, 16:39
1 - It only supports 10-bit 422
2 - I think you would use:
-profile apch|apcn|apcs|acpo
Based on the comment at the top of the file:
Known FOURCCs: 'apch' (HQ), 'apcn' (SD), 'apcs' (LT), 'acpo' (Proxy)

Source files gets converted to 10bit, but 8bit also work- just probably has 0 in last 2 bits added.
Profile values are 0,1,2,3- where 3 is HQ mode. (0 is proxy).

eg. -vcodec prores -profile 2 - this will produce normal mode.

Note that bitrates are higher than for Apple one (about 30%), but also quality is better. Speed is not that great, because it's not multithreaded yet- but I assume it will be.
There are reports that files work fine in FCP.

Andrew

kolak
13th November 2011, 16:41
btw, i tested an encode in final cut pro, and it loaded fine and didn't need re-rendering. it warned about it not being optimised for FCP, but that just means it wasn't made in FCP and can be ignored. no artefacts spotted so far. i doubt there will be any. prores appears to be mjpeg adapted for multithreading.

Yes- I think it uses different value in the header to avoid legal problems. File is marked as not done by Apple, so maybe that's why FCP complains.
Here is post from guy who made it:

http://comments.gmane.org/gmane.comp.video.ffmpeg.devel/136326


Andrew

smok3
13th November 2011, 22:02
thanks kolak, "-vcodec prores -profile 2 -acodec pcm_s16le" seems to be working, but kinda slow to be really useful at this point (under 10 fps on 1920x1080-25p material, that was prores to prores).

edit: the ffmpeg compile tested was git from d3.m11.2011.

kolak
13th November 2011, 22:06
It's not threaded- but should be soon, I assume.

smok3
20th November 2011, 22:54
trying to go from jpg sequence to prores and i get a green video, any clues?

edit: solved with fresh barebones git compile.

smok3
2nd December 2011, 11:18
decoder seems to be multithread now, but I only get about 10-20% boost.

easy2Bcheesy
14th April 2012, 07:13
Any updates on this in terms of encoder/decoder spped? I'm also wondering if ProRes video could fit within an AVI wrapper (and if FCP would accept it), and whether we could eventually see ProRes added to ffdshow?

smok3
14th April 2012, 19:14
Any updates on this in terms of encoder/decoder spped?
nope, but it might happen eventually.