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.

Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se

 

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

Reply
 
Thread Tools Search this Thread Display Modes
Old 14th October 2013, 18:25   #201  |  Link
TheFluff
Excessively jovial fellow
 
Join Date: Jun 2004
Location: rude
Posts: 1,100
avisynth on windows in a virtual machine

I'm not joking
TheFluff is offline   Reply With Quote
Old 14th October 2013, 18:35   #202  |  Link
manma
Registered User
 
Join Date: Feb 2012
Posts: 18
Quote:
Originally Posted by TheFluff View Post
avisynth on windows in a virtual machine

I'm not joking
Glad you showed up. Will x264 perform well enough in a VM? Would I have to use something like kvm or xen for decent performance? Also, I don't mean to be a skeptic, but with a set of IVTC filters (I'm assuming that's what decomb is) working in avxsynth, do I -really- need anything else for dealing with a simple transport stream or DVD?
manma is offline   Reply With Quote
Old 14th October 2013, 19:58   #203  |  Link
jackoneill
unsigned int
 
jackoneill's Avatar
 
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
Quote:
Originally Posted by qyot27 View Post
Code:
FFVideoSource("input.vob")
You should know that if you have several vobs that go together (as DVDs do), ffms2 is not all that good. It will lose and/or duplicate a frame or a few at the points where one vob ends and the next one begins. You can probably work around this problem by concatenating the vobs (a simple "cat" command) and feeding the result to ffms2.
__________________
Buy me a "coffee" and/or hire me to write code!
jackoneill is offline   Reply With Quote
Old 14th October 2013, 20:13   #204  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,501
If you want to do special filtering (smoothing, masking, etc.), then you're better off just using AviSynth through Wine, and giving it to Windows builds of x264 and FFmpeg, also under Wine. It works fine, and only a couple of things that get too Windows-specific won't work that way (like DirectShowSource). Wine's really not that magical. I use it fairly often to do encodes with HCenc on our iMac, and have used x264 on occasion on there for some anime encoding - it works without issues.

The only tricky part is setting up ffdshow's VFW interface correctly, which you have to do through Wine's version of Regedit by exporting your settings under Windows and then importing them under Wine after you've installed ffdshow (you may also need it to add stuff to Wine's PATH, but there are GUI utilities that can do that, or you could just throw everything in ~/.wine/drive_c/windows).

If all there is is opening a file, performing IVTC, and resizing or similar things that are included in the core itself, then AvxSynth is fine.

Quote:
Originally Posted by jackoneill
You should know that if you have several vobs that go together (as DVDs do), ffms2 is not all that good. It will lose and/or duplicate a frame or a few at the points where one vob ends and the next one begins. You can probably work around this problem by concatenating the vobs (a simple "cat" command) and feeding the result to ffms2.
True. I overlooked that because I never use FFMS2 to process MPEG-1/2 files, and because I've also always ripped titles to their own files instead of preserving the DVD structure as-is.
qyot27 is offline   Reply With Quote
Old 14th October 2013, 21:06   #205  |  Link
manma
Registered User
 
Join Date: Feb 2012
Posts: 18
Quote:
Originally Posted by qyot27 View Post
If all there is is opening a file, performing IVTC, and resizing or similar things that are included in the core itself, then AvxSynth is fine.
I'll probably stick with AvxSynth then. If I'm just dealing with a DVD or transport stream its probably best if I didn't do anything but IVTC it and encode. If someone wants motion sickness inducing interpolation and added banding from sharpening filters they can do it themselves during playback.
manma is offline   Reply With Quote
Old 16th December 2013, 13:08   #206  |  Link
esby
Registered User
 
esby's Avatar
 
Join Date: Oct 2001
Location: france
Posts: 521
Hello, I did some testing playing with the instruction left by qyot27.

I got two questions.

* I compiled mplayer with fffmpeg support, avxframeserver works with a test file and starts mplayer correctly, now when i try to open it directly with mplayer, it fails while it works if i use ffmpeg to encode directly..
Code:
avxFrameServer version.avs # works
mplayer version.avs # does not works, open nothing.
ffmpeg -i version.avs version.avi (...) # works and encode correctly
Is it supposed to work like this?

