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. |
24th November 2014, 08:20 | #381 | Link |
Registered User
Join Date: Aug 2008
Location: Isle of Man
Posts: 588
|
I'm just wondering, is frame duplication really the ideal way of converting from 15 fps to 30 fps in the first place? Effectively you'll still have 15 fps-based motion, just played out at 30 fps. Would interpolation (e.g. MFlowFps()/MBlockFPs() and I think also SVP) be an option to provide smoother motion (and get around this problem) for you?
|
24th November 2014, 09:00 | #382 | Link |
Registered User
Join Date: Aug 2008
Location: Isle of Man
Posts: 588
|
Metadata-based stabilisation
Is anyone interested in looking into this? I've done some feasibility checking and it is definitely very much possible, at least for AR.Drone 2 videos. Although more direct methods are available, the quickest time-to-implementation at this point seems to simply convert the output of ExifTool. I just don't have the time to take it further at this point.
In case someone would like to look into this: The AR.Drone 2 stores flight metadata in two places: the .MP4 recording, and userbox files on the drone. .MP4 recording
Code:
0 7 84.023 -0.0138157112523913 0.020807821303606 1.58786511421204 0 0 0 7 84.055 -0.013349455781281 0.0169658288359642 1.58657622337341 0 0 ... 1 7 85.913 0.0174348670989275 -0.00090780045138672 1.564129114151 0 0.659 1 7 85.946 0.0190824717283249 -0.00098724861163646 1.56361031532288 0 0.662 0 9 85.979 0.0209523718804121 -0.00107379746623337 1.56401801109314 0 0.665 0 9 86.012 0.0216640736907721 -0.00160936382599175 1.56422352790833 0 0.661 Userbox files
I can provide short sample videos and userbox files if required. |
24th November 2014, 20:11 | #383 | Link |
Registered User
Join Date: Apr 2003
Location: Uppsala, Sweden
Posts: 157
|
sorin86... Yes, any moving objects in the video will jump back and forth, but the background that is stabilized on will look smoother than before.
My honest (but maybe not so nice ) answer to this problem is that if you have duplicate frames you're either doing something wrong, or you're using a lousy camera. Garbage in, garbage out... I don't think I will address this problem unless I get lots of requests. Sorry... Last edited by guth; 24th November 2014 at 20:22. |
26th November 2014, 17:51 | #384 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
@fvisagie
Dont know if this of any use but take a peek about this post (from about post #14 onward, user name Filker could be used as search filter in that thread) http://forum.doom9.org/showthread.ph...94#post1588194 Avisynth based (still camera Exif).
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? |
27th November 2014, 07:40 | #385 | Link | |
Registered User
Join Date: Aug 2008
Location: Isle of Man
Posts: 588
|
Quote:
The problem for me though remains not so much how to do it, but to find the time. I posted in the hope of finding someone else who's interested in taking the idea further. |
|
27th November 2014, 12:11 | #386 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
fvisagie,
See Martin53 posts (and mine) in same thread as posted and also in Call(and maybe CallCmd) threads, he wanted to do something like that for deshaker, I did some coding for him to parse and extract data from the files, dont know if he finished the project.
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? |
27th November 2014, 16:38 | #388 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Well you could have searched on deshaker with user name Martin53 as here:
LINK REMOVED: in particular this LINK REMOVED: however, it seems M53 abondoned the project (or at least that attack stance).
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 27th November 2014 at 20:43. |
27th November 2014, 20:42 | #390 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
fvisagie, sorry, the links posted did not work (they worked when I posted them, I checked), but after search and
log-off they must disappear or something. anyway, this was the 2nd link posted again and hopefully working this time. http://forum.doom9.org/showthread.ph...64#post1596064 Previous bad links removed.
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? |
12th September 2015, 17:05 | #392 | Link |
Registered User
Join Date: Aug 2008
Location: Isle of Man
Posts: 588
|
Deshaking concatenated file one clip at a time
It seems possible, but will it work correctly deshaking a concatenated file in VirtualDub, one input clip at a time?
Background to the question: a large 350+ file HD project is creating space problems with the saving of intermediate files such as Deshaken versions of each input clip. An advantage of Deshaking clips individually is that scene changes are not missed. In this case it seems I'd need to work on a real or hopefully frame-served concatenation of input files, and I was wondering whether it would be possible to still ensure reliable detection of clip transitions. That would save me having to manually locate and check all those boundaries afterwards. In principle the following approach seems possible, in the sense that it can at least be scripted in VirtualDub: For each clipSome questions that create doubt:Apply Clear() & AddRange() to restrict processing to that clip's material only 1. What happens to the results of Deshaker's processing when pass 2 is applied (i.e. the "Deshaking" message)? Will this get over-written or somehow become inaccessible when the next clip is processed? 2. What happens once all of the concatenated clip has been processed, the last AddRange() is removed and saving or frame-serving starts? Frame number offsets as seen by Deshaker of all clips but the very first one will change - how will that affect Deshaker's operation? 3. Does this regarding frame-serving from the VirtualDub online help apply to Deshaker: "Video filters that have a lag — most notably the temporal smoother. The filter will function, but there will be a delay in the video."? I realise that I can try this all out for myself. However, I am under some time pressure and would rather hear now "this is guaranteed to fail" as opposed to wasting time on a bad idea. On the other hand, if this could work, I'd appreciate any corrections or improvements to the approach. Thanks, François Last edited by fvisagie; 12th September 2015 at 18:54. Reason: Added question 3 |
12th September 2015, 18:49 | #393 | Link |
Registered User
Join Date: Mar 2015
Posts: 775
|
When you isolate range, deshaker sees original frame numbers (not starting from 0 for each range) so in general this way should work.
However, there is no meaning to "apply pass 2" if you do not save the result (video). And there is no normal way to apply different deshaker instance (with different log files) to each range. But instead you could simply use one normal deshaker instance with one log file: it can deal with scene cuts. If you are going to manually pass range parameters to AddRange() you could as well just force these frames to be scene cuts in the deshaker log file. |
12th September 2015, 19:25 | #394 | Link | |||
Registered User
Join Date: Aug 2008
Location: Isle of Man
Posts: 588
|
Quote:
Quote:
Quote:
Code:
// Start of script declare startframe; startframe = 0; declare endframe; endframe = 0; // ... // Start of clip 000 processing VirtualDub.Open(U"clip000.avi"); VirtualDub.subset.Delete(); startframe = endframe; endframe = VirtualDub.video.length; VirtualDub.Log("startframe="+Sylia.ToString(startframe)); VirtualDub.Log("endframe="+Sylia.ToString(endframe)); VirtualDub.Log("cliplength="+Sylia.ToString(endframe - startframe)); VirtualDub.subset.Clear(); VirtualDub.subset.AddRange(startframe,endframe - startframe); // ... // Start of clip 001 processing VirtualDub.Append(U"clip001.avi"); VirtualDub.subset.Delete(); startframe = endframe; endframe = VirtualDub.video.length; VirtualDub.Log("startframe="+Sylia.ToString(startframe)); VirtualDub.Log("endframe="+Sylia.ToString(endframe)); VirtualDub.Log("cliplength="+Sylia.ToString(endframe - startframe)); VirtualDub.subset.Clear(); VirtualDub.subset.AddRange(startframe,endframe - startframe); // ... // ... Additionally, it seems there may be issues with temporal filters when frame-serving; see the added question 3. above. However, that at least has the work-around of saving to disk if needed. |
|||
12th September 2015, 19:59 | #395 | Link | |||
Registered User
Join Date: Mar 2015
Posts: 775
|
Quote:
Quote:
Quote:
AFAIK there is internal delay in pass2 if you apply border filling with future frames. But I dont know if/how it is connected with frameserving. |
|||
12th September 2015, 21:18 | #396 | Link | ||
Registered User
Join Date: Aug 2008
Location: Isle of Man
Posts: 588
|
Quote:
Quote:
Code:
Run Deshaker pass 1 on individual clips Concatenate clips and log files, adjusting frame numbers in the latter Set Deshaker to pass 2 and render |
||
12th September 2015, 21:36 | #398 | Link | ||
Registered User
Join Date: Aug 2008
Location: Isle of Man
Posts: 588
|
Quote:
Quote:
|
||
Thread Tools | Search this Thread |
Display Modes | |
|
|