The future of AMV distro? [followup: open source amv]

Locked
User avatar
koronoru
Joined: Mon Oct 21, 2002 10:03 am
Location: Waterloo, Ontario
Org Profile

Post by koronoru » Fri Aug 08, 2003 12:27 pm

Every video I create involves at least dozens if not hundreds of files. There are scripts to rip the DVDs (usually applying some processing along the way), other scripts to generate the index files needed by my editing software, still images I screen-cap (often without recording the exact coordinates from which I captured them, even if my playback program were frame-accurate which it often isn't), usually two or three EDLs (the main one and a couple of backups or checkpoints), sometimes scripts to edit the EDLs to correct for idiocies in the editing software, more scripts for processing the output into a distributable form, "profile" files setting options for the encoder, and so on and so on. To make matters worse, everything depends on the current versions of the software I'm using - if I upgrade, often features change and files have to be changed to suit.

The end result is that when I finish a project and burn a final version to CD, if I come back to it a few months later, it's a triumph if I can reproduce ithe video again exactly myself. I'd love to be able to share my created files (scripts, EDLs, etc.) and have someone else be able to reproduce my work exactly; but it's hard to imagine how that would be possible. They would have to first reproduce my entire system configuration. The couldn't just have the same DVDs; they would have to rip them in the same way I did, with the same version of the same software, to directories with the same names, and so on.

Now, the same kind of problem also affects the people who make open-source software, and they have a solution for it (actually, two). One solution is to just dumb everybody down to the lowest common denominator, and then pray. That's why most Windows software works on most Windows systems without needing to be recompiled. It doesn't always work, of course, and you do pay a price for that partial compatibility. The other solution is autoconf (or equivalent); before you build the package, you run some software that is written for absolute maximum portability and that probes your system to figure out what to have. Then it edits the software you're building, to make it compatible with your particular configuration. In the case of an AMV, I imagine the configure equivalent would for instance touch up the EDL to point at the directories in which you've ripped your DVDs. autoconf only works because the tools that it's feeding into (compilers, linkers, and so on) are designed to take their marching orders from text files in well-documented formats. You can write a configure script that will generate text config files and the tools for building the software package will look at those files and it'll all work.

Applying the same logic to AMVs doesn't work because important steps in "compiling" AMVs are done with manual intervention and not defined in terms of text files that can be processed by automated tools. If I open up an image with an image editor and use an eraser to remove a character, there isn't anywhere recorded "Oh, koronoru captured frame 398003 of the DVD with identification code 83970DEADBEEF4973097, then removed pixels in such and such coordinates". All that's recorded is the final image. So either I have to graft some kind of human-readable note into the package saying "You will need this image file, generate it by the following procedure", or I have to treat the edited image as a fait accompli, something that just has to be included as-is in the distribution, or I have to rewrite the entire fucking image editor to record my editing activities in a version-controllable form. And that last is tricky if it's something like Adobe Photoshop where I don't have the source and will get sued if I try to reverse-engineer it, even assuming I have the skill and inclination to do so. Even when the instructions for compiling the AMV are in a file (e.g. a Premiere EDL) it's often an undocumented non-text format; even when the format is text and at least sort of documented (e.g. a Cinelerra EDL - no docs, but at least source code is available), the actual action of compiling/rendering the AMV often involves GUI commands that are not easily scriptable.

AMVs have huge amounts of tricky dependencies (unlike software, which only has a lot of dependencies), AMVs require human participation to compile, often at least to press the button and usually also to do human-intelligent things like image editing, and so it's very difficult to compile an AMV without the participation of its original creator, or on any system other than the one where it was first created. Even the same system operated by the same human after a few months of upgrades, is often a big problem.

User avatar
Tab.
Joined: Tue May 13, 2003 10:36 pm
Status: SLP
Location: gayville
Org Profile

Post by Tab. » Fri Aug 08, 2003 12:32 pm

koronoru pwns me
◔ ◡ ◔

trythil
is
Joined: Tue Jul 23, 2002 5:54 am
Status: N͋̀͒̆ͣ͋ͤ̍ͮ͌ͭ̔̊͒ͧ̿
Location: N????????????????
Org Profile

Post by trythil » Fri Aug 08, 2003 1:28 pm

Tab. wrote:koronoru pwns me
Yes.

Beautifully done, koronoru.
Write a script to detect the client's DVD-ROM drive and program path, and mirror *every single action* the AMV author has taken to create his or her AMV.
Still not feasible. Do you know the kind of insanity it would take to record the kinds of actions that occur in a usual AMV session? Even a centralized scripting engine like Windows' VBScript or OS X AppleScript couldn't handle it, because the applications I use either don't have scripting hooks or have their own scripting languages that are incompatible with everything else (by necessity or by design).

Examples of the above (all programs I use): Cinelerra (no scripting hooks yet) and Blender (it has a Python scripting engine, but it works with nothing else). More examples of category #2: Photoshop, CinePaint.

Recording something at a higher level -- i.e. mouse clicks -- wouldn't work either. Absolute coordinates are obviously out of the question, and there's really no other way to do it. In Windows' GUI and just about every other GUI, objects are assigned handles, and they are rarely ever assigned the same handle twice. Objects also have names, but frequently they're given the same name, and assigned a position in an array that is internal to the program being used.

Hell, that all assumes that Windows can even isolate the objects in question. Blender, for example, uses OpenGL to render its UI and handles all the other stuff internally; Windows doesn't have a hope of interacting with it in the manner I described above. And no, I didn't bring up Blender just for an example; I've used it extensively in two AMV projects.

But now I'm tired of entertaining this proposal. It's clear to me, from a look at your profile and your writing, that you've insufficient experience with the AMV creation process.

When you have created a few AMVs, hopefully you'll see why we all say that your idea smacks of impossibility. That, or you'll put forward an idea for automation that actually makes sense.

User avatar
Nurd
Joined: Sun Jun 08, 2003 1:38 pm
Org Profile

Post by Nurd » Fri Aug 08, 2003 1:40 pm

I think AMV editing is too much of a creative process to be truly automated in any form, sure anyone could write a program that cut random Anime scenes and put them to music (could probably even do decent beatmatching), and theoretically that would be an AMV, but that's about as automated someone could get.

Any kind of action recorder would require I do nothing but make that AMV for the duration of the recording, making sure to stop the recording anytime I went to check my email or whatnot. And then I'd have to edit the recording to take out the stop recording action.

And even if it's not action recording but more, this section is XX:YY second long, starting at 00:00 and ending at 00:00+XX:XX:XX type recording, you would either have to standardize the software everyone uses (Everyone Must use Premiere version X.0 and AfterEffects Y, and everyone must have this version of that codec and these .dll's) and for alot of us the cost would go crazy to buy all the software needed.

Tell ya' what, if you truly want to be able to get videos without saturating your bandwidth, we'll create a subscription service, and for the cost of air fare, food, lodging, local transport once out of the sky, and some yet-to-be-determined hourly wage, we can send an AMV creator to your house with their anime and music collection to recreate whichever video of theirs you wanted to see, or even create a new one.


Good, Bad, I'm the guy with the GunDam

Nurd

User avatar
koronoru
Joined: Mon Oct 21, 2002 10:03 am
Location: Waterloo, Ontario
Org Profile

Post by koronoru » Fri Aug 08, 2003 4:45 pm

Nurd wrote:Tell ya' what, if you truly want to be able to get videos without saturating your bandwidth, we'll create a subscription service, and for the cost of air fare, food, lodging, local transport once out of the sky, and some yet-to-be-determined hourly wage, we can send an AMV creator to your house with their anime and music collection to recreate whichever video of theirs you wanted to see, or even create a new one.
That would rock!

Locked

Return to “Video & Audio Help”