The online racing simulator
LFS Record (camera animation & video recording tool)
(345 posts, started )
Quote from E.Reiljans :How wind could be random on every replay load, considering it affects car physics? Wouldn't that cause OOS?

Perhaps it's not the wind itself but the animation of affected objects. I don't know what's behind it, I just know that I ran a pass, closed LFS and did something else for a while, launched LFS and ran a second pass of the exact same replay file, the shots were perfectly identical except for the flags.
Can I ask what video output format people prefer to use? Such as do you like WMV or AVI etc..
AVI is still the most widely used and accepted container. I use it as well, for raw footage.
For final videos these days i've settled with the mp4 container format, using H264 compression (+ac3 audio).

I also so wish AviSynth had import capabilities for image sequences, because then ppl could use MeGui to convert their screendumps to any format they want.
Well, Thanks victor for this usefull tool, making video editing in LFS getting to another level.
Personnaly, i used virtual dub to convert the 800 bmp into avi... for 11 seconds, 1280X720, 1,45 Go AVI in the end.
Quite big, but once in vegas, no problems

here is a little preview, switch to 0:20 and don't mind the intro, it's for another video project...
http://www.youtube.com/watch?v=okRxFBNx8RA

So it was pretty easy to make that camera movement.
Just one more thing, you say full resolution, but i personaly can't record at 1366X768, instead i have to use 1280X720 (still HD but.) any way to get my resolution suported in the future?
forgot the video?

About the resolution, yeah hm, currently I'm filtering resolutions with odd aspect ratios and only showing you 4:3, 16:9 and 16:10, thinking those make the most sense. But I guess it's really up to the user to decide what he wants to record and how, so in my version I've removed the aspect ratio filter, meaning you can select all available resolutions in the next patch.
edited message with link.
Thanks for answering. I had another idea too...
In the video, i made a circle with the "look at" tool. but the cars are doing the roundabout like 30times. i'd like to make a circle, then copy past it so i won't need to make circles over and over again in lfs record.Only one, then repeated. any way to make that feature ??
Hi.

