ActionScript 2.0 :: Seek To Specific Point In Video Before It Buffered
May 22, 2010
I'd like to start playing a web-based video at a specific time, say 2 minutes in, even if the video hasn't been downloaded that far. I thought I could just "seek" to that time but that apparently only works when the video is buffered first.
So for example, this:
Code:
nc = new NetConnection();
nc.connect(null);
ns = new NetStream(nc);
ns.play("[URL]");
ns.seek(123);
video.attachVideo(ns);
Seems to work if you have the video cached or buffered or whatever, but if you don't it gives the "NetStream.Seek.InvalidTime" error, which makes sense. I want to know if it's possible to start playing a video at a specific time, even if the video hasn't loaded up to that point.
I am using progressive download to play video files in a video player. When I seek to a point that has not downloaded yet the video player freezes. The player enters the seeking state and stops playing.Clicking the play and pause buttons has no effect. The video player comes out of the seeking state and resumes playing only when the video file has completely downloaded. How do I implement the functionality where the player when seeked to a point that has not downloaded simply seeks back to the amount that has downloaded.
If you load up a FLVPlayback component in Flash or VideoDisplay in Flex and try to seek to a specific location or set playheadTime to a specific location, the movie always rounds up or down by very large amountsIn flash, drag a FLVPlayback component to stage and set source to Then try to video.seek(6) or video.playheadTime = 6;It will just goto 10. Likewise if you use their built in scrubber the only intervals are 0, 5, or 10. So at most the scrubbing frame you see is 3Here is an example of flex with the same result.
Is the Flash Video (or Flex VideoDisplay) component capable of seeking to an exact moment in a video?It seems to always 'snap' to keyframes (which is understandable). I'm just wondering if there are any mechanisms in the video classes for seeking to exact frames, ie it should do the translation from keyframe to specific frame in the background rather than having to actually play the video forward to the desired frame.This is not a streaming file and has nothing to do with buffering. The player is just downloading a movie file from the web and playing it from memory.
I'm having a problem and I do not think the solution. I'm new using Flash.I have a video player and now we are implementing an HD button, the player always starts the video and 360P format and stream begins, if the user click on the HD I need to save the time of the video when it was clicked and then call another file. mp4 720P and start it at the same point that was recorded.I've tried various ways using CONNECTION.STREAM.seek(TIME); and always starts at (0), I feel that because of not being in Buffering he does not understand
Good afternoon staff. I'm having a problem and I do not think the solution. I'm new using Flash. I have a video player AS3 and now we are implementing an HD button, the player always starts the video and 360P format and stream begins, if the user click on the HD I need to save the time of the video when it was clicked and then call another file. mp4 720P and start it at the same point that was recorded. I've tried various ways using CONNECTION.STREAM.seek(TIME); and always starts at (0), I feel that because of not being in Buffering he does not understand. Can anyone help me solve this?
i have a video in which I can seek to unload parts (Pseudo-Streaming), the server return the video and it loads it from the requested second,the problem, i don't want to make a new request to the server if a part has already been buffered, here's what I have in mind, but can't achieve
Code: if(netStream_has_been_download){ //Just run the seek() command
I can get which part of file in bytes is loaded using netstream.bytesLoaded,netstream.bytesTotal, I can get the current playing position using netstream.time. But I want to know how many seconds of video are already loaded (not the length of buffer, which remains constant).
Normally we use NetStream.Seek method but it will make the seek after the buffer area crossed the seek time length.(HTTP). Can we seek the video that is beyond the buffered area like youtube in red5. Will it start the buffer from the seek point.
I know seeking to a cue point is known to be inaccurate at times so I'm wondering if the accuracy of seeking to time and secs better. So far I've seen no true difference.
when uing netsream.seek(), how can i make a new request to the server if the seconds parameter specifies a time outside of the currently buffered video data. I want to seek unloaded time
Does anyone know of any tutorials that explain how to make a seek bar with a handle that will be linked to the main timeline, so that when you move the handle the animation will move too, e.g. if you drag the handle to the centre of the bar then it will skip to the middle of the animation?
I currently have a handle that move on the x axis with in a set boundary, but not sure how to link it to the main timeline.
I'm looking for a tutorial on the interwebs to create a scrubber for the length of a movie clip.For example:If a movieclip is 300 frames long, the beginning of the scrubber would be Frame 1 and the end would be Frame 300 with Frames 2-299 in the middle.I'd like the user to be able to scroll through the movie much like a Quicktime VR
I'm using fl.video.VideoPlayer and I'd like to be able to seek arbitrarily within the video. seek() works unless the given time isn't yet loaded, in which case the video hiccups and continues playing normally. I'd like it to seek to the specified second even if it's not yet loaded, loading/buffering as necessary. I've tried seek() and play() and haven't been able to make this work.
I'm working on development of a medical training app and have come across a stumbling block I can't work out. I'm using FlashCS5, and AS3.Basic setup is this:
- 1 flvplayback with an H.264 MP4 loaded into it, stock controller
- 1 standard UILoader with a jpeg put into it
The jpeg still image is a sideview of a medical image, and the idea is that the user can move their mouse over this image and move the corresponding movie to a certain timecode. The full width of the image maps directly to the length of the movie clip, i.e. if you put your mouse on the very left of the still image, you are at 0 seconds of the movie, all the way on the right will be 49 seconds.
So, attached to my UILoader I added a simple routine that gets the mouseX, does some basic math to determine how far into the movie we should go, and sets the movie to that time.The problem is that using playheadTime, seek(), or seekSeconds() gives me incredible lag. You can move the mouse on the still image and the output window shows instantaneous reporting of the proper calculated time, but the movie itself might take 5-10 seconds to actually move to that time.
The movie has been rendered out using the CS5 Media Encoder and has a keyframe every 1 sec.Here is a link to a screen capture I did to show the problem. As you can see, using the standard controller is pretty responsive, but my other method is unusable. This happens locally as well, with the movie being fully loaded instantly.
h t t p://cl.ly/2gZY (1MB, quicktime)
Partial code, very basic:
ActionScript Code: screenImageView.addEventListener(MouseEvent.MOUSE_MOVE, pullbackJump); ... public function pullbackJump(e:MouseEvent):void {
It's streaming RTMP, and I'm trying to get my video to seek correctly if the user clicks on the groove bar (gray bar under the green progress bar) Currently it does not seek and gives me a NaN on my duration variable and an error on my progress bar width variable, which is puzzling me.
For some reason my videoDuration variable is coming up as NaN when used inside of my seeker function, also I'm getting a null object reference error when trying to trace out playerCntrls.progressTotalW which is the total width of the groove bar[code]...
Does anyone know if it's possible to get your FLV to seek to a point beyond what's already been loaded into the buffer... just like how youTube does it?I want it to seek to the new point, drop all buffered data that it had before and then just start buffering from the new point.I'm NOT (and can't) use a media streaming server - is this possible without it? After a bit of research it's not looking good :sIf you can't do it then I'm thinking I'll have to preload the whole FLV before the user even sees anything!
I am creating a custom flash video player for my friend's wife's surprise 40th birthday party. I was progressing through and everything was working fine, but now the seekbar and volume bar handles are completely gone. I was working on doing some buttons to load each video segment when I realized the missing handles. My actionscript is below:
import fl.video.*; var flvPlayer:FLVPlayback = new FLVPlayback();addChild(flvPlayer); flvPlayer.playButton = playbtn; flvPlayer.pauseButton = pausebtn; flvPlayer.seekBar =
I have a "video on demand" video that I'd like to seek at any point of the video. It's playing on a Motorola Xoom tablet. I can seek to the beginning of the video when the playhead is near the beginning. However, if I the playhead is towards the end of the video and I attempt to seek to the beginning of the video, the video seeks many seconds after the start of the video. I thought this might be a buffering issue, so I set inBufferSeek to true, but I still have the same issue.
I have a video player that doesn't have "seek from unloaded time" functionality. I want to add it now. I simply load video like this; stream.play("vidurl.flv"); (pseudo streaming) Server side is ready. I can call videos like videourl.flv?start=xxx but cant play them in player cuz video comes without metadata To sum up: 1. stream.play("vidurl.flv"); works, video plays 2. user clicks to seek bar. on unloaded part. I get the position and convert it to seconds stream.play("vidurl.flv?start=10"); Doesn't work! No metadata what I should do after?
I am using an flv file with navigation cue points. When I try clicking on a button I created to go to "EndOfMovie" I get the following error: VideoError: 1003: Invalid seek at fl.video::FLVPlayback/seekToNavCuePoint()at vectorVideo_fla::MainTimeline/skipToEnd()
The video seeks normally when first playing but when it finishes i canīt seek the video again. I used a listener to call a function after the event TimeEvent.COMPLETE occurs(video finishes). In the function i call the function player.seek(20) for example but it doesnīt work. The video keeps in the end of it.
I've scanned through the forums, but can't seem to find an answer to my question. I'm trying to move (tween) a movie clip 800 pixels along the x axis (horizontally) when a every time button is clicked. I don't want to move the movie clip to the 800 "x" pixel mark. Yet, I can't seem to move the clip an additional 800 pixels whenever the button is pressed again - it keeps starting from the original spot. I am new to ActionScript...
My code is below: btnBottom1.addEventListener (MouseEvent.MOUSE_DOWN, playHandler); function playHandler(evt:MouseEvent):void { import fl.transitions.Tween import fl.transitions.easing.*; var twTeen:Tween = new Tween(mcbottomFlap1, 'x', Elastic.easeOut, mcbottomFlap1.x, +800, 3, true); }
How do I listen/respond to a specific cue point by name in AS3?
I have this listener which runs a function as soon as a cue point is reached, but I can't figure out how to run different functions for different cue points.
Whenever i want to declare a point with a specific value, it takes me three lines:[code]It isn't a huge amount of effort, but i'm becoming tired of doing this hundreds of times. Is there an easier way?I've tried doing something like this:[code]but that gives me an error, because it only accepts one input parameter.how can i do this simple operation in one line ?This is also important to me because i'm making a fair bit of use of static classes, (non instanced, making use of static public vars) where (afaik) i cannot run code. I want to be able to declare global point variables in a static class, without having to use some external class to set the values.