Okay, I'm making a video heavy on special effects and each clip will probably be run through Blender at least four times. Once for de-interlacing and setting the frame rate to 30 (I might use HandBrake for that part) once for editing, once for special effects, and once for color correction and other compositing tricks. If I converted each of these clips to an PNG image sequence, the project would probably be a couple hundred Gigabytes. What video format retains the most quality for this sort of thing?
-
3$\begingroup$ My two cents... If your concern is quality, performance and file size... Edit in some editing software that will allow you to use your original files with no transcoding ... Export proxy files as reference to make elements in blender. Render from blender as files with alpha channels and layers (in OpenEXR, PNG, tif or any other uncompressed format). Bring those elements into your editing software for compositing and color correction, avoiding all of the multiple generations and further degradation of your images. At the end of your pipeline render to a compressed format playable in any device $\endgroup$– user1853Commented Nov 29, 2015 at 8:23
-
1$\begingroup$ Do you plan to distribute your clips to several people or why is running it through Blender only once no option? The most quality is retained with AVI Raw, I bet. I could show you a pipeline without having to rerun Blender several times or saving uncompressed images with tons of GBs and achieving everything you want. I had a similar need and managed to do it properly... $\endgroup$– SamothCommented Nov 30, 2015 at 8:11
-
$\begingroup$ @Smooth Well,it's a lightsaber movie and I filmed with a camera that took interlaced footage at 60 fps. $\endgroup$– Anson SavageCommented Dec 1, 2015 at 0:15
-
$\begingroup$ @Samoth If you could do that, it would be great ! Thanks. $\endgroup$– Anson SavageCommented Dec 3, 2015 at 23:52
-
1$\begingroup$ I did - and btw: The color correction can since 2.77 be done even better with Strip Modifiers (which now can be append-copied to other selected strips) like White Balance or Tone Mapping. And there are Sequencer to Compositor Add-ons to do some compositing after your editing... $\endgroup$– SamothCommented Mar 21, 2016 at 22:53
2 Answers
Don't.
- Control the rendering of your codec to a lossless stills format to load into your pipeline. Do so only after having locked your picture edit.
- Save to EXR when you must save to a file format, and stay in EXR until your final grade. Even half float EXRs would be satisfactory.
- Conform to a display referred format such as JPEG or TIFF at the very end. DPX is the standard here, but is likely a more complex path for reasons that are too vast to list here.
- Encode from there.
If you ask a follow up question, I could give you a very standardized production pipe that might illuminate why this is advised.
-
$\begingroup$ Thanks for the answer.It's a lightsaber movie and I filmed with a camera that took interlaced footage at 60 fps. If you could provide a pipeline for that, it would be greatly appreciated. Thanks. $\endgroup$ Commented Dec 1, 2015 at 0:17
-
2$\begingroup$ Ask it in a second question maybe? Might make the answer more useful for other folks. $\endgroup$– troy_sCommented Dec 1, 2015 at 17:44
-
1$\begingroup$ @AnsonSavage What exactly are you not understanding? It should be possible to explain the things you aren't quite grasping, so ask. Extract to stills such as half EXR, stay there until your work is completed, then encode to a motion picture format. $\endgroup$– troy_sCommented Mar 26, 2016 at 16:10
-
3$\begingroup$ “Locked” means that your edit is finished; your motion picture is finished and you can commence work on visual effects and other post production bits. “Conforming” is an older term that refers to gathering up the bits to move to another format. In this case, gathering up the visual effected EXRs and dumping them to another format suitable for encoding into a motion picture. $\endgroup$– troy_sCommented Mar 26, 2016 at 17:06
-
1$\begingroup$ @AnsonSavage Huge congratulations on completing your motion picture as well! $\endgroup$– troy_sCommented Mar 26, 2016 at 17:57
Load properly deinterlaced, frame accurate footage into Blender
Here are a summary and some explanations of my workaround for using AVCHD files in Blender* which basically a) eliminates the need for a prior deinterlacing or fps change run and b) eliminates most frame decoding problems you get with the Blender-internally used ffmpeg library:
AviSynth 2.6.0.4 (32 bit)
The L-SMASH Works Plugin r729 for AviSynth
Make sure to extend your PATH-variable to its location!
(needs vcruntime140.dll which I found out via Dependency Walker)Pismo File Mount Audit Package version 1.7.1
Hint: since 1.7.4 they changed the position of where the file will be mounted to C:\Volumes instead of being replaced by a folder in its current location.AVFS - AviSynth Virtual File System 1.0.0.5
the newer one doesn't include the *.dll but only an executableA small .AVS-Script to load the footage into AviSynth:
LoadPlugin("LSMASHSource.dll") LWLibavVideoSource("avchd_file.MTS") ChangeFPS(24)
Optionally I used as well:
- QTGMC 3.32 for best quality deinterlacing (
QTGMC(Preset="Slow")
but that was a bit tricky to set up) and you could more easily use the includedBob()
instead. And I sometimes needed aSelectEven()
as well as I had some interlaced footage from a prior camera that was read in as doubled frames progressively.
This basically allows me to Quick mount my .AVS-file with Pismo FMAP. It then "disappears" and there is a virtual folder created at its place instead. Additionally during the mount process once an relatively small avchd_file.MTS.lwi index file is created next to my orifinal footage by L-SMASH. It includes all the frame details and some meta information about my AVCHD file so that the plugin can provide each and every single frame accurately and properly.
The new virtual folder should include three files:
- avchd_file.avi: the virtual avi file I can load into Blender (ignore its huge virtual size)
- avchd_file.avs: the original AVS script that disappeared
- error.log: some statistics about my video stream and hopefully no error message (except that the clip has no audio)
I then use the virtual .avi file in Blender and before I load in the original .mts file as well to get two strips (audio and video) where I only retain the audio strip and delete the video strip. But I only use these audio Strips for a cross correlation to match up my externally recorded and already Audacity-edited audio Wave file anyways. Combining Audio and Video through the AVS-Script would be possible as well via AudioDub(...)
, but I didn't need it in the end.
When I want a fast playback for editing I have to use proxies though, but that's fine and usually I can play my footage at around 8-10fps in the vse which is enough for my purposes and cutting. But with this setup I get perfect accurate single frames provided by the great L-SMASH plugin from my footage that I can use in the VSE much better than the mostly stuttering or duplicated or even artifacted ones that the internally used ffmpeg library provides.
The ChangeFPS
can of course be adjusted in its frame rate or if needed be replaced by a ConvertFPS
for including frame blending.
* My Setup was inspired by yellow, but unfortunately his blog is offline, I had to use the web archive to find out some details. There are attempts to enable AviSynth support in the internally used ffmpeg library, but these would require a fresh compile or a difficult version matching. It would be awesome if this could be enabled by default in Blender, but for now one has to use this workaround with mounting this script and using the resulting virtual .avi file.
Eliminate multiple runs through Blender
Take some inspiration from Can I add the output of the VSE as input to the node diagram?. That and the following hints should help omitting the extra special effects run.
You can do some color correction right inside the VSE now.
Not to forget, you can nest Scenes and use them to non-destructively remove parts of your edits, as of 2.77 the developers included:
Nested scene strip support (like metas)
This makes it possible to use scenes as a kind of multi-user meta-strip (with their own time), (485ea43).
Since this release you can also use Strip Modifiers that you can append-copy to other strips. Or use Adjustment Layer Effect Strips to adjust all underlying Strips at once.
Please give a hint of what could be improved before downvoting and expressing: "This answer is not useful".
-
3$\begingroup$ Not the DV, but this doesn't help in a vfx pipeline. The use of video containers don't makes sense in many ways, it's simply a bad suggestion. Also AVCHD is a bit outdated. Anyway, thanks for your effort. $\endgroup$– p2orCommented Mar 22, 2016 at 8:42
-
3$\begingroup$ Again, I'm not the DV. I only wanted to help, but it seems that you are too frustrated. If this works for you in this special case then do it that way :) In addition: writing stuff like Upvote this! is provocative and could be another reason for a downvote (that's why I removed it). $\endgroup$– p2orCommented Mar 22, 2016 at 12:46
-
2$\begingroup$ The reason this is an absolutely awful idea is very clear to anyone that has ever attempted visual effects. Properly managing your colour pipeline in addition to proper 32 bit float reference space intermediates are just the tip of the iceberg, and there are a dozen other reasons without even straining. Remember, in a proper pipeline, an edit of your work happens before commencing visual effects, and not a single frame from the edit is typically used. It is, in no uncertain terms, horrible advice to use a codec. $\endgroup$– troy_sCommented Mar 23, 2016 at 5:45
-
2$\begingroup$ It doesn't matter what you use, and the suggestion is applicable to Blender or any other software. NLEs are unfit for compositing work. $\endgroup$– troy_sCommented Mar 23, 2016 at 12:41
-
1$\begingroup$ Awesome! Thank you for the very detailed answer. I really appreciate it. $\endgroup$ Commented Mar 26, 2016 at 4:55