Log in

View Full Version : Adding encoder stage to AVS output?


fvisagie
18th August 2009, 13:11
Hi All,

Although some of the problems I'm experiencing with video editing can be overcome by having AVS serve the source to the external editor, one remains. That is that even without any explicit filtering, AVS transforms frames to some decompressed format before serving.

In the case of DV input frames, this means DATECODE information is lost. AVS has no idea what footage the external editor retained in the final rendering, meaning I can't use something like DVInfo to extract DATECODEs in the AVS stages of the process.

In theory, that problem could be overcome if - in the case of this example - AVS directly copied frames from the input DV decompressor to the output DV compressor, the way VirtualDub direct mode does.

The question is, would it make sense to have an all-in-one AVS that also provides output compression? If so, is this at all on the roadmap, especially DV encoding (Cedocida codec)?

Thanks,
Francois

TheFluff
18th August 2009, 17:00
I don't really see the connection between the scenario and your question, but if you insist on "output compression" from AVS, ENPipe (http://ivtc.org/new/ENPipe-1.0.rar) may be of interest.

fvisagie
18th August 2009, 17:34
I don't really see the connection between the scenario and your question, but if you insist on "output compression" from AVS, ENPipe (http://ivtc.org/new/ENPipe-1.0.rar) may be of interest.

You're right, it's not explained well. I'll try to do better.

When using AVS to serve media to an external editor, even if the external editor ordinarily preserves DATECODEs when rendering unchanged input DV frames to DV AVI output, what the external editor receives from AVS is no longer in uncompressed DV format. The DATECODEs are lost within AVS already.

A direct mode for AVS to copy input frames as is to output would overcome that. But for reasons I don't currently understand, that seems to require an output encoder of the same format as the input decoder (at least that's how VirtualDub does it).

Therefore to implement a direct mode in AVS would require an output "encoding" stage by the looks of it.

Thanks for the link.

2Bdecided
18th August 2009, 17:34
AVIsynth (by design) doesn't have the equivalent of a directstreamcopy mode, if that's what you are getting at.

Some NLEs pass the time, date and shooting information through, even if you edit, add effects, etc. I know Edius Neo can even do it for HDV.

Cheers,
David.

Gavino
18th August 2009, 18:08
A direct mode for AVS to copy input frames as is to output would overcome that. But for reasons I don't currently understand, that seems to require an output encoder of the same format as the input decoder (at least that's how VirtualDub does it).
Direct copy only makes sense if the output codec is the same as the input one. If they are different, then by definition there has to be a conversion of some kind, in which case it's no longer 'direct'.

Avisynth is a frame server, and as such is designed to deliver uncompressed frames to its client application. Moreover, because a filter graph defined by a script can be arbitrarily complex, the 'back end' does not even know which frames of the final output are original frames or where they came from. Modifying the design to track the provenance of frames would probably involve major surgery.