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. |
19th May 2015, 09:23 | #2041 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,784
|
Indexing will be necessary to provide random access in an AviSynth script, using closest previous GOP starts before a seek point. This is quite important if you consider multithreading, where each thread may request a different frame number, and sequential access will be improbable.
FFMS2 will not rely on the possible existence of a keyframe index chunk because not all supported media formats will contain one, so it prefers to create an own index, but only once, it will be reused each time you access the same source file. You may disable writing the cache file to disk, but FFMS2 will still need to gather positions of decoding starts, so if you don't let it write a cache file, it will need to build an index in RAM each time you process the script. If you want to rely on an index already present in a media file, rather use a different source filter which does so (in this case, maybe QTSource, which will require QuickTime to be installed). Furthermore, QuickTime movies should belong to the "ISO Media" container family, so the LSMASHVideoSource() filter of L-SMASH Works may be recommendable as another alternative; it will usually write an own index cache file as well, though, but might do that faster. |
19th May 2015, 10:34 | #2043 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,784
|
It may surprise you ... but L-SMASH Works contains a README file.
According to this one, there seems to be no cache file for the functions using the L-SMASH demultiplexer: Code:
LSMASHVideoSource(string source, int track = 0, int threads = 0, int seek_mode = 0, int seek_threshold = 10, bool dr = false, int fpsnum = 0, int fpsden = 1, bool stacked = false, string format = "") Code:
LWLibavVideoSource(string source, int stream_index = -1, int threads = 0, bool cache = true, int seek_mode = 0, int seek_threshold = 10, bool dr = false, int fpsnum = 0, int fpsden = 1, bool repeat = false, int dominance = 0, bool stacked = false, string format = "") |
19th May 2015, 11:20 | #2044 | Link |
Angel of Night
Join Date: Nov 2004
Location: Tangled in the silks
Posts: 9,559
|
It would be kind of nice if ffms could index on-demand for those huge files -- index up to the requested frame as frames are requested -- or in a background thread, but that means getting a developer interested, and so far no one seems to be. It would sure save time in those massive source situations.
|
19th May 2015, 11:25 | #2045 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
20th May 2015, 16:55 | #2046 | Link |
Registered User
Join Date: Aug 2011
Posts: 103
|
I've got wrong color when reading RGB24 image files (tested png and bmp) with ffms2.Source on VapourSynth.
Looks like the channels are swapped: BGR->GRB The AviSynth's plugin works fine. Last edited by mawen1250; 20th May 2015 at 17:02. |
20th May 2015, 17:12 | #2047 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Doh, I forgot abour that detail. Use shuffleplanes to work around it until a fixed version is available.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
20th May 2015, 22:11 | #2049 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Now it's fixed in git. I guess there'll be another release in a week or two.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
22nd May 2015, 18:30 | #2050 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
I'm back with what I guess is kinda 2.22 rc1.
So what needs to be tested is that the functions FFmpegSource2, FFImageSource and FFCopyrightInfringement still work as expected. They're now integrated into the plugin for convenience reasons (normal users will no logner need to fidget with ffms2.avsi). Don't forget to replace ffms2.avsi or you may get unexpected results. If someone has the patience to test all the arguments for FFmpegSource2 and FFImageSource that'd be great. I may have made a typo somewhere. - 2.22 - avisynth: Make FFMS2 a shorter alias for FFmpegSource2 to save some typing (Myrsloik) - avisynth: Moved all source functions in ffms2.avsi into the actual plugin (Myrsloik) - avisynth: Use 2.6 RC API and add output support for all new colorspaces (Myrsloik) - vapoursource: Fix swapped RGB channels bug introduced in 2.21 (Myrsloik)
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
23rd May 2015, 09:07 | #2051 | Link |
Registered User
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
|
Thanks for the update Myrsloik, I tested various things with 3 files, with one sample there is a async problem, it is a DVB capture muxed to mkv with dsmux, some info in case you have time and interest:
http://www.mediafire.com/watch/y4biq...g3vm/async.mkv source filter which name I forgot: freeze, FAILURE FFVideoSource: async LWLibavVideoSource: OK DSS: async I posted the original TS file lately to the AviSynth+ thread: http://forum.doom9.org/showthread.ph...64#post1723364 here is some technical info: http://forum.doom9.org/showthread.ph...82#post1723382 It was explained there are different ways to handle things, a possible solution to achieve compatibility between tools and workflows might be agreeing to the same approach. |
23rd May 2015, 12:12 | #2052 | Link |
Useful n00b
Join Date: Jul 2014
Posts: 1,667
|
Have you, or can you, compare the video output of these two frame-by-frame to determine if FFVideoSource is including or excluding extra frames at the start compared to LWLibavSource? And is the async constant or does it grow as the stream plays?
|
23rd May 2015, 19:52 | #2053 | Link |
Registered User
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,079
|
@stax76
FWIW I downloaded your async.mkv (it was packed into an FLV container), I also repacked your original .TS file into an MKV container using MKVMerge, and for all these source files the result was consistent: Use DSS2Mod together with LAVFilters, ignore audio delays reported by MediaInfo if they are > 100ms, and get a result without any audio sync issues. I tested it using AVStoDVD for MPEG2 output and also the old StaxRip version 1.1.9.0 for XviD and AVC output. Cheers manolito |
23rd May 2015, 20:12 | #2054 | Link | |
Registered User
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
|
Quote:
|
|
23rd May 2015, 21:37 | #2056 | Link |
Registered User
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
|
Comparing lsmash against ffms2 frame 77 is the same in the StaxRip preview and the frame count is also the same in the StaxRip preview, when I encode it's very surprising that lsmash is fine and ffms2 is not, this could be the issue a StaxRip user reported recently, I have no idea what's going on!
edit: 2.20 is fine Last edited by stax76; 23rd May 2015 at 21:44. |
23rd May 2015, 21:49 | #2057 | Link | |
Registered User
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
|
2.20 is sync, 2.21 is async, this must be the issue two StaxRip users reported:
Quote:
Last edited by stax76; 23rd May 2015 at 21:52. |
|
24th May 2015, 02:14 | #2058 | Link | |
Useful n00b
Join Date: Jul 2014
Posts: 1,667
|
Quote:
Last edited by videoh; 24th May 2015 at 02:18. |
|
24th May 2015, 06:17 | #2059 | Link | ||
Registered User
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
|
Quote:
Quote:
|
||
|
|