* When the avisynth script has a wrong syntax or an error in it, the test will not work, but it will not display any error. Anyway to have the "error back"?
__________________
http://esby.free.fr/
esby is offline   Reply With Quote
Old 16th December 2013, 20:43   #207  |  Link
sl1pkn07
Pajas Mentales...
 
Join Date: Dec 2004
Location: Spanishtán
Posts: 497
any update or new plugins for avx?
sl1pkn07 is offline   Reply With Quote
Old 18th December 2013, 00:21   #208  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,501
Quote:
Originally Posted by esby View Post
Hello, I did some testing playing with the instruction left by qyot27.

I got two questions.

* I compiled mplayer with fffmpeg support, avxframeserver works with a test file and starts mplayer correctly, now when i try to open it directly with mplayer, it fails while it works if i use ffmpeg to encode directly..
Code:
avxFrameServer version.avs # works
mplayer version.avs # does not works, open nothing.
ffmpeg -i version.avs version.avi (...) # works and encode correctly
Is it supposed to work like this?

* When the avisynth script has a wrong syntax or an error in it, the test will not work, but it will not display any error. Anyway to have the "error back"?
I have no idea what it's like for mplayer-svn. Namely because there used to be a discrete AviSynth demuxer in mplayer; this demuxer will not work with AvxSynth, because it specifically assumes AviSynth (and Windows). You could try giving it -demuxer lavf and see if that does anything.

mpv (and mplayer2) removed this discrete demuxer and rely only on libavformat's AviSynth capability. It should work in mpv just as it does in ffmpeg (or ffplay). Just don't try to seek in your script unless you're using FFmpeg 2.1.1.
qyot27 is offline   Reply With Quote
Old 20th December 2013, 11:16   #209  |  Link
esby
Registered User
 
esby's Avatar
 
Join Date: Oct 2001
Location: france
Posts: 521
@qyot27: thx for the answer, the feature seems unsupported for mplayer, even with -demuxer lavf. Since I can open it with avxFrameServer it's not a big issue.

I also discovered that commenting out LOG_PATH=... in ~/.avxsynth/avxsynthlog.conf
displayed the information on the error in the script on stderr. Maybe this should be worth putting somewhere in the documentation...
__________________
http://esby.free.fr/
esby is offline   Reply With Quote
Old 18th April 2014, 17:21   #210  |  Link
esby
Registered User
 
esby's Avatar
 
Join Date: Oct 2001
Location: france
Posts: 521
I am bumping the thread, but because I got two questions to ask:

* trying to use avxsynth again, the video will not load using mplayer and avxFrameServer.

(under debian 7 - 64 bits)

Code:
$ avxFrameServer version.avs 
No valid avxsynth log path found in <snip>
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:1332,Type=Info,Message=Loading core built-in plugins
INFO    : Module=builtinfuncs::entryPoint,Address=builtinfunctions/src/AllBuiltInPluginsEntryPoint.cpp:649,Type=Info,Message=AddAviSynthBuiltInFunctions
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:783,Type=Info,Message=StringDump: Allocating new stringblock.
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:1219,Type=Info,Message=Plugins Dir: /opt/ffmpeg/lib/avxsynth/
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:1219,Type=Info,Message=Plugins Dir: /opt/ffmpeg/lib/avxsynth/
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:1219,Type=Info,Message=Plugins Dir: /opt/ffmpeg/lib/avxsynth/
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:1491,Type=Info,Message=Examining plugin /opt/ffmpeg/lib/avxsynth//libavxframecapture.so
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:341,Type=Info,Message=Prescanning plugin: /opt/ffmpeg/lib/avxsynth//libavxframecapture.so
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:1491,Type=Info,Message=Examining plugin /opt/ffmpeg/lib/avxsynth//libavxsubtitle.so
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:341,Type=Info,Message=Prescanning plugin: /opt/ffmpeg/lib/avxsynth//libavxsubtitle.so
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:1491,Type=Info,Message=Examining plugin /opt/ffmpeg/lib/avxsynth//libautocrop.so
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:341,Type=Info,Message=Prescanning plugin: /opt/ffmpeg/lib/avxsynth//libautocrop.so
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:1491,Type=Info,Message=Examining plugin /opt/ffmpeg/lib/avxsynth//libavxffms2.so
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:341,Type=Info,Message=Prescanning plugin: /opt/ffmpeg/lib/avxsynth//libavxffms2.so
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:1219,Type=Info,Message=Plugins Dir: /opt/ffmpeg/lib/avxsynth/
INFO    : Module=core::expression,Address=core/src/core/parser/expression.cpp:551,Type=Info,Message=Call: version
INFO    : Module=core::text-overlay,Address=core/src/filters/text-overlay.cpp:1206,Type=Info,Message=ApplyMessage::ApplyMessage
INFO    : Module=appInterface,Address=frameserverlib/src/avxSynthAppInterface.cpp:193,Type=Info,Message=MPlayer command line: mplayer -flip -demuxer rawvideo -rawvideo w=896:h=176:format=bgr24 - 1> /dev/null
No stream found.
ERROR   : Module=appInterface,Address=frameserverlib/src/avxSynthAppInterface.cpp:213,Type=Error,Message=mplayer process exited
INFO    : Module=core::avxsynth,Address=core/src/core/avxsynth.cpp:769,Type=Info,Message=StringDump: DeAllocating all stringblocks.
Now ffmpeg works and encodes correctly the version.avs file.
Any explanation of what is happening? I compiled again *everything*, no success here... (I have more or less the same configuration at home and it works fine ~~)
Edit: I updated mplayer (was using svn version) and it is working again.


