ActionScript 3.0 :: Error: "NetStream.Play.StreamNotFound" While Playing Mp4 File Using NetStream Object?
Jan 7, 2010
I am using NetStream, NetConnection and Video object to play an mp4 file which is hosted over a web server using http.This is an AIR application and the relevant code is pasted below:
var url:String = <some http url>;
connect_nc = new NetConnection();
connect_nc.connect(null);
I used NetStream.play("invalid-live-stream-url") to play an invalid live stream. The other arguments are using default, e.g. start = -2, len = -1.
The menu says that when we use the default "start" and "len" to call "NetStream.play", "Plays the live stream until it is no longer available. If a live stream of the specified name is not found, Flash Player plays a recorded stream until it ends."
However, I do not have a recorded stream on the server that has the same name as the live stream, and I did not get the expected "NetStream.Play.StreamNotFound" error.
I'm recording audio using FMIS, the file is being saved out as a FLV file and I am able to play it back. Eventually that file may be deleted after some time and I would like to notify the user if the file is no longer available. I was expecting to see NetStream.Play.StreamNotFound after deleting the file on the server but I'm not getting that message. Instead I get:
--> NetStream.Play.Reset--> NetStream.Play.StartAnd nothing plays which is expected since the file is deleted, but I dont get the right message. I'm calling the file like so:ns.play ("flv:file_to_stream");
I would like to have the possibility to detect when NetStream is not working (i.e. the name used in initialization can't be found on the server side). The StreamNotFound doesn't work at all. I've read that it's the fault of the Flash Media Server, which automaticaly creates new stream, if it cannot be found (of course it's an empty stream - what is wrong from my point of view). Is it true? If yes, can I disable it on the server side, so I could easily detect if the stream name is correct?
I'm using OSMF v.95 to handle my video playback. When my streaming videos finish, the following error is triggered:"NetStream.Play.StreamNotFound"I want to be able to re-play the videoor scrub back, but the stream is unusable after that error.I've tested against a few different streams - here is one:
In my application I have a video playing from a NetStream. Every second on timer I update a text label with statistics like stream.info.currentBytesPerSecond. The problem occurs when the NetConnection associated with this NetStream closes: the getter for stream.info throws
I am working on an app that will take a snapshot of an rtmp stream of an archived video, save it to a file, and ExternalInterface the file name to the hosting page to javascript it up for display.
I actually have all pieces working great. The only time an error is thrown is when I pause the video, seek to somewhere, and then try to take a snapshot. Then there is a runtime error of: SecurityError: Error #2123: Security sandbox violation: BitmapData.draw: mySwf.swf cannot access rtmp://myFlashServer/myApp. No policy files granted access.I've seen post after post of suggestions and have tried them, but without success.
I have the crossdomain.xml and my FlashMediaServer security setup fine (it is actually working, except for this one glitch). It just seems to be the pause-then-seek-then-BitMapData.draw() combination which is creating issues.
Another weird thing: after the error is thrown, if I resume the stream and take a snapshot, it works flawlessly again.
I have a "movie player" that plays flv files using the code below (videoToPlay is the name of the file to play and is just a string). I want to use the same setup to play an mp3 file also.I tried using mySound = new Sound(); and then mySound.attachNetStream(ns);, but it gives me this error: 1061: Call to a possibly undefined method attachNetStream through a reference with static type flash.media:Sound.
I'm making a small video players in AS3, and I've found that after calling NetStream.pause() or NetStream.togglePause(), no status messages are being fired any more.If I click the "pause" button while the video is buffering, I never get the Buffer.Full message.Here is some code:
_connection = new NetConnection(); _connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); _connection.connect(null);[code].....
I'm trying to play a 10 minute long video (h264/mp4) which is 39MB in size, after I call stream.play(fileURL) it doesn't start playback until its loaded around 12-16MB of the file (many many seconds later), I finally get onMetaData at this point too. Why doesn't it begin playback right away, or at least w/in a couple seconds? What can cause this bloated lead in time?
I'm just trying to figure out this error message that comes up when I am importing a video into flash. It says: 'NetStream.Play.StreamNotFound: Adobe flash tried to play a live or recorded stream that does not exist. Source can't be found'
I have a URL that dynamically serves an FLV file or GIF file at different times.
For example, if I put [URL] in my browser, and the server happens to serve an FLV file at that time, the browser will ask me to download the FLV file. If the server happens to serve a GIF file at that time, the browser will display the GIF. Basically [URL] will generate dynamic file content.
In my actionscript I have the following code (assume the video object, netconnection, and other initialization are already done):
When the URL serves an FLV file, the video plays successfully in my flashplayer.
Note that the *actual* FLV file is not specified, only the path that is supposed to contain it. I haven't seen any example of this before, but it works when I try it.
Problem: If the URL happens to serve a GIF, my flashplayer stalls.
Question:
How can I detect that the URL served a GIF? (so that my player can recover) I tried checking if an onStatus event was fired (I'm expecting NetStream.Play.StreamNotFound), but there doesn't seem to be any. It looks like the netstream object did not react to the wrong input.
I've been searching for this for a while, and either my google-fu is weak or there is no easy to find answer yet...
I am using a NetStream to stream a video file from anywhere. The NetStream is NOT connected to any server. Here is the code:
// Create new connection and stream _netCon = new NetConnection(); _netCon.connect(null);
[Code]....
This basically works, of course, but the video always starts playing only when it is fully loaded. It also passes the metadata only then. But the main reason to use a NetStream is so that you can play a video BEFORE it is fully loaded.
I tried playing around with the bufferTime property, but to no avail. Also made sure that there is no caching involved when loading the video. I always load a "new one" by adding some "?bla=date" value behind the url.
Is it possible that the "real" streaming only works when really connected to a server? Or am I missing something else?
I'm brininging in external .flv's into my swf using the NetStream method, I can't seem to detect when the flv has finished playing so I can reset the buttons in my video playlist.
I'm sure this is a simple question, but I just can't crack it. In my video player I want to detect if the current status is playing or paused. But I can't figure out where this info comes from. Is it a property of the ns object?
I got a bunch of live stream from FMLE, say: "FMLE_channel1", "FMLE_channel2", "FMLE_channel3". And then on the server side, I created several corresponding republished stream called "channel1", "channel2", "channel3".
On periodical basis, we call Stream.get("channel1").play("FMLE_channel1", -1, 10, true) every 10 seconds. Similar things were done on the second channel & third channel.Soon after the above Stream.get("channel1").play() call, I should get the following events in sequence:info :NetStream.Unpublish.Successinfo :NetStream.Publish.Startinfo :NetStream.Play.Resetinfo :NetStream.Play.Start In the above case all are happy. Clients can view channel1, channel2, channel3 well.But then after a while, one of the three channels, in most case it would be channel1, will not be viewable.
With the server trace info, I found that after the Stream.get("channel1").play() call, only the following two events exists:
info :NetStream.Unpublish.Successinfo :NetStream.Publish.Starti.e. I was missing the play.reset and play.start event.I further checked and confirmed that the FMLE was publishing all three channels fine to the server. I was able to view the "FMLE_channel1" from flash clients, but not the republished "channel1". the version is FMS 3.5.0.
I am reusing a NetStream object to play different live streams.
What annoys me is that even though I start playing another stream name on this same stream object, when it is attached to a new Video object after issuing the "play" call, there is stale data after the previous playback. It's NOT the video object obviously, as I already create a new Video object every time I play another stream name on this NetStream object (Video.clear does not work anyway - known player bug).
I can rectify the situation by "resetting" the NetStream object - creating and setting up a new one for each playback, assigning it to the old reference - essentially transparent to the application. The problem is performance - there is the overhead of creating and setting up a new stream object every time. I wish to avoid such overheads.
I wish there was some form of "clear" call for the NetStream class as well...
1) What is the recommended/best practice method for loading videos (flv, f4v, mp4, etc.) from a play list. Some of the files might be on the local file system, some might be on a streaming server and uses rtmp.
2) Does the VideoPlayer.play internally use NetStream/NetConnection objects? I could get the files to play using both these methods - not sure if one is better than the other. I didn't see any references about streaming in the VideoPlayer.play method - but it does work with rtmp URLs!
3) For a long running standalone application, how do I make sure the VideoPlayer/NetStream objects are properly released/garbage collected? Right now I am closing the netstream/netconnection after playing every file - mainly because I do not know which server/file system the next video is being loaded from.
The main problem is that the FLV doesn't load/play, which most likely causes the secondary problems, such as the bufferClip always visible and no way to test the video and audio scrubbers.
I'm using the netstream and video object to play a video in flash. Specifically a mp4 video.
What I'm trying to do is start playing the file from a specific position (Ex. 20seconds).
However with netstreamObject.seek(20) doesn't work unless the stream has been loaded past 20seconds. Is there a way to specify starting to load at 20s? Or any other way of accomplishing this?
Hoped this would ave been fixed in as3 but this event does not always get triggered. Seems to be related to the encode. Anyways I would like to see others approach to this issue.
Currently I have place a condition in the NetStream.Play.Stop event to check if the ns.time is > the duration-1;
[as] if (ns.time > duration-1){ playing = "complete"; } [as]
I have noticed this does even work consistantly unless I change it to ns.time > duration-2.
I am trying to upload my demo reel. I compressed it to an FLV file, and used the import video command with the setting' "Load external video with playback component." After selecting my skin and hitting ok, I got a prompt that said "Netstream.play.stream not found." Why isn't this working?
In a Flex NetStatusEvent of type NetGroup.MulticastStream.PublishNotify, you get the String name of the stream in e.info.name
The name is what the publisher specified in the .publish ("") method. But in a NetStatusEvent of type NetStream.Connect.Success, there is no such property. Instead, the whole NetStream object is available through e.info.stream
How the heck to you get something as basic as the name from the NetStream object? e.info.stream.name does not exist. I must be overlooking something very simple.
I've got a play/pause movie on my timeline to control an FLV via NetStream. The idea is to switch from a play symbol to a pause symbol, but it's not working.[code]Clicking on the clip will start and stop the flv just fine, but the symbol switch doesn't happen. When I take out the ns code, just to check and see if the switch will actually work, there's no problem.What am I doing wrong? How can I get my clip to change from a play to a pause symbol?
I'm streaming mp3 on flash media server 3.5 on linux version, and very often come accross with that problem, when the buffer.length become 0 on client side, the streaming will stop with NetStream.Play.Stop event, and will not be continued. I think this case it should wait always till the data arrives and never should stopping. Some more info : I tested on applications/live folder, and the mp3 files are created dynamically during the playing, and the creation speed is almost the same like the playing speed, so those are not fix files.
i've created a sub-folder called dvr under fms 4.0 applications. i made a test of playing a video named sample.flv then at the same time i publish it to the same fms 4.0 server with a different video name: "mergedVideo".the asc at the fms server as following: