Media Server :: What Determines When Peer Might Switch To Another Peer
Jan 30, 2012
When running a peer-assisted multicast video event, what determines when a peer might switch to another peer?What I'm asking is that a peer joins the group, is handed a few peers that may be decent cadidates to pull the video stream from.They start pulling that stream from peer1 and if they can't connect (or I assume if the connection is terrible) they will try the next peer.What if I want the peer to give up (and try another peer) if the quality of the stream coming from a peer is not terrible but is not great either.Is that configurable?
We developed one video chat application in which one user can chat communicate with anohter user. Latency is coming on one side in peer to peer connection.
One workaround for this seems to be very briefly using a server to authenticate and setup a peer to peer connection, such as Adobe Cirrus. Another workaround is simply not using peer-to-peer, and instead setting up a dedicated server using Java or PHP to communicate between users.
It seems to me, that if you can use Java on a server to communicate between two users, shouldn't you be able to use Java in your program to directly handle peer-to-peer communications, no server needed?
And, if it's at least theoretically possible, would someone mind pointing me to a good tutorial on integrating Flash and Java, and using Java to do peer-to-peer? The tutorials and examples I've managed to find so far on both subjects haven't been very illuminating.
I am trying to implement the actionscript program described at this address. http://cookbooks.adobe.com/post_Create_a_P2P_file_sharing_application-16539.html. It lets two flash client connect to the cirrus service and share a file using the flash peer to peer facilities.
The problem is that I would like to display a progress bar to the downloading client for long files. There does not seem to be any progress-type event been triggered by data sent by NetStream.Send. This particular function appears to have been created by adobe to send tiny update and meta-data code.
Is there a way to display a progress bar of downloaded data when using a netstream object?
The alternative would be to break the data into small packets and send them individually; then increment the progress bar as they are received by the client. Unfortunately this creates a lot of overhead for the simple problem of displaying a progress bar.
I am developing a simple text chat application with fms4, for this application, i am using adobe stratus service for developing this application and i just want to know about disconnected peerID.
I've installed FLASH MEDIA DEVELOPMENT SERVER 4 for testing. I wonder if there is a way to disable Stratus/Cirrus peer introduction services included in this version of FMS, because I need to simulate Flash Media Interactive Server 4 (not the Enterprise version) to adjust my application properly for cheaper solution.I am using NetStream.DIRECT_CONNECTIONS and I want to test, what are the differences of usage and how to do it right, even implement a fallback, when no peer introduction services are working on the server.
I am developing a video system using the peer-assisted networking of FMS. but when I have published video successed, I can't receive the video at some endpoint.
we're having a strange problem on a project here. When we use NetConnection in combination with a NetGroup to initiate communication between two local AIR applications on Windows XP, they always both connect to the NetGroup succesfully and detect each other as neighbors. However, on Windows 7 both applications connect succesfully to the NetConnection and NetGroup both don't detect each other as neighbors.To reproduce this problem, here are two AIR applications:[code]
These applications can connect and send message to each other without a problem on Windows XP. On Windows 7 however, they cannot.Does anyone know why this wouldn't work on Windows 7 and what steps can be taken to make it work? It's critical to our project that this works.In some cases, the applications take quite a long time to detect each other as neighbors (up to 15 seconds in some cases), in other cases they detect each other immediately. Does anyone know what could cause this delay?
When attempting to take a screen capture using BitmapData.draw() on a Canvas containing a Video Component of an incoming stream, here is the error I encounter:
I'm building a chat using Flex. The problem is how to do that new user get the list off all users online and added to the lists of all users. I try to put this information in DataGrid through dataProvider "callerns"[code]...Exchange user names and peer IDs between all connected users
Adobe Cirrus offers a number of options for transferring data from peer to peer: Directed Routing, Object Replication and Multicasting to name a few.I just want to send the data to one specific peer, its fine for other peers to 'see' it in transit.
My experiments with Directed Routing (the obvious answer) have not gone well. all the sendto... methods fail, while NetGroup.post works fine on the same netgroup. I am concerned about using direct connections because of reliability.
Has anyone successfully implemented a one to one messaging strategy (not one to many), which can still message between non-connected peers - (Directed Routing) or solved this problem successfully?
I am considering various workarounds, but I am quite perplexed that these NetGroup methods: sendToNearest, sendToNeighbour & sendToAllNeighbours just seem to fail, for no apparent reason.
I try to switch or change a server-side stream, it starts lagging after 2 seconds of playing and sound disappears. Here are scenarios that result in that terrible lag:
1. I create server-side playlist with stream.play() with reset=false; when it is time to play the next movie in the playlist, it starts lagging after 2 seconds.
2. The same problems appears when I just switch streams. I installed FMF Feature Explorer and tried to launch SwitchStreams sample application: the same problem - server stream starts lagging after I switch streams with stream.play().
I tried on different servers (local and remote), with different players (debug player of FMS Admin Console, Standard Flash videoplayer component, OSMF player, Flex video player). I also tried all possible flv, f4v and mp4 file compression options for video files - still the same problem. I have also tried literally thousands of Application.xml settings: changing buffer, buffer ration etc. Is there any tip where I should search for a solution?
why dynamic streaming taking too much time to switch video from lower bit rate to higher bit rate and vice versa. I am doing dynamic streaming in following ways -
var param:NetStreamPlayOptions = new NetStreamPlayOptions(); param.oldStreamName=oldStream(); param.streamName=newStream()
[code]....
I am using duel buffering and that is 3 seconds when video starts and 10 seconds when "NetStream.Buffer.Full". Video taking approximately 30-50 seconds to switch video and when I am calling the above code.
Hi,I'm trying to use NetStreamPlayTransitions.SWITCH to create a multi angle view that switches between video streams. The issue I'm having is that NetStream.Play.TransitionComplete is called only after the buffer for the video before it is used up(this makes sense when using SWITCH to go between bandwidths but that's not what i'm using it for). Is there a way to force this switch before the buffer of the previous video is used up?
I've looked into SWAP but I can't really find any documentation on it. What I ideally would have happen is the next video in the array is triggered, that video is buffered and when there is enough to play it the stream switches to that one. SWITCH works really nice because there is no jump in switching when it's played but I just don't want the buffer to play out before the switch.Is there a way of maybe clearing the buffer of the playing video before i call SWITCH so it transitions quickly?
Can Adobe Flash Media Streaming Server 3.5 run on AMD Athlon Dual Sock Quad Core?I just requested a Dell server to be added to our farm to run as a Media Server and to my surprise, while reading the requirements for FMS it states the following: 3.2GHz Intel® Pentium® 4 processor (dual Intel Xeon® or faster recommended)
I'm trying to troubleshoot a Flash Media Server working with a little video playback application I wrote a few years ago that has suddenly stopped working.I'm using CS3/Actionscript 3.My app uses the FLVPlayback Component, and was working well last time I checked. I recevied a report that the videos stopped working, and have been looking into it.I figured I'd add a bunch of event listeners to the FLVPlayback's ncMgr.netConnection so I could get debug info on things like io errors, net status, etc.The problem I'm running into is that the netConnection is null when I set it to anything on my Flash Media Server, and adding any event listeners to this netConnection throws errors.Here's what I've tried so far:
Playback of a local FLV file works fine.In the FLVPlayback documentation, I found an example and stole the URL of the stream they were using in the example, and that works fine, although it is an HTTP protocol stream rather than RTMP.Any attempt to access FLV files on my Media Server, which has worked fine in the past, basically cause the FLVPlayback object to sit and hang in "buffering" mode and never progresses beyond this point.The netConnection object in this case is null.Here's my code:[code]........
Again the purpose of this is to troubleshoot the video streaming from the Flash Media Server, and it seems like there is no netconnection to the server being created.Does this mean that the server is not working, or is there a problem with the way I'm trying to access the content on the server?This was all working fine before, and I have set up the server-side application .ASC files and such to allow things to work fine on the server end.
I'm trying to make a software which sends video and audio data to a flash media server by using RTMP protocol. Currently, my program can communicate with a flash media server correctly. RTMP specifications does not describe about the raw data in video/audio messages, so I muxed raw H.264 and AAC data into video/audio messages and sent to the server. The server seems to accept them, but a video player cannot playback the stream sending from the server. The player just says "Loading..." For a test purpose, I sniffed the network packets between Wirecast and the flash media server and ripped off only video and audio data. Then, I muxed those data into video/audio message and sent to the flash media server. In this case, the video player connected to the server can playback the stream correctly.
I checked the stream sent from Wirecast, the stream seems not to be H.264 raw data because those data are not started from 0x17 instead of H.264 start code. With those situation, I am wondering what kind of container format I should use for H.264/AAC data to the flash media server.
I have to a problem using the Flash Media Interactive Server Feature Explorer. I want use the sample: RecordStream. I can see the instance "RecordStream" in console FMS 3.5. and show me the video in app AIR, but does not save the .FLV in my server.
I have Flash Media Streaming Server 3.5 (not Interactive) running on RHEL5.5 x86_64 Linux.All is working well, however how do I prevent unauthorized access to connecting to the live stream and streaming content?How can I setup the server to require a user and password to stream live media to the server?I am new to this product and I have been reading some documentation but I have not found a clear cut answer on how to force a username and password to connect to the server to stream live content only.I am using the Adobe FMS Apache install, what files need changing?[code]I want to lock down a person from connecting to the server on the public internet and starting a live stream?Can this be done with a user name and password?
We purchased FMIS and we are encoding large 15+ hour MP4 recordings using flash media encoder. When opening these large files for playback, which have not been opened recently the player displays the loading indicator for up to 4 minutes! Once it has apparently been cached on the server it opens immediately from any browser even after clearing local browser cache. So a few questions for the experts
1. Why is it taking so long to load the file. Is it because the MP4 metadata is in the wrong format and the file is so huge? I read somewhere that Media Encoder records with incorrect MP4 metadata is that still the case?
2. Once its cached on the server, exactly how much of it is cached. Some of these files are larger than 500mb.
3. What fms settings do you suggest I change. FMIS is running on windows server R2 64 bit, but FMIS itself is 32 bit. We have not upgraded to the 64 bit version. We have 8GB of ram. Is it OK to set FMS cache to 3GB. And would that only have enough room for 3-4 large files, because we have hundreds of them.
I am using flash media server 4.5 for video streaming and genrate log files. In log file i have found the user publish point name in "x-sname" filed but this filed contains blank values in many events.This fileds contains value only in "PUBLISH,UN_PUBLISH,RECORD and PUBLISH_CONTONUE" event and other then these 4 events all events are not user related event.?I like to fetch the user bandwidth detials using these log files which user used how many bandwidth.I also like to know I can see serval files on flash log folder name "access.00.log,access001.log and admin.00.log,admin.001.log" Any one please explain what is the name convation for this filed how can i identifiy which files contains information for which date.?
I'm building a video conferencing applicaition for a portal. But now when considering which version of flash media server to buy, I run into some problem. So can anyone helps me about comparing this two versions: Flash Media Streaming Server and Flash Media Interactive server, like if I use Flash Media Streaming Server, some function like NetStream.pause() may not work or something like that? I'm not sure if this is a foolish question but please let me know.