* I am lacking a correct deinterlacer, I am trying to handle rushs coming from my Panasonic GH2 camera, (avchd) which are interlaced, I'd use yadiff under ffmpeg or avisynth to treat these, but I can't with avxsynth, as far I know.

How hard would it be to create an avxsynth external plugin for that purpose? Is there any documentation on this? Any alternate options (eg: using ffmpeg to deinterlace or coding something that relay on ffmpeg like ffmpegsource)?

Thanks in advance.
__________________
http://esby.free.fr/

Last edited by esby; 18th April 2014 at 17:50.
esby is offline   Reply With Quote
Old 19th April 2014, 07:39   #211  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,501
One of the few plugins that was ported to AvxSynth was Decomb, so you could try to do field matching before or in lieu of giving it to FFmpeg's yadif filter.


avxFrameServer has been pretty much irrelevant for a little over a year, simply because the support in x264 and FFmpeg have eclipsed it. If you need to pipe the script around (which is all avxFrameServer does), use FFmpeg with -f yuv4mpegpipe to do it.

Code:
ffmpeg -i version.avs -f yuv4mpegpipe - | mplayer -

I'll also reiterate that mpv will work fine for playing back the scripts (with audio, too) if you build it against the working copy of FFmpeg.
qyot27 is offline   Reply With Quote
Old 21st April 2014, 02:51   #212  |  Link
esby
Registered User
 
esby's Avatar
 
Join Date: Oct 2001
Location: france
Posts: 521
Assuming FieldDeinterlace must be used in this case, but it is just crashing (SIGSEV) when I try to use it.
I guess I'll have to transcode and deinterlace the videos using ffmpeg (since I want to do transitions...) prior loading them with avxsynth...
__________________
http://esby.free.fr/

Last edited by esby; 21st April 2014 at 12:55.
esby is offline   Reply With Quote
Old 30th April 2014, 17:52   #213  |  Link
videopolis
Registered User
 
Join Date: Aug 2011
Location: Los Angeles
Posts: 1
TIVTC Support

OK, dumb question, but is it possible to use any of Tritical's filters (specifically looking for TIVTC package) in avxsynth? Based on previous posts, it sounds like only Decomb has been ported, but not sure if that's current info.

I've always found tfm + tdecimate to be superior to telecide + decimate in avisynth, so wondering if I can harness that power in Linux.
videopolis is offline   Reply With Quote
Old 12th May 2014, 17:23   #214  |  Link
magnatique
Registered User
 
Join Date: Mar 2004
Posts: 99
Thanks for the info, helped getting things setup and almost working perfect

my goal is simply to encode an avs from ffmpeg .

Right now, this works OK I am able to load a video + audio, audiodub them and feed it to ffmpeg.

However, whenever I try to trim something that starts 15 frames after the beginning, it seems to be redoing the index (or at least, it takes a long while before the encode starts).

if on the other hand I use trim(0,100) for example, the encode starts right away.

Eventually the encode does work, but it's either reading the full video / redoing the index each time.

