Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 27th June 2012, 00:48   #1  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Twriteavi issue with MT

I'm using this script to write intermediate file:

http://forum.doom9.org/showthread.ph...71#post1073371

works fine, but not with MT. Once setmtmode is used script tries to create output file twice (or more times- same applies to qtoutput), but it can't because file is already open.

Any way to fix it?

update:

Just realized that it does not work the way I want it anyway. Twriteavi has to always be at the end of the script, which means it's always the same as whole output file.
How can I output 2 files as the same time, where one of them is eg rendered in Vdub and another is from the middle of the script, eg.

a=avisource()
b=qtgmc(a)
interframe(b)

How can I write file b during rendering whole script in Vdub. I would prefer some avi, but yuv will be also fine.

Thanks

Last edited by kolak; 27th June 2012 at 01:05.
kolak is offline   Reply With Quote
Old 27th June 2012, 09:04   #2  |  Link
Gavino
Avisynth language lover
 
Join Date: Dec 2007
Location: Spain
Posts: 3,431
Quote:
Originally Posted by kolak View Post
works fine, but not with MT. Once setmtmode is used script tries to create output file twice (or more times- same applies to qtoutput), but it can't because file is already open.

Any way to fix it?
Try using SetMTMode(5) for that part of the script.

Quote:
Just realized that it does not work the way I want it anyway. Twriteavi has to always be at the end of the script, which means it's always the same as whole output file.
Are you sure? I see nothing in the documentation to suggest that.

Quote:
How can I output 2 files as the same time, where one of them is eg rendered in Vdub and another is from the middle of the script, eg.

a=avisource()
b=qtgmc(a)
interframe(b)

How can I write file b during rendering whole script in Vdub.
Try this:
a=avisource()
b=qtgmc(a)
b = b.twriteavi(...)
interframe(b)
__________________
GScript and GRunT - complex Avisynth scripting made easier
Gavino is offline   Reply With Quote
Old 27th June 2012, 10:32   #3  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Thanks- tried all modes- does not help.
If twriteravi is not at the end than it does not work

I will check your script- did not try this way.
kolak is offline   Reply With Quote
Old 27th June 2012, 11:02   #4  |  Link
Gavino
Avisynth language lover
 
Join Date: Dec 2007
Location: Spain
Posts: 3,431
Quote:
Originally Posted by kolak View Post
Thanks- tried all modes- does not help.
If twriteravi is not at the end than it does not work
twriteavi is just a filter like any other.
If called without a clip, 'last' must be defined for it to work - in your script, 'last' is not defined until the line
interframe(b)

That's why it appears it 'needs' to be at the end of the script in this case.
__________________
GScript and GRunT - complex Avisynth scripting made easier

Last edited by Gavino; 27th June 2012 at 11:05.
Gavino is offline   Reply With Quote
Old 27th June 2012, 14:00   #5  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Hmmm- I had eg. it this way:

a=avisource()
b=qtgmc(a)
twriteavi(b, ...)
interframe(b,....)

Is this wrong?

I can see that your way may work- will try
kolak is offline   Reply With Quote
Old 27th June 2012, 14:04   #6  |  Link
Gavino
Avisynth language lover
 
Join Date: Dec 2007
Location: Spain
Posts: 3,431
Quote:
Originally Posted by kolak View Post
a=avisource()
b=qtgmc(a)
twriteavi(b, ...)
interframe(b,....)
You need
b = twriteavi(b, ...)

Otherwise, interframe will be applied to the original 'b' and the result of twriteavi will be ignored - the filter will not be included in the filter chain and will not produce any output.
__________________
GScript and GRunT - complex Avisynth scripting made easier
Gavino is offline   Reply With Quote
Old 27th June 2012, 14:09   #7  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Makes sense- thanks
kolak is offline   Reply With Quote
Old 27th June 2012, 21:56   #8  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Can't make it working

a=avisource()
b=qtgmc(a)
b=twriteavi(b, ...)
interframe(b,....)

gives twriteavi error: ICSeqCompressFrameStart failed

No idea
kolak is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 09:33.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.