NetStream.Play.Stop and Complete fired early on RTMPE streams
Hi there
I am experiencing an issue with playback on RTMPE streams. after investigation it seems that the FMS server is firing the NetStream.Play.Complete message at random points, indicating that a stream has ended. This is happening and random points during the stream, not even close to the end.
The order of Status messages is as follows:
Thu Oct 20 2011 04:15:17 PM :: NetStream.Play.Start : status
Thu Oct 20 2011 04:32:40 PM :: NetStream.Play.Stop : status
Thu Oct 20 2011 04:32:40 PM :: NetStream.Buffer.Flush : status
Thu Oct 20 2011 04:32:58 PM :: NetStream.Buffer.Empty : status
Thu Oct 20 2011 04:32:58 PM :: onPlayStatus : NetStream.Play.Complete
As you can see roughly 17mins into playback...although the stream is 1 hour 24mins long
I have tested this numerous times, and each time it is at a different point in the stream.
Intermittently the NetStream.Play.InsufficientBW warning is being fired prior to NetStream.Play.Stop.
I am using a player built on OSMF 1.5.
Just need to know why these messages would be fired and how to handle them
Thanks
Steve
Hi Steve,
Thanks for the information. Did you check with flvcheck tool to see if the file is a valid FMS file ? If not, can you do that please ?
Similar Messages
-
NetStream.Play.Stop : Problem:
Hi,
I have develop video streaming application with Flash Media server 3.5 + and Use Dynamic stream feature , this player work correct in all way but issue with NetStream.Play.Stop() command set while playing video without EOF
i.e video file .f4v format has 30 sec lenght ,
-player face NetStream.play.stop() command @ 2.30 without indicate any stop command ,its automatically halt but last 0.30 is remaning.
Any idea regarding this dobet please help me ..
Thanks ,
aQuestion 1: When I put the .FLV files to play in the
"\streams\_definst_" of
the application directory of the Flash Media Server
installation, does that
automatically turn it into streaming FLV and no longer
progressive FLV?
The distinction between progressive and streaming is the
NetConnection.connect
Question 2: What's the best way to detect or to signal my app
that the
streaming FLV has completed playing?
Not sure what the best way is. But I subclass the NetStream
class similarily
to how it is presented in the Flash Communications Server
book example 5-5.
http://www.flash-communications.net/sourceCode/index.html
It uses a combination of NetStream.Play.Stop and bufferLength
== 0 as one
signal to toggle a stopped state flag and
NetStream.Buffer.Empty and that
stopped flag as another signal. The stopped flag is turned
off on the next
NetStream.Play.Start.
Lon Hosford
www.lonhosford.com
May many happy bits flow your way!
"naz404" <[email protected]> wrote in
message
news:e3ffu4$a6c$[email protected]..
Hi. I built a dynamic FLV player using XML playlists but
using progressive
downloads.
I've been trying to migrate it to a Flash Media Server 2.01
solution, but
after I did,
"NetStream.Play.Stop" no longer seems to be happening
properly.
Question 1: When I put the .FLV files to play in the
"\streams\_definst_"
of
the application directory of the Flash Media Server
installation, does that
automatically turn it into streaming FLV and no longer
progressive FLV?
Question 2: What's the best way to detect or to signal my
app that the
streaming FLV has completed playing?
Also, "NetStream.Play.Complete" never seems to occur, even
if the stream
has
completed playing.
Thanks! -
NetStream with OSMF is firing NetStream.Play.Stopped too early.
Hi,
I've been digging into a bug report where the ends of adverts are clipped by up to three seconds in Android and, after a _lot_ of painful debugging, I have come to the conclusion that the issue is with the underlying NetStream object.
After a bit of jiggery pokery to locate the NetStream on NetStreamLoadTrait, I was able to listen to the changes to NetStream.time and to compare against the TimeTrait values, also to see what events were happening where and when. After placing this code on an Event.ENTER_FRAME handler, I was able to see clearly that there is _ALMOST_ALWAYS_ a huge jump in the last two frames... This equates to clipping off the last few seconds of the video as the jump tends to occur a couple of seconds prior to the end. Having placed break-points in OSMF code, it appears that the end is "correct" in that it is always in response to a NetStream.Play.Stopped... just that the NetStream.Play.Stopped is firing at the wrong time.
Does anyone have _any_ idea what could be causing this? Is it likely to be with the media being supplied (third-party advertsing video...) or the plugin itself?
Thanks,
GI have created a bug report here: https://bugbase.adobe.com/index.cfm?event=bug&id=3504086
Please take a look, use my supplied test script, and vote for the issue if you can reproduce it.
G -
Subscribe immediately followed by Netstream.Play.Stop
We are in general successfully using Stratus with our
redesigned, previously fully FMS3(TCP), coaching application.
We still do all non-audio/video comms, including the
signalling for audio/video and chat, the traditional way, using
shared objects.
Now we have one customer with whom we can't get audio/video
going this way. All other things work. We get a peer id from him,
then subscribe to that, but the subscribe is immediately followed
by a Netstream.Play.Stop event.
With the Stratus sample app we get nothing going at all.
Although my suspicion goes to local firewall and NAT issues,
I still would like to hear your interpretation of this sequence of
events. We have lately seen no other firewall/NAT issues, so I
wondered whether NAT is still an issue with Stratus and a potential
cause of this type of behaviour?I posted the following message to the FLASHMEDIA mailing list
about a month ago about how to use a server I run in my garage
http://cc.rtmfp.net to test
NAT/firewall properties:
IF the connection to cc.rtmfp.net has the same properties as
the connection to/from the peer, then the results can be used to
make a good guess as to whether or not a peer-to-peer connection
can be formed. The fact that the connection in some cases does NOT
have the same properties is why the results can't be relied upon
completely. (As an example, two peers in the same organization
behind the same firewall have different properties between each
other than they each have to cc.rtmfp.net)
In order to guess, one needs to know that there are different
types of NAT behavior. (I'll use the older common terminology
below, rather than the new recommended terminology, as most people
know the older terminology better):
Some reuse the same address and port when talking to
different peers
("cone") and some pick a new address and port ("multiple IP
address,
symmetric") or the same address but new port ("single IP
address, symmetric"). There is also different filtering behavior of
NATs and firewalls. (Note that a firewall may filter and not be a
NAT, or a NAT can also act as a firewall and have filtering). The
typical kinds of filtering behavior are none (for a cone NAT we
would call that "full cone"), restrict to only talking to addresses
we have talked to before ("address-restricted"), and restrict to
only talking to addresses AND port numbers we have talked to before
("address- and port-restricted").
There are also firewalls that block UDP entirely.
Unfortunately, there are also even more complicated NAT and
firewall behaviors that aren't easily characterized. For instance,
some act as a symmetric NAT that preserves port numbers at first,
then when they run out of resources they switch to being a cone
NAT. Some act as one type of NAT for the first client that connects
to a server, then a different type if a second client behind the
NAT tries to connect to the same server. So this is another case
where a simple analysis, like the one performed by cc.rtmfp.net,
can fail to properly predict what will happen for the peer-to-peer
connection.
But, if the connection to cc.rtmfp.net has the same
properties AND the NAT or firewall has predictable behavior, here's
what the results mean:
At the top, a successful RTMFP connection will result in
"Analysis Complete". If you don't get that, UDP is probably
blocked. (Or the cc.rtmfp.net RTMFP server has a problem... it runs
on a machine in my garage, with no redundancy)
The for each yes/no answer, there's the following meaning:
"Knows public IP address of self" means that the Flash
Player's idea of its local addresses has one address that matches
the one that cc.rtmfp.net saw when the connection came in. If that
is the case, there's no address translation.
"Public UDP port number same as local UDP port number" means
that the Flash Player's idea of which UDP port number it is using
matches what cc.rtmfp.net saw when the connection came in. If that
is the case, there's no port translation. So if this and the above
are "yes", then there's probably no NAT of any kind (but there
still might be a firewall)
"Can receive from same IP address, same UDP port number" is
always true, because if you couldn't do this you couldn't establish
the initial connection.
"Can receive from same IP address, different UDP port number"
tells you whether or not your firewall is "port restricted",
requiring an outbound connection to the same address AND port
number before inbound traffic is permitted from that address and
port number, even after traffic was sent to the same address but
different port number previously.
"Can receive from different IP address, different UDP port
number" tells you whether or not your firewall is "address
restricted", requiring an outbound connection to be made to a new
IP address before inbound traffic is permitted from that IP
address.
"Can send to different IP address after server introduction"
should always be true if the initial connection can be made
because, unless there is very strange firewall behavior, this is
just like opening a new RTMFP connection initially. If this fails
then either there's a problem with how the player received or
treated the introduction request, or the firewall is totally
unpredictable.
"Source IP address is preserved from original connection"
means that either you have a cone NAT, or a symmetric NAT with only
one IP address, or a symmetric NAT with multiple IP addresses *but*
the same address happened to be used this time. If repeated tests
cause this to change between yes and no, then you have a symmetric
NAT with multiple IP addresses, and sometimes you happen to use the
same address.
"Source UDP port number is preserved from original
connection" means that you have a cone NAT. If this is "no", then
you have a symmetric NAT.
Now, how does this tell you what will and won't work?
Symmetric NATs break peer-to-peer connectivity in some cases.
Flash Player can work with almost all cone NAT configurations
(though with some caveats if there are multiple layers of NAT
and/or lack of "hairpinning" support), and many firewall
configurations, but symmetric NAT in combination with certain
firewall or NAT cases at the other end blocks the ability to
establish a peer-to-peer connection.
If one end is a symmetric NAT with a single IP address, then
connections to peers behind other symmetric NATs or behind
port-restricted cone NATs (or port-restricted firewalls) are
impossible.
If one end is a symmetric NAT with multiple IP addresses,
then connections to peers behind other symmetric NATs or behind
address-restricted (and likely port-restricted) cone NATs (or
address-restricted or port-restricted firewalls) are impossible.
This is because no matter what the Flash Player tries to do
to "punch a hole" through the restricted cone NAT or restricted
firewall in order to let the other peer through, the other end
keeps moving to a new address and/or port number that doesn't match
up, so the hole that was created is no longer applicable.
The best choice is to allow UDP traffic through and to use a
NAT and/or firewall device that complies with the NAT
implementation recommendations of the IETF BEHAVE working group.
Alternatively, an organization may choose to use the TURN proxy
support in the player to send traffic to a proxy in a DMZ that can
comply with those recommendations.
Application developers may also want to create fallbacks to
client-server RTMP and/or RTMPT in order to cover the cases where a
firewall or NAT blocks a direct peer-to-peer connection. It depends
on whether you want your application to always work, or you want to
never have to relay media through your server.
Matthew Kaufman -
My audio stops outputting after a few songs in a playlist - itunes says its still playing, stopping and starting track recommences audio output. Mac book Pro Lion 16gb ram. Can be any song, any time, same song will play if I select it again. Bit of a bummer itunes is the main thing I use (macbook pro jukebox).
Most likely culprit is your Lacie drives which are notorious for flaky power supplies which cause just the sort of erratic behaviour that you describe. Have had similar issues myself. Lacie has been good about replacing my power converter-- twice. If you have seven of them, good luck finding the bad one or more. Like I said, the behaviour is erratic. Sometimes it'll work sometimes not. I can't comment on Samsung drives because I've never used them and have never heard anything about them. Same with Softraid. Why not just use Disk Utility. Sounds like you're ready for an external hardware raid. This will be much faster, much more reliable, and may even be cheaper than seven firewire drives. Check out G Tech, and Maxx Digital for starters.
Best of luck
Terry -
when i click on a video such as youtube or news stie . it does not play smoothly , it stops and goes , what would be the problem
is this a case with video that is streamed over the internet? if so then dont start it straight away ... your internet connection may not be fast enough to load the video and play it straight away
-
During play, the video freezes after several minutes. Not all videos are affected by this. Video podcasts and other videos downloaded from iTunes work more reliably. Videos I edited (I use Ulead VideoStudio 10 & 11 or Roxio Creator 9) are a problem and generally will not play. All the edited videos are rendered to the iPod setting in the program(s) and play perfectly in iTunes.
All the videos, regardless of their source, play perfectly on my two year old 60 gig 5th generation iPod.
From other postings, it appears that other iPod Classic owners are experiencing this problem.
Could this be a "firmware" problem that Apple will be able to resolve or is there a hardware problem in this 1st generation Classic?I deleted all the video files from iTunes and sent them to the recycle bin. This did not delete the files from the the file folder located in My Documents/My Videos. Next, I went back to iTunes and added each video file into the Movies playlist.
After completing this for all my videos, every file played perfectly on my iPod Classic.
With this solution to my videos freezing while playing, I am completely satisfied with the new iPod. I plan to buy another Apple Dock for use in the car with the factory installed video player. -
Controlling sound file with play, stop and mute button in AS3.0?
the method for stopping/playing sound in 2.0 don't work for 3.0. i can stop the sound by going to a different page/frame on the site. but i want the buttons.
1. play button?
2.stop button?
3.mute button?
thanks in advance!for pause (example 2) :
for volume -mute (example 1) :
package
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.*;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import flash.net.URLRequest;
import flash.utils.Timer;
public class SoundTransformExample extends Sprite
private var url:String = "MySound.mp3";
private var soundFactory:Sound;
private var channel:SoundChannel;
private var positionTimer:Timer;
public function SoundTransformExample()
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
var request:URLRequest = new URLRequest(url);
soundFactory = new Sound();
soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
soundFactory.load(request);
channel = soundFactory.play();
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
private function ioErrorHandler(event:Event):void
trace("ioErrorHandler: " + event);
private function setPan(pan:Number):void
trace("setPan: " + pan.toFixed(2));
var transform:SoundTransform = channel.soundTransform;
transform.pan = pan;
channel.soundTransform = transform;
private function setVolume(volume:Number):void
trace("setVolume: " + volume.toFixed(2));
var transform:SoundTransform = channel.soundTransform;
transform.volume = volume;
channel.soundTransform = transform;
private function mouseMoveHandler(event:MouseEvent):void
var halfStage:uint = Math.floor(stage.stageWidth / 2);
var xPos:uint = event.stageX;
var yPos:uint = event.stageY;
var value:Number;
var pan:Number;
if (xPos > halfStage)
value = xPos / halfStage;
pan = value - 1;
else if (xPos < halfStage)
value = (xPos - halfStage) / halfStage;
pan = value;
else
pan = 0;
var volume:Number = 1 - (yPos / stage.stageHeight);
setVolume(volume);
setPan(pan);
package
import flash.display.Sprite;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.events.MouseEvent;
import flash.text.TextFieldAutoSize;
public class SoundChannel_stopExample extends Sprite
private var snd:Sound = new Sound();
private var channel:SoundChannel = new SoundChannel();
private var button:TextField = new TextField();
public function SoundChannel_stopExample()
var req:URLRequest = new URLRequest("MySound.mp3");
snd.load(req);
button.x = 10;
button.y = 10;
button.text = "PLAY";
button.border = true;
button.background = true;
button.selectable = false;
button.autoSize = TextFieldAutoSize.CENTER;
button.addEventListener(MouseEvent.CLICK, clickHandler);
this.addChild(button);
private function clickHandler(e:MouseEvent):void
var pausePosition:int = channel.position;
if (button.text == "PLAY")
channel = snd.play(pausePosition);
button.text = "PAUSE";
else
channel.stop();
button.text = "PLAY"; -
tried updating to ios 6 on iphone 4 has completely shut my phone off tells me i have to plug into itunes and restore to factory settings but will not let me do this?? need help???
Interceptor94 wrote:
What should I do short of restoring my phone to factory settings?
Nothing. The message means you MUST restore your phone to factory settings. There's no way around this . Your phone is in recovery mode. That's the only way to get it out. -
Im not very GB savvy, but I know that I had been avoiding the update, and it worked fine before I left the house for my Kick 'n' Zumba class. My husband wanted to make some ringtones for our phones, and I got a text that said our GB was broken. So he says he didnt update it, but when I check for updates, there are none. GB is running on version 4.1.2. Any ideas? And when I open previously made ringtones, the added loop (is that what it is?, the song from iTunes) is missing also. What happened
It's hard to say without knowing exactly what happened at your Kick 'n' Zumba class.
Perhaps some basic troubleshooting might help: There are 2 preference files associated with Garageband. Try throwing both of them out, and then open Disk Utility and Click on Repair Disk Permissions. -
Experiencing stop and go of utube videos not streaming
I view utube videos on my ipad and the videos are downloading and video view is intermittent
Chances are it's your internet connection. Wifi only transfers data so fast. See if you can pause the video and let it 'catch up' so to speak and then try to watch.
-
Video file how to stop and find Video is completed.
hi
we have load the .flv file the following code:
//===================================
var vid:Video = new Video(310, 174);
vid.y=24;
vid.x=308;
addChild(vid);
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
vid.attachNetStream(ns);
var listener:Object = new Object();
listener.onMetaData = function(evt:Object):void {};
ns.client = listener;
ns.play("Best Ford Commercial Ever!!!.flv");
//===================================
video play fine. i using close btn close the Video. the folloing code:
//===================================
removeChild(vid)
//===================================
problem: 1. Video will be closed but audio is running. How to stop the audio and video.
2. How to trace the video is completed.
thksUse NetStatusEvent.NET_STATUS event listener for netstream and trace(event.info.code);
if info.code is NetStream.Play.Stop the video is finished playing.
use NetStream.close() method to Stops playing all data on the stream -
Problem: When using multiple instances of a FLV player in a
FLA AS3 and when one navigates to another frame the video still
plays from the earlier frames as one can still hear it...
I tried to implement loading a "phantom-light" FLV on the
frame change to stop the video playing but I was not successful,
note the code at the bottom...
What can be done?I realize you fixed your problem but it sounds like your
problem was not
just that the video continued to play but that it persisted
and you wanted
all vestiges to be gone. For future reference, I had the same
problem. I
used the removeChild () call and it fixed my problem. But
that's not saying
much because I still don't understand the code I've grabbed
from the
internet to play video on my website. In Lingo it was just
referring to a
sprite and issuing a play () command. It's much more
complicated in Flash
but I'm slowly learning.
Craig
"Matt Abron Abron" <[email protected]> wrote
in message
news:[email protected]...
> Problem: When using multiple instances of a FLV player
in a FLA AS3 and
> when
> one navigates to another frame the video still plays
from the earlier
> frames as
> one can still hear it...
>
> I tried to implement loading a "phantom-light" FLV on
the frame change to
> stop
> the video playing but I was not successful, note the
code at the bottom...
>
> What can be done?
>
> function playMyFlv(){
> _stream.close();
> if(autoStart == "true" || is_single_file == false)
> {
> //player_paused = false;
> toolbar.btn_play.dispatchEvent(new Event("mouseDown"));
> } else {
> autoStart = "true";
> if(is_single_file == true){
> getSingleImage();
> big_play_btn.x = bg.width/2 - big_play_btn.width/2;
> big_play_btn.y = bg.height/2 - big_play_btn.height/2;
> big_play_btn.visible = true;
> }
> }
> first_run=false;
> toolbar.checkPlayButton();
> }
>
> function onMetaData(data:Object){
> first_run=false;
>
if(contains(single_image_holder))removeChild(single_image_holder);
> _timer.start();
> _duration = data.duration;
> _stream.soundTransform = toolbar.videoVolume;
> toolbar.btn_volume.getVolume();
> //resizeVideo();
> }
>
> function onNetStatus(e:NetStatusEvent){
> //trace(e.info.code);
> //this resets the player on movie end
> if(e.info.code == "NetStream.Play.Stop"){
> toolbar.resetMovie(new Event("e"));
> first_run=true;
> toolbar.alpha = 1;
> }
> if(e.info.code == "NetStream.Play.Start"){
> _video.attachNetStream(_stream);
> show_buffer = true;
> }
>
> if(e.info.code == "NetStream.Buffer.Empty"){
> show_buffer = true;
> }
> if(e.info.code == "NetStream.Buffer.Full"){
> show_buffer = false;
> }
>
> console.appendText(e.info.code);
> resizeVideo();
> }
>
>
> //*************************This is the Kill Video Test
Code
> HERE********************
>
> /*function killdownload(){
> _video.attachVideo(null);
> playMyFlv.pause();
> playMyFlv.play("nonexist.flv");
> }
>
> playMyFlv.onStatus = function (info) {
> for (var r in info) {
> trace ((r + " = ") + info[r]);
> trace(my_video._height);
> trace(my_video.height);
> trace("-----------");
> }
> if(info.code == "NetStream.Play.Start"){
> }
> if(info.code == "NetStream.Play.Stop"){
> stopping = true;
> //trace("stopping");
> }
> if(info.code == "NetStream.Buffer.Empty" &&
stopping){
> //trace("stopped");
> }
> if(info.code == "NetStream.Buffer.Full"){
> if(preview){
> killdownload();
> }
> }
> };
> */
> -
hi all here am loading video file and i want to unload it after it completed
and load swf file
well i write ths to load the video but am not able to remove it
var videoConnection:NetConnection = new NetConnection();
videoConnection.connect(null);
var videoStream:NetStream = new NetStream(videoConnection);
videoStream.play("flv/Mohaned.flv");
var metaListener:Object = new Object();
//metaListener.onMetaData = onMetaData;
videoStream.client = metaListener;
var video:Video = new Video();
video.attachNetStream(videoStream);
video.x = 200;
video.y = 200;
//video.fullScreenTakeOver = false;
addChild(video);You need to add a listener to your stream so you know when it's done. Something like so:
videoStream.addEventListener(NetStatusEvent.NET_STATUS, netStat);
function netStat(stats:NetStatusEvent):void
var c = stats.info.code;
if (c == "NetStream.Play.Stop") {
videoStream.seek(0);
videoStream.close();
removeChild(video); -
"NetStream.Play.InsufficientBW" dispatched when there's plenty of Bandwidth
Hi,
I am working on the Audio-Video application having two Flash Media Server, One is Flash Media Interactive Server and another is Flash Media Streaming Server.
I am publishing stream on Flash Media Streaming Server and receiving stream from Flash Media Streaming Server. Flash Media Interactive Server publish stream to live folder
"rtmp://xxx.xxx.xx.xx/live" Flash Media Streaming Server from server side code.
when application.onPublish of Interactive server dispatch then the stream published by interactive server has been republished to live of the streaming server and from there client receive stream by
making connection with live folder of Streaming server. Stream from streaming server received successfully but .....
After few minute at receiving side receiving netStream Object dispatch "NetStream.Play.InsufficientBW" and stop receiving stream.
Please help if anyone know any solution.
Thanks.Hi,
I want to add more to above, that for testing purpose I am using Flash Media Developement server as the Flash Media Interactive Server and Flash Media Streaming Server.
Thanks
Maybe you are looking for
-
SAP B1 8.81 PL 04 Client instllation failed on Windows 7 PC
Hi Experts, At one of my client SAP B1 8.81 PL 04 Client instllation failed on Windows 7 PC. When I execute Setup.exe, it end with error message 1628 : Installation not completed Thanking you in advance. Samir Gandhi
-
HP Officejet 6500A Printer will not connect to WPA wireless network.
An HP Network Configuartion Report from my printer states that the printer's Authentication Type is WPA-PSK. My router is WPA2 or WPA and won't connect to the printer. What is the solution to this problem?
-
Partner profile in case of Idoc to File scenario
Hi I have ECC system and PI system. Scenario as : ECC will send the Idoc to PI ..PI system will Convert this to flat file and provide it to Legarcy system I made Partner profile in sending system (ECC) and maintained Message type 'MATMAS' as Outbound
-
Hi.. I am going to do the MM-SUS Standard Interface. in this for Purchase order Confirmation and ASN Interfaces what are standard adapters for both sides. Regards, Pasi.
-
A couple months ago I updated my iPod touch to the most recent ios (6.1.3). Now, my music works normally except for one thing: some of it is gray colored and unplayable. I have one album of music that I actually bought on my iPod and only one song i