Maybe when doing a trim from 0 to 14 frames it doesn't use the index and starts fast, but anything after that will use the index?

When building the ffms2 package from Git, I am getting the following error though ... could be the cause :

Code:
ffms2 # make
  CXXLD    src/index/ffmsindex
libtool: link: warning: `-version-info' is ignored for programs
src/core/.libs/libffms2.so: undefined reference to `av_frame_free'
src/core/.libs/libffms2.so: undefined reference to `av_frame_unref'
src/core/.libs/libffms2.so: undefined reference to `av_frame_alloc'
collect2: ld returned 1 exit status
make: *** [src/index/ffmsindex] Error 1
any help is appreciated

EDIT1 : I just launched another test with normal length files (10-20 mins files) being joined as such :
Code:
fadeio(out1,10).trim(100,200)++fadeio(out2,10).trim(100,200)++fadeio(out3,10).trim(100,200)++fadeio(out4,10).trim(100,200)++fadeio(out5,10).trim(100,200)
the actual index seems all to have been generated within 3-5 mins total for the 5 files, so it doesn't seem to be a prob with generating the index but moreso the trim that might be loading all of the video beforehand?

it took about 24mins to start encoding, compared to instant if I take off the trims.


When doing a test with a <60s file, it goes through with the encode eventually, but taking a while.

with a 19 seconds sample, it took 13s to start encoding.
with a 73s sample, it took 54.6s to start encoding

I tried with audio joined through audiodub on the 73s sample, it took 55s so negligible difference.

EDIT 2 :
Actually, none of these encode anything after a more thorough review.,,

then end with an unknown error occurred.

I did some more tests, for instance using a trim(0,100) everywhere and this works 100%.

However, if I use trim(0,100) then a trim(100,200) then a trim(0,100) again, it will start encoding instantly on the first portion, but then stops at the second one AND fail with error : FFAudioSource: ReadPacket unexpectedly failed to read a packet


If I remove the audio part, there's no error in ffmpeg but it doesn't process the frames with the trim starting at 100

Last edited by magnatique; 12th May 2014 at 19:36. Reason: more info
magnatique is offline   Reply With Quote
Old 17th May 2014, 02:12   #215  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,501
Quote:
Originally Posted by magnatique View Post
Thanks for the info, helped getting things setup and almost working perfect

my goal is simply to encode an avs from ffmpeg .

Right now, this works OK I am able to load a video + audio, audiodub them and feed it to ffmpeg.

However, whenever I try to trim something that starts 15 frames after the beginning, it seems to be redoing the index (or at least, it takes a long while before the encode starts).

if on the other hand I use trim(0,100) for example, the encode starts right away.

Eventually the encode does work, but it's either reading the full video / redoing the index each time.

Maybe when doing a trim from 0 to 14 frames it doesn't use the index and starts fast, but anything after that will use the index?

When building the ffms2 package from Git, I am getting the following error though ... could be the cause :

Code:
ffms2 # make
  CXXLD    src/index/ffmsindex
libtool: link: warning: `-version-info' is ignored for programs
src/core/.libs/libffms2.so: undefined reference to `av_frame_free'
src/core/.libs/libffms2.so: undefined reference to `av_frame_unref'
src/core/.libs/libffms2.so: undefined reference to `av_frame_alloc'
collect2: ld returned 1 exit status
make: *** [src/index/ffmsindex] Error 1
any help is appreciated

EDIT1 : I just launched another test with normal length files (10-20 mins files) being joined as such :
Code:
fadeio(out1,10).trim(100,200)++fadeio(out2,10).trim(100,200)++fadeio(out3,10).trim(100,200)++fadeio(out4,10).trim(100,200)++fadeio(out5,10).trim(100,200)
the actual index seems all to have been generated within 3-5 mins total for the 5 files, so it doesn't seem to be a prob with generating the index but moreso the trim that might be loading all of the video beforehand?

it took about 24mins to start encoding, compared to instant if I take off the trims.


When doing a test with a <60s file, it goes through with the encode eventually, but taking a while.

with a 19 seconds sample, it took 13s to start encoding.
with a 73s sample, it took 54.6s to start encoding

I tried with audio joined through audiodub on the 73s sample, it took 55s so negligible difference.

EDIT 2 :
Actually, none of these encode anything after a more thorough review.,,

then end with an unknown error occurred.

