Errors running two movie objects back to back (white screen and audio problems for 2nd video)
Katie Jankowski
katie.jankowski at gmail.com
Mon Apr 7 11:43:39 UTC 2014
Hi David,
Thanks for your explanation and advice.
Unfortunately, none of the following settings solved the frozen last frame
issue of the 1st movie:
1) setting end movie action to none and stopafter to nextonsettime
(original)
2) setting end movie action to none and stopafter to offsettime
3) setting end movie action to terminate and stopafter to nextonsettime
4) setting end movie action to terminate and stopafter to offsettime
Do you have any other ideas?
In response to your comment, my movies are all approximately the same
length (12000ms-13000ms), but I want the durations to be slightly different
for each (e.g., 11500,ms, 12000ms, 12500ms, 13000ms; which I have specified
by creating a durations attribute). (However, the combined length of movie
1 + movie 2 is always 24000ms, I just use the durations attribute as a way
to trim the movies, since Corel VideoStudio doesnt always offer ms
precision.)
As a tester, movies 1 and movies 2 in my first trial are both exactly
12000ms, and the durations of both of these are set to 12000ms (so there
should be no problem). Like all trials in the script, the last frame of
movie 1 freezes, but the last frame of movie 2 (last object in each trial)
does not. The prerelease is set to 0, so I don't think the prerelease is
causing the frozen frame.
Thank you,
Katie
On Sat, Apr 5, 2014 at 12:35 AM, David McFarlane <mcfarla9 at msu.edu> wrote:
> Glad you got it (mostly) sorted, and thanks for writing back.
>
> Perhaps I can explain a few things here...
>
> First, "End Movie Action" specifies what action the MovieDisplay object
> will take in the event that the movie file reaches its end before the
> MovieDisplay object does. "(none)" means, well, just continue as if
> nothing happened; "Terminate" means to terminate the MovieDisplay object
> (not clear to me what happens when this happens during the PreRelease
> period, perhaps someone could test that); as for "Jump", well, let's just
> save that for another discussion (it gets tricky).
>
> "Stop After", by contrast, indicates whether or not movie playback will be
> stopped when the event indicated by "Stop After Mode" occurs. With "Stop
> After Mode" set to NextOnsetTime, movie playback would be stopped at the
> OnsetTime of the next object; set to OffsetTime, it would be stopped at the
> OffsetTime of the MovieDisplay object. Using a PreRelease with "Stop After
> Mode" set to OffsetTime means that the movie playback might be stopped
> while the next object is still waiting to start, so usually you would keep
> this set to NextOnsetTime unless you want to create some special effect and
> know what you are doing.
>
> Now, as I recall (someone please run the tests for me to confirm or
> disconfirm), if movie playback reaches its end before anything else makes
> it stop, then the last frame of the movie will linger until something else
> replaces it. If you do not want that, then you might set "End Movie
> Action" to "Terminate", and follow the MovieDisplay with a visual object
> that will overwrite the last frame. Of course, then your trial timing will
> depend on the duration of your movie file. If you want to make the trial
> timing constant for all movies, then you could use a little bit of inline
> code to adjust the duration between the end of the movie and the
> continuation of your trial. There are several ways to do that (my own
> favorite technique, using SetNextTargetOnsetTime, is a bit esoteric), so if
> that interests you please write back.
>
> Anyway, please give some of this a try and let me know whether I know what
> I am talking about :).
>
> Thanks,
>
> -----
> David McFarlane
> E-Prime training online: http://psychology.msu.edu/
> Workshops_Courses/eprime.aspx
> Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster )
>
> /----
> Stock reminder: 1) I do not work for PST. 2) PST's trained staff take
> any and all questions at https://support.pstnet.com , and they strive to
> respond to all requests in 24-48 hours, so make full use of it. 3) In
> addition, PST offers several instructional videos on their YouTube channel (
> http://www.youtube.com/user/PSTNET ). 4) If you do get an answer from
> PST staff, please extend the courtesy of posting their reply back here for
> the sake of others.
> \----
>
>
>
> At 4/4/2014 07:33 AM Friday, Katie Jankowski wrote:
>
>> Hi David,
>> I apologize for the delay.
>>
>> Thank you for your helpful advice!
>>
>> Changing the trial proc properties from "topofprocedure" to
>> "beforeobjectrun" solved my problem! (Note, I changed the trial proc
>> properties, not each objects' properties, which seemed to work better for
>> me). In fact, it sounds like changing the procedure properties affects all
>> the objects properties within the procedure, when set to inherit (<
>> http://www.kent.ac.uk/psychology/downloads/EPrimeNewFeaturesGuide.pdf>new
>> features guide on pg. 18), although I am not positive. In my full script,
>> all movies ran without errors and both the auditory and visual output were
>> presented.
>>
>> Also, I just found<http://www.pstnet.com/support/kb.asp?TopicID=4565>
>> this post on the EPRIME knowledge base, which sounded very similar to what
>> I was experiencing: "NOTE: Use of OffsetTime StopAfterMode option with any
>> PreRelease value including the default (same as duration) will likely cause
>> no sound or only a brief portion of the sound to occur. " Setting the
>> prerelease to 0 sounds like a good fix.
>>
>> My only remaining concern is that the last frame in the 1st movie of each
>> trial freezes, while the 2nd movie (last trial object) does not. If you
>> have any suggestions for how to avoid the last frame of the movie from
>> freezing and achieving a smoother transition, please let me know. If I
>> figure it out, I will post it here. One thought is perhaps it is related to
>> the "stopaftermode" set to "nextonsettime". I dont know if this is ok, if
>> it should be set to "stopoffsettime", or if an inline script is necessary,
>> as mentioned <http://www.pstnet.com/support/kb.asp?TopicID=2720>here.
>>
>>
>> Again, thank you for your help.
>>
>> In summary, I changed the prerelease settings to "0", changed generate
>> prerun to "beforeobjectrun", and made sure my script was saved as an EPRIME
>> Professional file (I have Professional but I was saving the script as
>> EPRIME Standard.) Some changes may or may not have been necessary, but I
>> wanted to list them all here, in case some people have similar problems in
>> the future.
>>
>>
>> On Tue, Apr 1, 2014 at 11:40 PM, David McFarlane <<mailto:
>> mcfarla9 at msu.edu>mcfarla9 at msu.edu> wrote:
>> To answer your first question, I am pretty sure that E-Prime can run 2 or
>> more movies per trial, but I do not recall exactly if I have ever tested
>> that. Perhaps I should.
>>
>> Next, please see <http://www.pstnet.com/support/kb.asp?TopicID=3299>ht
>> tp://www.pstnet.com/support/kb.asp?TopicID=3299 for "gotchas" that may
>> happen with the new GeneratePreRun feature. (You may also look at the
>> following threads: <https://groups.google.com/d/topic/e-prime/IV1KWxm3Q-U
>> >https://groups.google.com/d/topic/e-prime/IV1KWxm3Q-U , <
>> https://groups.google.com/d/topic/e-prime/Azi36c7sXSI>http
>> s://groups.google.com/d/topic/e-prime/Azi36c7sXSI , <
>> https://groups.google.com/d/topic/e-prime/0Yqv3FHXm6k>http
>> s://groups.google.com/d/topic/e-prime/0Yqv3FHXm6k , and <
>> https://groups.google.com/d/topic/e-prime/Q6si9tksg4Q>http
>> s://groups.google.com/d/topic/e-prime/Q6si9tksg4Q .)
>>
>>
>> Since you already set PreRelease to 0 in your demos (nicely done), those
>> gotchas should not hit you. Still, just for fun, open the Properties Pages
>> for your Procedure, and set Generate PreRun to "BeforeObjectRun" (I assume
>> that objects in your Procedure have their Generate PreRun set to the
>> default of "Inherit"). Then try your demos and see what happens.
>>
>> Beyond that, I have no ideas, other than trying to encode your movies in
>> another codec (see links above). We had a case here of a very simple
>> E-Prime program that kept intermittently balking with movies (running
>> merely *one* movie per trial), with no apparent pattern. We gave up and
>> redid the program in PsychoPy, and still had problems. The student finally
>> recoded the movies using another codec (sorry, don't remember which one),
>> and then everything worked in PsychoPy (and I bet would also work in
>> E-Prime now). So as I said earlier, when you use movies with
>> high-performance software, you are asking for trouble. Sorry,
>>
>> -- David McFarlane
>>
>>
>>
>> At 3/31/2014 10:52 PM Monday, Katie Jankowski wrote:
>> One other question and update: Does EPRIME have problems presenting 2
>> movie objects in the same trial?
>>
>> The reason I ask is because I thought the problem was that the second
>> video didnt have enough time to load immediately following video1. So, I
>> made a simplified script where each trial included just a fixation, video1,
>> and video2; however, I rearranged the order to be: video1 (~12000ms),
>> fixation (~12000ms), video2 (~12000ms). Here, I made sure that all objects
>> had prerelease set to 0.. However, video2 still had audio and visual
>> problems.
>>
>> Finally, I thought perhaps that I had set the properties incorrectly for
>> the video2 movie object. So, I copied the video1 object (which runs
>> correctly) and renamed it video2. However, when I ran this new script,
>> video2 still had audio and visual problems.
>>
>> In summary:
>> In a simplified script, where each trial includes only 1 movie object, so
>> that all movies are presented back to back, the videos run correctly if the
>> pre-release is set to 0. (Setting the duration of each video using an
>> attribute "viddur1" does not affect the script).
>>
>> However, in another simplified script, where each trial includes only 2
>> movie objects (whether these movie objects are either presented back to
>> back or separated with a fixation cross slide), the 2nd video always has
>> visual and audio problems. (Changing the prerelease from 5000ms to 0s does
>> not affect the script. Setting the duration of each video using an
>> attribute "viddur1" vs including a set duration for all videos does not
>> affect the script.)
>>
>> Thank you,
>> Katie
>>
>>
>> On Tue, Apr 1, 2014 at 11:18 AM, Katie Jankowski <<mailto:
>> katie.jankowski at gmail.com><mailto:katie.jankowski at gmail.com>katie.
>> jankowski at gmail.com> wrote:
>> Thank you very much for these suggestions. I had downloaded the latest
>> version of DivX (<<http://www.divx.com/>http://www.divx.com/>http://www.
>> divx.com), selected create default mappings, and rendered the first two
>> files (video1 and videos2 of the first trial) and received no errors. This
>> lead me to believe that my problem was not related to the codecs.
>>
>>
>>
>> To confirm that the problem originated from my task, and not the video
>> files, I made a simplified version of the task that included just 1 trial
>> (fixation, intro slide, video1, and video2). When I ran this simplified
>> version with just 1 trial, video1 ran fine, but video2 had the same errors
>> (no visual, audio problematic). Next, I switched the name of the specific
>> files listed in the trial proc so that the videos that originally played
>> for video1 now played for video2, and visa versa. Again, only video1 worked
>> and video2 had problems. This lead me to believe that the video files were
>> not the problem, and the problem was the script (or script properties)
>> which effected how video2 played.
>>
>> I took your advice and made a simple script (tester 1) which had 1 object
>> (movie object video1) that played videos one after the other with a set
>> duration of 12000ms (keeping the prerelease 5000ms). Each video played,
>> starting at the beginning of the video (0s), but each video cut off after
>> ~6000ms. Since the duration was set to 12000ms and the prerelease was set
>> to 5000ms, could the pre-release, or how the video is loaded, be the
>> problem?
>>
>> I made another simple script (tester 2) which only played videos one
>> after the other (same as above), but this time I kept the attribute VidDur1
>> to specify the duration of each video (keeping the prerelease 5000ms).
>> Similar to the above, each video played, starting at the beginning of the
>> video (0s), but each video cut off after ~6000ms. The only difference
>> between this simplified script with a duration attribute and the above
>> simplified script with a set duration of 12000ms was that instead of
>> immediately moving onto the next video, the preceding video cut off and
>> froze for ~5000ms before moving onto the next video.
>>
>> Next, I investigated if the problem was caused by the prerelease setting.
>> I used the tester 2 script (which included the duration attribute) and
>> changed the prerelease for the movie object to "0". This resolved the
>> problem- all videos played back to back correctly (good visual, good
>> audio). However, when I changed my original script (2 movie objects back to
>> back in the same trial) to have the prerelease set to 0 for video1 and
>> video2, I continued to have problems playing video2. So, it seems like the
>> problem is related to how video2 is loading/playing after video1 plays,
>> when 2 movie objects are presented consecutively in the same trial.
>>
>> Would it be helpful to attach my script?
>>
>> Thank you for your assistance
>>
>>
>> On Tue, Apr 1, 2014 at 4:34 AM, David McFarlane <<mailto:mcfarla9 at msu.edu
>> ><mailto:mcfarla9 at msu.edu>mcfarla9 at msu.edu> wrote:
>> Movies make life difficult for any experiment software I know. Often the
>> problem comes from the movie files, not necessarily the experiment
>> software. Remember that how a movie file works in Windows Media Player or
>> any other software tells you nothing about how that file will work in
>> E-Prime. So first you need to find out whether the problem pertains to
>> your movie files, or to E-Prime.
>>
>> I would start by making a simple E-Prime program that does nothing but
>> play my movie files, in Sequential order. Then I would try running in
>> Random order. If all my movie files succeeded under those conditions, then
>> I would incrementally change my test program (or actually, a copy of my
>> test program) to make it more and more like my experiment program, hoping
>> to sneak up on the culprit that breaks my experiment program.
>>
>> Oh, I would also use the Codec Config utility that comes with EP2.
>>
>> Just some general troubleshooting advice there.
>>
>> -----
>> David McFarlane
>> E-Prime training online: <<http://psychology.msu.edu/
>> Workshops_Courses/eprime.aspx>http://psychology.msu.edu/
>> Workshops_Courses/eprime.aspx>http://psychology.msu.edu/
>> Workshops_Courses/eprime.aspx
>> Twitter: @EPrimeMaster (<<https://twitter.com/EPrimeMaster>
>> https://twitter.com/EPrimeMaster>https://twitter.com/EPrimeMaster )
>>
>> /----
>> Stock reminder: 1) I do not work for PST. 2) PST's trained staff take
>> any and all questions at <<https://support.pstnet.com>h
>> ttps://support.pstnet.com>https://support.pstnet.com , and they strive
>> to respond to all requests in 24-48 hours, so make full use of it. 3) In
>> addition, PST offers several instructional videos on their YouTube channel
>> (<<http://www.youtube.com/user/PSTNET>http://www.youtube.com/user/PSTNET>
>> http://www.youtube.com/user/PSTNET ). 4) If you do get an answer from
>> PST staff, please extend the courtesy of posting their reply back here for
>> the sake of others.
>>
>>
>> \----
>>
>>
>>
>> At 3/31/2014 04:35 AM Monday, Katie Jankowski wrote:
>> I created an EPRIME task for an fMRI scan (timing is sensitive) but I am
>> having troubles running my video stimuli. In each trial, participants view
>> a fixation cross (text slide, 12000ms), a block introduction (text slide,
>> 2400ms) , video1 (movie object, ~12000ms), and video2 (movie object,
>> ~12000ms). Since I am using a block-design fMRI task, not event-design, I
>> want to treat Video1 and Video2 as 1 block. Thus, they are displayed back
>> to back.
>>
>>
>> Each video stimuli includes both audio and visual information. The
>> durations of each video are variable (approximately 11000ms-14000ms, some
>> 11500ms, others 13500ms, others 12000ms, so I included a duration attribute
>> [VidDur1] and [VidDur2] for video1 and video2. respectively). The the final
>> "block" (video1 and video2 combined) is always 24000ms.
>>
>>
>> I am having several issues running the movie files. Video1 runs well, but
>> video2 has both visual problems (blank white screen) and audio problems
>> (starts about 2s into the clip, then after about 2s starts from the
>> beginning at 0s, then runs through the audio but ends early). I think my
>> problems might be related to preloading the stimuli, but I don't know what
>> to do. I have been emailing support for about 2 weeks without coming to a
>> solution, so I thought I would ask the google group. I have also looked on
>> the knowledge base, but I have not found a solution.
>>
>>
>> Currently, pre-release for video1 is set to 5000ms and pre-release for
>> video2 is set to 0ms (but I have also tried 5000ms for video2 with similar
>> results). Start and stop position are 0, stop after is set to "yes", stop
>> after mode is set to "nextonsettime", end movie action is "none", duration
>> is "[VidDur1]" and "[VidDur2]", and timing is "event". Under experiment
>> properties, "flip enabled" is selected and both "display" and "sound" under
>> "devices" are selected.
>>
>>
>> I would greatly appreciate any advice!
>>
>>
>> (As an aside, if I set "duration" to 12000ms for video1 and "duration" to
>> 12000ms for video2 (instead of relying on an attribute to represent the
>> duration, I have the same problems. If I set the duration to "infinite" for
>> video1 and "infinite" for video2, only video1 runs, regardless if "stop
>> after mode" is set to "offsettime" or "nextonsettime".)
>>
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "E-Prime" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/e-prime/LHq3Niv1zfk/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> e-prime+unsubscribe at googlegroups.com.
> To post to this group, send email to e-prime at googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/e-prime/533ed138.4294320a.31aa.17fdSMTPIN_
> ADDED_MISSING%40gmr-mx.google.com.
>
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com.
To post to this group, send email to e-prime at googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/e-prime/CAFXwHjSCmYw4H2UocVmzM-qTQyaBqNw00R6YVHNwNbGwNfdV-w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.linguistlist.org/pipermail/eprime/attachments/20140407/edf7bb2c/attachment.htm>
More information about the Eprime
mailing list