Crashed while I was clicking undo a number of times (no doubt too many).
Quote :
Log Name: Application
Source: .NET Runtime
Date: 21/12/2010 8:49:04 PM
Event ID: 1026
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: Jonathan-PC
Description:
Application: LFSRecord2.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentOutOfRangeException
Stack:
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at System.Collections.Generic.List`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].get_Item(Int32)
at LFSRecord2.Model.Undo.UndoManager.DoUndo(LFSRecord2.Model.LfsRecordProject)
at LFSRecord2.Model.LfsRecordController.ApplyUndo()
at LFSRecord2.ViewModel.MainWindowViewModel.<get_UndoCommand>b__f(System.Object)
at LFSRecord2.RelayCommand.Execute(System.Object)
at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(System.Windows.Input.ICommandSource, Boolean)
at System.Windows.Controls.MenuItem.InvokeClickAfterRender(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
at System.Threading.ExecutionContext.runTryCode(System.Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(System.Object)
at System.Windows.Application.RunInternal(System.Windows.Window)
at System.Windows.Application.Run(System.Windows.Window)
at LFSRecord2.App.Main()

Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name=".NET Runtime" />
<EventID Qualifiers="0">1026</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2010-12-22T00:49:04.000Z" />
<EventRecordID>65141</EventRecordID>
<Channel>Application</Channel>
<Computer>Jonathan-PC</Computer>
<Security />
</System>
<EventData>
<Data>Application: LFSRecord2.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentOutOfRangeException
Stack:
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at System.Collections.Generic.List`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].get_Item(Int32)
at LFSRecord2.Model.Undo.UndoManager.DoUndo(LFSRecord2.Model.LfsRecordProject)
at LFSRecord2.Model.LfsRecordController.ApplyUndo()
at LFSRecord2.ViewModel.MainWindowViewModel.<get_UndoCommand>b__f(System.Object)
at LFSRecord2.RelayCommand.Execute(System.Object)
at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(System.Windows.Input.ICommandSource, Boolean)
at System.Windows.Controls.MenuItem.InvokeClickAfterRender(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
at System.Threading.ExecutionContext.runTryCode(System.Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(System.Object)
at System.Windows.Application.RunInternal(System.Windows.Window)
at System.Windows.Application.Run(System.Windows.Window)
at LFSRecord2.App.Main()
</Data>
</EventData>
</Event>


LFS Record 2.0.5
I have uploaded LFS Record version 2.0.5 .
(For download links, see first post in this thread).

Changes for 2.0.5
=============
Fix : Correct bezier control auto-adjust when inserting keyframe
Fix : Correct undo action recording when inserting keyframe
Fix : Now showing all available 32bit resolutions (project -> recording)
Fix : Keyframe pacing for keyframes other than those that form a path
Fix : Project name was always set to filename after save and load
Fix : Undo keyframe delete crash in certain cases
Fix : FreeCamera 3D view pitch adjust didn't work
Fix : 3D view camera adjust undo capability
New : invert axes for 3D view adjustment
Quote from Satan_KillerS :Well, Thanks victor for this usefull tool, making video editing in LFS getting to another level.
Personnaly, i used virtual dub to convert the 800 bmp into avi... for 11 seconds, 1280X720, 1,45 Go AVI in the end.
Quite big, but once in vegas, no problems

You don't realize that VirtualDub is far superior at compression than Vegas, right?

Just go Video -> Compression.
Guys, can you tell me on what platform are you using LFS Record ?
I know that its Windows XP, but which version ?

It doesn't work for me & I've asked a friend to test it..Same "Don't Send" error.. We're both using SP3

What about you, Service Pack 3 or?
Yes, you need Windows XP SP3 or better, but make sure that you have also got the latest version of the .NET Framework, as LFSRecord uses the .NET Framework 4.0.

You can get it from the Microsoft downloads site, or from Windows update.
Quote from DarkTimes :Yes, you need Windows XP SP3 or better, but make sure that you have got the latest version of the .NET Framework, as LFSRecord uses the .NET Framework 4.0.

You can get it from the Microsoft downloads site, or from Windows update.

Nevermind. I was asking about something else, but It makes no sense...
I'll re-install my windows soon, so until then I'll just wait...
-
(DarkTimes) DELETED by DarkTimes
I do not think your problem is related to WIN.
Tell us exactly the way you've tried.

Requirements
------------
*Windows XP or up
*.NET Framework version 4.0 or up.
Hmm...I repaired Net Framework 4.0 and now LFSRecord works...
Guess it was a problem with Net Framework. Gona test it out now.
Thank you guys(everybody who tried to help).
i get an error code; InSim : password does not match your multiplayer admin password

Were do i remove admin password or change it?
Quote from klurax :i get an error code; InSim : password does not match your multiplayer admin password

Were do i remove admin password or change it?

Multiplayer > Start New Host > Admin Password:

or

LFS Folder > cfg.txt > Game Admin:

& for LFSRecord :

Project > Project Settings > InSim > InSim Pass:
Quote from r3zp3k7 :Multiplayer > Start New Host > Admin Password:

or

LFS Folder > cfg.txt > Game Admin:

& for LFSRecord :

Project > Project Settings > InSim > InSim Pass:

Thanks works now
sexy :P
now lets wait for krani to show up with some uber video

funny that i just made a similar tool to render avi movies from flash a few days ago, for our audio guy so he can sync his sounds to our animations
Holey Moleyh,

Victor is een toffe gozer.

This could really be very usefull indeed once it works properly.
Can't think of anything inspiring to say, sorry.

so, i'll say this:


AWESOME
GA ZO DOOR! ONZE UBERONTWIKKELAAR


p.s.
Beste Wensen voor de Kerst
en Gelukkig Nieuwjaar

I'm having an odd problem. I'm using a replay that came from a larger one that had been edited using mpredit into more manageable chunks. (It's pretty time consuming to develop a camera sequence from an incident late in a large replay).
When I play the replay through LfsRecord, it will progress so far then give me an error: "Replay Error: the position you want to play from is beyond the length of the replay." This is less than a minute into a replay of well over an hour. It also will not let me generate a time offset keyframe from farther into the replay.


Edit: This doesn't happen with the original 6 hour long replay, nor a replay of the start of the race generated from mpredit
Edit2: It only seems to happen with that particular replay, so not really a bug, I guess.

Also, when I closed LFS when LFSRecord was displaying this error, LFSRecord crashed.

I like breaking things.


From the crash
Quote :
Log Name: Application
Source: .NET Runtime
Date: 23/12/2010 1:32:16 PM
Event ID: 1026
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: Jonathan-PC
Description:
Application: LFSRecord2.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Net.Sockets.SocketException
Stack:
at InSimDotNet.TcpSocket.ReceiveCallback(System.IAsyncResult)
at System.Net.LazyAsyncResult.Complete(IntPtr)
at System.Net.ContextAwareResult.CompleteCallback(System.Object)
at System.Threading.ExecutionContext.runTryCode(System.Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Net.ContextAwareResult.Complete(IntPtr)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)
at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)

Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name=".NET Runtime" />
<EventID Qualifiers="0">1026</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2010-12-23T17:32:16.000Z" />
<EventRecordID>65170</EventRecordID>
<Channel>Application</Channel>
<Computer>Jonathan-PC</Computer>
<Security />
</System>
<EventData>
<Data>Application: LFSRecord2.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Net.Sockets.SocketException
Stack:
at InSimDotNet.TcpSocket.ReceiveCallback(System.IAsyncResult)
at System.Net.LazyAsyncResult.Complete(IntPtr)
at System.Net.ContextAwareResult.CompleteCallback(System.Object)
at System.Threading.ExecutionContext.runTryCode(System.Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Net.ContextAwareResult.Complete(IntPtr)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)
at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)
</Data>
</EventData>
</Event>

Quote from JayEyeBee :I'm having an odd problem. I'm using a replay that came from a larger one that had been edited using mpredit into more manageable chunks. (It's pretty time consuming to develop a camera sequence from an incident late in a large replay).
When I play the replay through LfsRecord, it will progress so far then give me an error: "Replay Error: the position you want to play from is beyond the length of the replay." This is less than a minute into a replay of well over an hour. It also will not let me generate a time offset keyframe from farther into the replay.


Edit: This doesn't happen with the original 6 hour long replay, nor a replay of the start of the race generated from mpredit.

Also, when I closed LFS when LFSRecord was displaying this error, LFSRecord crashed.

I like breaking things.


From the crash

OK, thanks for the report. I can indeed reproduce this (both parts) and I'm looking into it.

Edit: It appears that LFSRecord will let you set a replay offset that is longer than the length of the replay. The error message is being sent by LFS to LFSRecord, as LFSRecord is trying to move the replay to a place that doesn't exist.

To easily reproduce this error, load a relatively short replay (say 10 seconds) and set the replay offset to a value that's greater than that (say 20 seconds). Now start playback from the start of the replay. After 10 seconds (when the replay finishes) this error will occur. The reason is that as the replay has ended LFSRecord is trying to set the replay position back to the start, but the start offset is longer than the replay length.

Um... I think I'll leave this one to Victor to fix.
Quote from DarkTimes :OK, thanks for the report. I can indeed reproduce this (both parts) and I'm looking into it.

**snip**

1. LFSRecord will let you set a replay offset that is longer than the length of the replay. The error message is being sent by LFS to LFSRecord, as LFSRecord is trying to move the replay to a place that doesn't exist.

**snip**


Nifty. That isn't exactly the problem I was trying to describe (the replay I was using is well over an hour long, but I think there must be a problem with that replay file). Oh well, a more useful report than I thought.
Quote from JayEyeBee :Nifty. That isn't exactly the problem I was trying to describe (the replay I was using is well over an hour long, but I think there must be a problem with that replay file). Oh well, a more useful report than I thought.

Yeah I know the steps to reproduce it are different, but I believe it's the same actual bug. Those steps I posted are an easily repeatable way to reproduce the error, regardless of the scenario you find yourself in . Still you're right I can never be 100% sure that your bug is not (subtly) different, so we could investigate the matter further.

If you like you can send me your LFSRecord project and the edited replay that causes the issue, that way I can watch the code executing while the error occurs and will be able to confirm that this is indeed the same bug (or not).

If you don't want to upload it here, send me a PM and I'll give you my email address.

Edit: I should just point out that I'm not just a random forum poster, I'm working on this project with Victor.
-
(JayEyeBee) DELETED by JayEyeBee
Really Great work ,well Done
Really, i wasn't expecting anything new. I really thought the project's been left for good, so i just enjoyed the last version, and get the thing right down to the gutter. Knowing about you again was like a bit of fresh air coming from a closed window into a closed room. It gives you back a bit of life. Don't get in account all the hard feelings from the mass: I'll keep renewing my LFS, whatever will come. Hang on it. It's lasting. Cya on the road.

LFS Record (camera animation & video recording tool)
(345 posts, started )
FGED GREDG RDFGDR GSFDG