I did some more tests, for instance using a trim(0,100) everywhere and this works 100%.

However, if I use trim(0,100) then a trim(100,200) then a trim(0,100) again, it will start encoding instantly on the first portion, but then stops at the second one AND fail with error : FFAudioSource: ReadPacket unexpectedly failed to read a packet


If I remove the audio part, there's no error in ffmpeg but it doesn't process the frames with the trim starting at 100
As per the issue on Github, the FFMS2 compilation issue is most likely due to a library/header mismatch.

But you're not providing other necessary information: FFmpeg/Libav version, which distro, the full script. Whether or not you rebuilt avxffms2 after building FFMS2 from Git...

Remember, it's far less of a hassle to just use ffmsindex -t -1 inputfile.ext before trying to load the script anywhere than letting it generate when the script loads.
qyot27 is offline   Reply With Quote
Old 13th August 2014, 20:15   #216  |  Link
Sm3n
Registered User
 
Join Date: Jul 2012
Posts: 94
Hi folks,

I would like some details about TIVTC-Linux: https://github.com/fundies/TIVTC-linux

Do you have any idea if it's compatible with the last avxsynth and how to use it? Someone already asked on the git, but still no answer.
If not, what are you using to perform IVTC? manma wrote about decomb I know. (I'm using a dedicated server without graphic interface, debian weezy)

cheers
Sm3n is offline   Reply With Quote
Old 13th August 2014, 21:21   #217  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,647
Quote:
Originally Posted by Sm3n View Post
Hi folks,

I would like some details about TIVTC-Linux: https://github.com/fundies/TIVTC-linux

Do you have any idea if it's compatible with the last avxsynth and how to use it? Someone already asked on the git, but still no answer.
If not, what are you using to perform IVTC? manma wrote about decomb I know. (I'm using a dedicated server without graphic interface, debian weezy)

cheers
1. That repository is just the windows version created by someone without the skills and/or motivation to follow through with a port.
2. If you want a TIVTC like filter on linux there's VIVTC (TIVTC lite) available as an integrated filter in FFmpeg and also included with VapourSynth.
3. Just let AvxSynth rest in peace, FFmpeg can do just about everything on AvxSynth can on its own...
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is online now   Reply With Quote
Old 13th August 2014, 23:24   #218  |  Link
Sm3n
Registered User
 
Join Date: Jul 2012
Posts: 94
First of, FFMpeg has some issues for decoding .mpv (MPEG2 HDTV) with glitch and broken frames.

Quote:
[mpeg2video @ 0x2484f20] ac-tex damaged at 14 6700:23:53.84 bitrate=1036.2kbits/s dup=1 drop=0
[mpeg2video @ 0x2484f20] Warning MVs not available
[mpeg2video @ 0x2484f20] concealing 240 DC, 240 AC, 240 MV errors in B frame
It results that the encode ends prematurely. :/

Secondly, I'm aware that ffmpeg can deal with that but here is a thing. I want to encode using the tMod version of x264 through .avs.
You see know why I need to IVTC in .avs. Because I can't compile ffmpeg with tMod support. I must to patch ffmpeg first (like that: https://astrataro.wordpress.com/2014...d/#comment-783) but it's out of date and some parametres are missing.

VapourSynth ins't available for Linux. Am I right?
Sm3n is offline   Reply With Quote
Old 14th August 2014, 01:09   #219  |  Link
TheFluff
Excessively jovial fellow
 
Join Date: Jun 2004
Location: rude
Posts: 1,100
Quote:
Originally Posted by Sm3n View Post
VapourSynth ins't available for Linux. Am I right?
you're wrong
TheFluff is offline   Reply With Quote
Old 14th August 2014, 15:11   #220  |  Link
macromizer
Guest
 
Posts: n/a
Quote:
Originally Posted by Sm3n View Post
First of, FFMpeg has some issues for decoding .mpv (MPEG2 HDTV) with glitch and broken frames.



It results that the encode ends prematurely. :/
AFAIK, Avxsynth is using ffmpeg for decoding. Other than ffmpeg/libav what else could it possible be using for decoding?

Quote:
Originally Posted by Sm3n View Post
VapourSynth ins't available for Linux. Am I right?
No, you're not.

Last edited by macromizer; 14th August 2014 at 15:17.
  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 18:10.


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