Importance of Key Frame Interval in live streaming
What is the significance of Key frame interval in live streaming. In VOD I know that media players seeks between these keyframes but what is use of it in live streaming. Any effect on quality ?
Please help
-Prem
Sorry the recommendations didn't work. I tested two 1080p files – one 23.98 fps and a 29.97 fps – at those settings. No loss of sync whatsoever here.
So perhaps there is something about your source file that's a problem. Try another file and see.
On a different, but related topic, the MPEG4 encoding that Compressor 3.5 uses is kind of long in the tooth. You'll note in the user manual that all the discussion about features and settings seems to presume that the file will not be re-encoded. (Hence, my question about whether it was for your own Web Site.)
All the video services take whatever we upload and re-encode them to their proprietary specs. So generally it's best to upload as much info as possible. (David Brewer, who frequently contributes to these boards, uploads very large Pro Res files with good results.)
YT's advanced encoding guidelines recommend the MP4 container, but with the h.264 codec. That is the Part 10 MPEG standard, which Compressor 3.0 and 3.5 cannot do. (However, Compressor 4.0 can do that encode, which is one of benefits of having that version.)
FWIW, all videos that I prepare for the Web are h.264 .mov files (not mp4) and I've not had any quality issues with video or audio. Just personal preference.
Perhaps someone else will have some ideas why you lose sync other than sample rate and/or change in frame rate.
Good luck.
Russ
Similar Messages
-
How to store Live stream on the other Server
Hello Everyone,
This is very important for me to store all live streams in the archive server at F4V sormat.
to do that I record live stream in the F4V:
mystreams.publish('mp4:' + netstream.name + 'f4v');
mystream.recod();
This cods is work currently in the rootinstall directory's but I wan to store on the archive directory in other linux server.
1- I share the archive folder in the archive server.
2- Create folder on the AMS linux server in the applications/livepkgr/streams/_definst_/archive
3- mount archive folder to the archive folder in other server:
mount -t cifs -o administrator=root,password=myams //192.168.1.100/Archive /opt/adobe/ams/applications/livepkgr/streams/_definst_/Archive
So Archive Server is: 192.168.1.100/Archive.
Now I have problem to store live streams in the Archive server...!!!
When I start publish live events on the Flash Media Server, AMS is make video file with f4v format in the Archive server (ams have access to write in other server) But this file has 0kb. there is no capacity.
Please advise me to solve this problem.
Many Thanks.This seems like a good guide:
http://www.marcoach.nl/index.php/nl/tech-tips/55-os-x-mountain-lion-webmail.html
Lion Server (10.7) does still have webmail on board, although this is not the forum, this is. -
Problems when importing multiple files into key frames
I'm creating an interactive flash application that uses hundreds of individual renders from a 3d modelling app. The image file size is 800 x 600. Each sequence that i import to the stage is around 120 images and each gets put into a separate key frame. The problem is, often when I import batches of files into flash the program crashes and stops responding. The problem gets worse after each succesful import ie. after importing the first lot of files, its unlikely that the second lot of files will import.
Interestingly, I dont have this problem on my pc. So I can do all the importing on my pc, but when I try and compile the swf file my pc does not create a file and sometimes crashes. So I am having to import on my pc and compile the swf on my mac.
Anyone else having similar problems? is there a better way of going about this?flash is limited to 16,000 frames.
use several swfs and load them into a main swf. -
Import photos for slide show, in order, to key frames?
How can you import a folder of images straight into the timeline as a sequence of key frames for a slide show?
Steve,
in flash cs3:
make sure images are in a folder.
go to file.
select import.
select import to stage.
flash will display a message: File appears to be part of a sequence of images. Do you want to import all of the images in the sequence?
obviously you answer yes.
you shoud be good to go.
Braulio -
Remove last frame after live stream
Hi,
How can I remove/reset the last frame sent by a live streaming client? I'm using FMS 3.5.
It can be a server or client side solution. any ideas?
tks.Hi,
What do you mean by removing the last frame from live stream?
A live stream that is published to the server and there is a client which is subscribing to that live stream. And you dont want to send the last frame of the stream to the subscriber, is it? Or something else?
Regards,
Janaki L -
Audio Key Frames Scrambled On Import From P Pro
I'm importing three audio tracks from Premier Pro 5.5 into Audition, and each audio track may contain several dozen separate clips.
On some tracks I loose all my audio key frames, and the "rubber band" has snapped
to the bottom and the track has no output. On other tracks, I'm loosing about a third of the key frames, poof, gone. In some cases, the key frames have been moved around within the clip,
say I created a fade up at the beginning with two key frames, and after import the first key frame, at -00 db, has moved ahead five seconds, and the second key frame is
at the proper level, but also has been slid over five seconds. Other key frames randomly drop to -00 db from where they originally were.
In P Pro I adjust my audio automation by setting key frames and moving the "rubber band". I then export by Edit > Edit In Audition > Sequence and check the "Send
Clip Vloume Key Frames" box, and un-check the "Render Audio Clips Effects" box. In the P Pro timeline I have not seclected any individual clips or tracks, I don't
believe I need to.
A multitrack session opens in Audition, and my key frames are scrambled up.
Using Mac Pro with OS 10.6.8 , P Pro 5.5.2 and purchased the CS 5.5 Creative Suite last December
Thanks in advance for any help that may keep me from going nuts Tom/ MiamiThanks for the reply and I do apologize for some of the newbie questions, I downloaded MPEG StreamClip and attempted the convert.
I have to admit the following QT movie inspector details of my original video are below and play fine in QT but once I convert the video appears choppy at times almost as if clips are being dropped?
Is my default format simply not compatible?
If not then what would you recommend my settings be in MPEG Streamclip to export without any choppiness?
Again I do thank you for your help!!!! -
Flash player h264 live streaming dropping frames
Hi
For some reason i noticed Flash player h264 live streaming is dropping frames very rigorously when streaming to fms 3.5. There are no frames dropped on client camera end. Dropped frames correspond to NetStreamInfo. The output is thus very jerky. This happenbs no matter what settings i use (176 x 144 @10fps). CPU usage is well below 50%.
I noticied that if i stream the same to Red5 1.0 i do not get any frames dropped. The output is perfect as expected. Can some one please help out on this.Also i can confirm that the encoder used in FMLE and flash player 11.1 or above is not the same. The medium quality preset in FMLE uses "
Bandwidth 300kbps
Quality Dont know
fps 20
keyframeInterval 5sec
If i use the same settings in flash player 11.1 i get heavy framedrops and bad playback no matter what quality i use. So this confirms that both encoder are not the same as adobe claims.
On the other hand i sure would love to know why setting bandwidth to 0 creates a smooth stream without framedrops. I will request someone from adobe team to answer me here. -
Live stream to start with keyframe
Hi,
In a .3gp file, it always start streaming at the first frame (zero seconds in to the stream), so the player always received an I frame first and displays the video correctly from then on.
In a live stream on the Quicktime server it start streaming at current frame (eg. 13 seconds after the encoder has started), so the server sends 5 P frames to the client first then an I frame. The client would display a distorted image for 5 seconds until an I frame was received.
Is there any setting on the QuickTime server to always send I frames (key frames) first for a live stream?
QuickTime Streaming Server Software Version: 5.5.4 Mac OS X (10.0.x)Big thanks for your reply
Really helped me on my long understanding way to upgrade my live chat application to
work with IOS devices.
So lets continue... make this important post to be a good helper for all developers on their way to stream to IOS devices.
If you can I clarify this - Nitin Goel says:
"Remember, that you need to publish video as H264 codec and audio as AAC/HEAAC for it to work with ios player.. Flash player may not yet support this combination.."
It is not possible for me to use Flash Media Live Encoder.
In this article:
http://sonnati.wordpress.com/2011/05/14/a-dream-comes-true-h-264-encoding-into-flash-playe r-11/
it says:
"A dream comes true: H.264 encoding into Flash Player 11"
and its done by this actionscript 3 code:
var h264Settings:H264VideoStreamSettings = new H264VideoStreamSettings();
h264Settings.setProfileLevel(H264Profile.BASELINE, H264Level.LEVEL_2);
stream.videoStreamSettings = h264Settings;
which will be connected to the NetStream like this i guess:
var h264Settings:H264VideoStreamSettings = new H264VideoStreamSettings();
h264Settings.setProfileLevel(H264Profile.BASELINE, H264Level.LEVEL_2);
nc = new NetConnection();
nc.connect("rtmp://example.com/livepkgr");
ns = new NetStream(nc);
ns.videoStreamSettings = h264Settings;
ns.publish("livestream?adbe-live-event=liveevent");
Is this what need to be done in order to publish video as H264 from webcam and Flash Player 11 in user browser?
And what about publish audio as AAC/HEAAC?
Another important thing:
I am writing my actionscript 3 code in my flash CS4 and publish it to swf.
With this code obviously it give me error...
do i need to upgrade to CS5 or CS5.5 and then i will be able to publish with this code?
again big thanks for any help
cheinan -
Start/stop/restart live stream - do stream files need to be removed first?
When streaming a live event if something happens and we need to stop our encoder and then restart it again.
Do we need to delete the stream files created in the 'application/event/' directory and also delete the f4f stream,bootstrap, etc... files too?
If we don't delete the stream files before restarting the live stream. It will only play about 10 seconds of the stream then just hang buffering.
What is causing this?
My application log shows no access when I restarted the stream.
2013-09-04
09:02:21
3960
(s)2641173
onPublish : cfhsstream4
2013-09-04
09:02:21
3960
(s)2641173
Stream name is: cfhsstream4 and live event is: cfhs
2013-09-04
09:02:21
3960
(i)2611173
Event level recording configuration: General[flags: 3, keyframe interval: 60000, max size: -1, max length: -1, io buffer size: 0], Fragment[frag duration: 4000, seg duration: 0, duration precision: 0, allowed drift: 1000, frame rate: 0.000000, frames per interval: 0, intervals per frag: 1, frame precision: 1, disk management duration: 0.000000], ContentProtection[enabled=false(overridable)]
2013-09-04
09:02:21
3960
(s)2641173
f4f:cfhsstream4 - NetStream.Publish.Start
2013-09-04
09:02:21
3960
(s)2641173
f4f:cfhsstream4 - NetStream.Play.Reset
2013-09-04
09:02:21
3960
(s)2641173
f4f:cfhsstream4 - NetStream.Data.Start
2013-09-04
09:02:22
3960
(s)2641173
f4f:cfhsstream4 - NetStream.Record.Start
2013-09-04
09:02:23
3960
(s)2641173
f4f:cfhsstream4 - NetStream.Record.NoAccess
2013-09-04
09:02:23
3960
(s)2641173
f4f:cfhsstream4 - NetStream.Record.Stop
2013-09-04
09:02:23
3960
(s)2641173
f4f:cfhsstream4 - NetStream.Record.NoAccess
Thanks,
DaveI have a similar issue like Mr Dave explained. If need to stop, start, stop and restart again, the encoder is sending, but in player not shows nothing. Then we need to stop and disconnect in encoder, and remove the stream file in /event and the cache files in livestream folder for after then restart the streaming. Only after this action, the streaming works fine and the streaming shows again in player.
Have other way to solve this issue without need all that actions? Note that I use the Adobe FME to live streaming and encoding in HDS http streaming
I hope for a help
Thanks
Pedro
Message was edited by: asaweb2013 -
I-frame configuration in QT Streaming Server
Hi,
I have setup a hardware video capture card to capture the live video, and then relay the video output by using QuickTime streaming server in order to increase the available access capacity. However, I found that the QTSS cannot send the live video stream as a whole image when playback by QT player. Only part of the video image can be seen on the screen at startup, and the rest of screen area is seriously distorted. It takes around few seconds, depends on the i-frame rate, to completely restore the distorted area and properly playback the video. I suspected it is because QTSS doesn't send the i-frame as the first video frame when video playback begins.
Is there any setting on the QuickTime server to always send i-frames (key frames) first for a live stream, such that improve the output video quality? Thanks.Hi David,
I have had problems installing the plug in for .ogg files. Have you had any success? I am trying to play files from the Wikimedia commons.
Thanks, Mark -
HLS Live Streaming / LivePkgr issues
Greetings!
We just began using AMS for live streaming with HLS and we encouter some serious issues. Our first commercial live event is scheduled to next Wednesday and we cannot afford to lose our customer so your help is greatly appreciated.
We have two issues which are probably related :
When we start streaming all goes well for the first couple minutes but passed that point the stream gets less fluid. In the video player you can see a pause - dropped frames? - then the stream resumes fines. Then after say 30 seconds another pause and so on. If we stream for long enough the player finally goes black and the stream cannot be resumed.
We experience some random AMS service shutdown every other day or so. The server just stops streaming for an unkown reason. Please have a look at our edge log below. Looks like we have some recuring "bind failed" errors but I have no idea if they are related.
Again your help is greatly appreciated. On a side note we would be happy to purchase per-incident support from Adobe to solve the issue asap but it looks it's not available anymore. Anybody from the staff feel free to PM me about it.
Link : http://www.webtv.coop/group/Test-WebTV/f9b9c899885569fa901a787fcdb08568
User : test
Pass : test
Thanks a bunch,
Ph.
edge.00.log
#Version: 1.0
#Start-Date: 2014-07-25 00:02:45
#Software: Adobe Media Server 5.0.3 r3029 x64
#Date: 2014-07-25
#Fields: date time x-pid x-status x-ctx x-comment
2014-07-25 00:02:40 28648 (i)2581173 Host: videodb.webtv.coop IPv4: 10.2.2.8 -
2014-07-25 00:02:40 28648 (i)2631180 Info from AccessAdaptor: Access Adaptor started /opt/adobe/ams/modules/access/libconnect.so. -
2014-07-25 00:02:40 28648 (e)2631013 Failed to create listener for adaptor backup_defaultRoot_, IP localhost, port 19350: TCCommBridge::createListener 127.0.0.1:19350/v4: bind failed!!!. -
2014-07-25 00:02:40 28648 (e)2631013 Failed to create listener for adaptor backup_defaultRoot_, IP , port 1935: TCCommBridge::createListener 0.0.0.0:1935/v4: bind failed!!!. -
2014-07-25 00:02:40 28648 (e)2631114 Failed to start listeners for adaptor backup_defaultRoot__edge1. -
2014-07-25 00:02:40 28648 (e)2791225 Failed to start edge : backup_defaultRoot__edge1 -
#Date: 2014-07-25
#Fields: date time x-pid x-status x-ctx x-comment
2014-07-25 00:04:50 28847 (i)2581173 Host: videodb.webtv.coop IPv4: 10.2.2.8 -
2014-07-25 00:04:50 28847 (i)2631180 Info from AccessAdaptor: Access Adaptor started /opt/adobe/ams/modules/access/libconnect.so. -
2014-07-25 00:04:50 28847 (e)2631013 Failed to create listener for adaptor backup_defaultRoot_, IP localhost, port 19350: TCCommBridge::createListener 127.0.0.1:19350/v4: bind failed!!!. -
2014-07-25 00:04:50 28847 (e)2631013 Failed to create listener for adaptor backup_defaultRoot_, IP , port 1935: TCCommBridge::createListener 0.0.0.0:1935/v4: bind failed!!!. -
2014-07-25 00:04:50 28847 (e)2631114 Failed to start listeners for adaptor backup_defaultRoot__edge1. -
2014-07-25 00:04:50 28847 (e)2791225 Failed to start edge : backup_defaultRoot__edge1 -
#Date: 2014-07-25
#Fields: date time x-pid x-status x-ctx x-comment
2014-07-25 00:07:00 29817 (i)2581173 Host: videodb.webtv.coop IPv4: 10.2.2.8 -
2014-07-25 00:07:00 29817 (i)2631180 Info from AccessAdaptor: Access Adaptor started /opt/adobe/ams/modules/access/libconnect.so. -
2014-07-25 00:07:00 29817 (e)2631013 Failed to create listener for adaptor backup_defaultRoot_, IP localhost, port 19350: TCCommBridge::createListener 127.0.0.1:19350/v4: bind failed!!!. -
2014-07-25 00:07:00 29817 (e)2631013 Failed to create listener for adaptor backup_defaultRoot_, IP , port 1935: TCCommBridge::createListener 0.0.0.0:1935/v4: bind failed!!!. -
2014-07-25 00:07:00 29817 (e)2631114 Failed to start listeners for adaptor backup_defaultRoot__edge1. -
2014-07-25 00:07:00 29817 (e)2791225 Failed to start edge : backup_defaultRoot__edge1 -
#Date: 2014-07-25
#Fields: date time x-pid x-status x-ctx x-comment
2014-07-25 00:09:10 30014 (i)2581173 Host: videodb.webtv.coop IPv4: 10.2.2.8 -
2014-07-25 00:09:10 30014 (i)2631180 Info from AccessAdaptor: Access Adaptor started /opt/adobe/ams/modules/access/libconnect.so. -
2014-07-25 00:09:10 30014 (e)2631013 Failed to create listener for adaptor backup_defaultRoot_, IP localhost, port 19350: TCCommBridge::createListener 127.0.0.1:19350/v4: bind failed!!!. -
2014-07-25 00:09:10 30014 (e)2631013 Failed to create listener for adaptor backup_defaultRoot_, IP , port 1935: TCCommBridge::createListener 0.0.0.0:1935/v4: bind failed!!!. -
2014-07-25 00:09:10 30014 (e)2631114 Failed to start listeners for adaptor backup_defaultRoot__edge1. -
2014-07-25 00:09:10 30014 (e)2791225 Failed to start edge : backup_defaultRoot__edge1
core.00.log
#Version: 1.0
#Start-Date: 2014-07-25 09:56:08
#Software: Adobe Media Server 5.0.3 r3029 x64
#Date: 2014-07-25
#Fields: date time x-pid x-status x-ctx x-comment
2014-07-25 09:56:08 18327 (w)2581173 /opt/adobe/ams/applications/livepkgr/events/_definst_/canal91event/Event.xml does not exist or is invalid. -
master.00.log
#Version: 1.0
#Start-Date: 2014-07-25 00:00:33
#Software: Adobe Media Server 5.0.3 r3029 x64
#Date: 2014-07-25
#Fields: date time x-pid x-status x-ctx x-comment
2014-07-25 00:00:30 17555 (i)2581226 Edge (28097) is no longer active. -
2014-07-25 00:00:30 17555 (w)2581255 Edge (28097) backup_defaultRoot__edge1 experienced 1 failure[s]! -
2014-07-25 00:00:30 17555 (i)2581224 Edge (28338) started, arguments : -edgeports ":1935" -coreports "localhost:19350" -conf "/opt/adobe/ams/conf/Server.xml" -adaptor "backup_defaultRoot_" -$
2014-07-25 00:02:40 17555 (i)2581226 Edge (28338) is no longer active. -
2014-07-25 00:02:40 17555 (w)2581255 Edge (28338) backup_defaultRoot__edge1 experienced 1 failure[s]! -
2014-07-25 00:02:40 17555 (i)2581224 Edge (28648) started, arguments : -edgeports ":1935" -coreports "localhost:19350" -conf "/opt/adobe/ams/conf/Server.xml" -adaptor "backup_defaultRoot_" -$
2014-07-25 00:04:50 17555 (i)2581226 Edge (28648) is no longer active. -
2014-07-25 00:04:50 17555 (w)2581255 Edge (28648) backup_defaultRoot__edge1 experienced 1 failure[s]! -
2014-07-25 00:04:50 17555 (i)2581224 Edge (28847) started, arguments : -edgeports ":1935" -coreports "localhost:19350" -conf "/opt/adobe/ams/conf/Server.xml" -adaptor "backup_defaultRoot_" -$
2014-07-25 00:07:00 17555 (i)2581226 Edge (28847) is no longer active. -
ams.ini
# ams.ini contains substitution variables for Adobe Media Server #
# configuration files. Lines beginning with '#' are considered comments. #
# A substitution variable is in the form <name>=<value>. Everything up to #
# the first '=' is considered the name of the substitution variable, and #
# everything after the first '=' is considered the substitution value. If #
# you want a substitution variable to have leading or trailing spaces, #
# enclose the value around double quotes. For example, foo=" bar " #
# This section contains configurable parameters in Server.xml #
# Username for server admin
# For example:
# SERVER.ADMIN_USERNAME = foo
SERVER.ADMIN_USERNAME = admin
# IP address and port Adobe Media Admin Server should listen on
# For example:
# SERVER.ADMINSERVER_HOSTPORT = :1111
SERVER.ADMINSERVER_HOSTPORT = :1111
# User id in which to run the process (Linux Only)
# For example:
# SERVER.PROCESS_UID = 500
SERVER.PROCESS_UID = 500
# Group id in which to run the process (Linux Only)
# For example:
# SERVER.PROCESS_GID = 500
SERVER.PROCESS_GID = 500
# License key for Adobe Media Server
# For example:
# SERVER.LICENSEINFO = XXXX-XXXX-XXXX-XXXX-XXXX-XXXX
SERVER.LICENSEINFO = (license goes here)
# LIVE_DIR denotes the full path of sample "Live" application's
# folder for storing any live stream recorded by server.
# For example:
# LIVE_DIR = <AMS_Installation_Dir>\applications\live
LIVE_DIR = /opt/adobe/ams/applications/live
# VOD_COMMON_DIR denotes the full path of sample "VOD" application's
# folder for storing onDemand and Progressive Download .flv/.mp3 files.
# File stored in this folder can be streamed and are also PD-able.
# Note : If you are using the default installation of Apache as a webserver,
# and if you modify VOD_COMMON_DIR, please change the document root
# accordingly in httpd.conf.
# For example:
# VOD_COMMON_DIR = <AMS_Installation_Dir>\webroot\vod
VOD_COMMON_DIR = /opt/adobe/ams/webroot/vod
# VOD_DIR denotes the full path of sample "VOD" application's
# folder for storing onDemand only .flv/.mp3 files. Files stored in
# this folder are not PD-able
# For example:
# VOD_DIR = <AMS_Installation_Dir>\applications\vod\media
VOD_DIR = /opt/adobe/ams/applications/vod/media
# The maximum size of the FLV cache, in megabytes.
# The default is 500MB.
SERVER.FLVCACHE_MAXSIZE=500
# Whether to start and stop the included HTTP server along
# with AMS.
SERVER.HTTPD_ENABLED = true
# Whether to start and stop the cache cleaning tool along
# with HTTP server.
SERVER.HTCACHECLEAN_ENABLED = true
# The path specifying the cache root for webserver caching.
SERVER.HTCACHEROOT = /opt/adobe/ams/Apache2.2/cacheroot
# This section contains configurable parameters in Adaptor.xml #
# IP address and port(s) Adobe Media Server should listen on
# For example:
# ADAPTOR.HOSTPORT = :1935,80
ADAPTOR.HOSTPORT = :1935
# IP (address and) port that Adobe Media Server should proxy
# unknown HTTP requests to. Leave empty to disable proxying.
# With no address, specifies a localhost port.
# For example:
# HTTPPROXY.HOST = webfarm.example.com:80
HTTPPROXY.HOST = :8134
#This tag specifies an IP address for the player to use instead of a hostname when
#making the RTMPT connection to AMS. If nothing is specified, AMS will automatically
#determine the IP to use.
ADAPTOR.HTTPIDENT2 =
# This section contains configurable parameters in Vhost.xml #
# Application directory for the virtual host
# For example:
# VHOST.APPSDIR = C:\myapps
VHOST.APPSDIR = /opt/adobe/ams/applications
# This section contains configurable parameters in Application.xml #
# List of semi-colon delimited paths in which to search for script to load
# For example:
# APP.JS_SCRIPTLIBPATH = C:\scripts;C:\Program Files\Foo\scripts
APP.JS_SCRIPTLIBPATH = /opt/adobe/ams/scriptlib
# This section contains configurable parameters in Logger.xml #
LOGGER.LOGDIR =
# This section contains configurable parameters in Users.xml #
# Enable or disable using HTTP requests to execute admin commands.
# Set to "true" to enable, otherwise it will be disabled. The
# actual commands permitted for server admin and virtual host admin
# users can be set in Users.xml.
USERS.HTTPCOMMAND_ALLOW = trueHi again everyone.
Thanks Charles for offering a solution but unfortunately still not working. Please see details below.
Netstat while AMS running :
[root@videodb ams]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 22502/nrpe
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 19768/java
tcp 0 0 0.0.0.0:8134 0.0.0.0:* LISTEN 2309/httpd
tcp 0 0 127.0.0.1:11110 0.0.0.0:* LISTEN 29001/./amsadmin
tcp 0 0 0.0.0.0:806 0.0.0.0:* LISTEN 8256/rpc.statd
tcp 0 0 0.0.0.0:807 0.0.0.0:* LISTEN 27760/rpc.rquotad
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 8765/snmpd
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 19768/java
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 12980/mysqld
tcp 0 0 0.0.0.0:1935 0.0.0.0:* LISTEN 8690/amsedge
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 8123/portmap
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 19768/java
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2309/httpd
tcp 0 0 0.0.0.0:819 0.0.0.0:* LISTEN 27776/rpc.mountd
tcp 0 0 127.0.0.1:19350 0.0.0.0:* LISTEN 8690/amsedge
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 8790/sshd
tcp 0 0 0.0.0.0:1111 0.0.0.0:* LISTEN 29001/./amsadmin
tcp 0 0 0.0.0.0:49209 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 9323/master
udp 0 0 0.0.0.0:2049 0.0.0.0:* -
udp 0 0 10.2.2.8:1935 0.0.0.0:* 8690/amsedge
udp 0 0 127.0.0.1:1935 0.0.0.0:* 8690/amsedge
udp 0 0 0.0.0.0:57615 0.0.0.0:* -
udp 0 0 10.2.2.8:19350 0.0.0.0:* 8690/amsedge
udp 0 0 127.0.0.1:19350 0.0.0.0:* 8690/amsedge
udp 0 0 0.0.0.0:800 0.0.0.0:* 8256/rpc.statd
udp 0 0 0.0.0.0:161 0.0.0.0:* 8765/snmpd
udp 0 0 0.0.0.0:802 0.0.0.0:* 27760/rpc.rquotad
udp 0 0 0.0.0.0:803 0.0.0.0:* 8256/rpc.statd
udp 0 0 0.0.0.0:816 0.0.0.0:* 27776/rpc.mountd
udp 0 0 0.0.0.0:49875 0.0.0.0:* 10305/avahi-daemon
udp 0 0 0.0.0.0:5353 0.0.0.0:* 10305/avahi-daemon
udp 0 0 0.0.0.0:111 0.0.0.0:* 8123/portmap
udp 0 0 10.2.2.8:123 0.0.0.0:* 8824/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 8824/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 8824/ntpd
Stopping server :
[root@videodb ams]# ./server stop
NPTL 2.5
Stopping Adobe Media Server (please check /var/log/messages)
Server has shutdown...
Netstat after shutdown (ports 1935 and 19350 are free) :
[root@videodb ams]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 22502/nrpe
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 19768/java
tcp 0 0 127.0.0.1:11110 0.0.0.0:* LISTEN 29001/./amsadmin
tcp 0 0 0.0.0.0:806 0.0.0.0:* LISTEN 8256/rpc.statd
tcp 0 0 0.0.0.0:807 0.0.0.0:* LISTEN 27760/rpc.rquotad
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 8765/snmpd
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 19768/java
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 12980/mysqld
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 8123/portmap
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 19768/java
tcp 0 0 0.0.0.0:819 0.0.0.0:* LISTEN 27776/rpc.mountd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 8790/sshd
tcp 0 0 0.0.0.0:1111 0.0.0.0:* LISTEN 29001/./amsadmin
tcp 0 0 0.0.0.0:49209 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 9323/master
udp 0 0 0.0.0.0:2049 0.0.0.0:* -
udp 0 0 0.0.0.0:57615 0.0.0.0:* -
udp 0 0 0.0.0.0:800 0.0.0.0:* 8256/rpc.statd
udp 0 0 0.0.0.0:161 0.0.0.0:* 8765/snmpd
udp 0 0 0.0.0.0:802 0.0.0.0:* 27760/rpc.rquotad
udp 0 0 0.0.0.0:803 0.0.0.0:* 8256/rpc.statd
udp 0 0 0.0.0.0:816 0.0.0.0:* 27776/rpc.mountd
udp 0 0 0.0.0.0:49875 0.0.0.0:* 10305/avahi-daemon
udp 0 0 0.0.0.0:5353 0.0.0.0:* 10305/avahi-daemon
udp 0 0 0.0.0.0:111 0.0.0.0:* 8123/portmap
udp 0 0 10.2.2.8:123 0.0.0.0:* 8824/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 8824/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 8824/ntpd
Restart :
[root@videodb ams]# ./server start
NPTL 2.5
Starting Adobe Media Server (please check /var/log/messages)
Content of edge.00.log :
#Version: 1.0
#Start-Date: 2014-08-06 14:39:17
#Software: Adobe Media Server 5.0.3 r3029 x64
#Date: 2014-08-06
#Fields: date time x-pid x-status x-ctx x-comment
2014-08-06 14:39:12 15099 (i)2581173 Host: videodb.webtv.coop IPv4: 10.2.2.8 -
2014-08-06 14:39:12 15099 (i)2631180 Info from AccessAdaptor: Access Adaptor started /opt/adobe/ams/modules/access/libconnect.so. -
2014-08-06 14:39:12 15099 (i)2631174 Listener started ( backup_defaultRoot__edge1 ) : localhost:19350/v4 -
2014-08-06 14:39:13 15099 (i)2631174 Listener started ( backup_defaultRoot__edge1 ) : 1935/v4 -
2014-08-06 14:39:14 15099 (i)2631174 Listener started ( backup_defaultRoot__edge1 ) : 127.0.0.1:19350 (rtmfp-core)/v4 -
2014-08-06 14:39:14 15099 (i)2631174 Listener started ( backup_defaultRoot__edge1 ) : 10.2.2.8:19350 (rtmfp-core)/v4 -
2014-08-06 14:39:14 15099 (i)2631509 Public rtmfp-core addresses for listener backup_defaultRoot__edge1 are: 127.0.0.1:19350;10.2.2.8:19350 -
2014-08-06 14:39:14 15099 (i)2631174 Listener started ( backup_defaultRoot__edge1 ) : 127.0.0.1:1935 (rtmfp)/v4 -
2014-08-06 14:39:14 15099 (i)2631174 Listener started ( backup_defaultRoot__edge1 ) : 10.2.2.8:1935 (rtmfp)/v4 -
#Date: 2014-08-06
#Fields: date time x-pid x-status x-ctx x-comment
2014-08-06 14:39:12 15097 (i)2581173 Host: videodb.webtv.coop IPv4: 10.2.2.8 -
2014-08-06 14:39:12 15097 (i)2631180 Info from AccessAdaptor: Access Adaptor started /opt/adobe/ams/modules/access/libconnect.so. -
2014-08-06 14:39:12 15097 (e)2631013 Failed to create listener for adaptor _defaultRoot_, IP localhost, port 19350: TCCommBridge::createListener 127.0.0.1:19350/v4: bind failed!!!$
2014-08-06 14:39:12 15097 (e)2631013 Failed to create listener for adaptor _defaultRoot_, IP , port 1935: TCCommBridge::createListener 0.0.0.0:1935/v4: bind failed!!!. -
2014-08-06 14:39:12 15097 (e)2631114 Failed to start listeners for adaptor _defaultRoot__edge1. -
2014-08-06 14:39:12 15097 (e)2791225 Failed to start edge : _defaultRoot__edge1 -
#Date: 2014-08-06
#Fields: date time x-pid x-status x-ctx x-comment
2014-08-06 14:41:22 15903 (i)2581173 Host: videodb.webtv.coop IPv4: 10.2.2.8 -
2014-08-06 14:41:22 15903 (i)2631180 Info from AccessAdaptor: Access Adaptor started /opt/adobe/ams/modules/access/libconnect.so. -
2014-08-06 14:41:22 15903 (e)2631013 Failed to create listener for adaptor _defaultRoot_, IP localhost, port 19350: TCCommBridge::createListener 127.0.0.1:19350/v4: bind failed!!!$
2014-08-06 14:41:22 15903 (e)2631013 Failed to create listener for adaptor _defaultRoot_, IP , port 1935: TCCommBridge::createListener 0.0.0.0:1935/v4: bind failed!!!. -
2014-08-06 14:41:22 15903 (e)2631114 Failed to start listeners for adaptor _defaultRoot__edge1. -
2014-08-06 14:41:22 15903 (e)2791225 Failed to start edge : _defaultRoot__edge1
Content of var/log/messages :
Aug 6 14:39:11 videodb Service[15070]: Server starting...
Aug 6 14:39:12 videodb Server[15070]: /opt/adobe/ams/Apache2.2/bin/httpd -f ./conf/httpd.conf -d "/opt/adobe/ams/Apache2.2" -k start returned 0: [Wed Aug 06 14:39:11 2014] [info] mod_jithttp - AMS $
Aug 6 14:39:12 videodb Server[15070]: /opt/adobe/ams/Apache2.2/bin/htcacheclean -n -t -i -p/opt/adobe/ams/Apache2.2/cacheroot -d5 -l1024K returned 0:
Aug 6 14:39:12 videodb Adaptor[15097]: Failed to create listener for adaptor _defaultRoot_, IP localhost, port 19350: TCCommBridge::createListener 127.0.0.1:19350/v4: bind failed!!!.
Aug 6 14:39:12 videodb Adaptor[15099]: Listener started ( backup_defaultRoot__edge1 ) : localhost:19350/v4
Aug 6 14:39:12 videodb Adaptor[15097]: Failed to create listener for adaptor _defaultRoot_, IP , port 1935: TCCommBridge::createListener 0.0.0.0:1935/v4: bind failed!!!.
Aug 6 14:39:12 videodb Adaptor[15097]: Failed to start listeners for adaptor _defaultRoot__edge1.
Aug 6 14:39:12 videodb Edge[15097]: Failed to start edge : _defaultRoot__edge1
Aug 6 14:39:12 videodb Service[15070]: Server started (/opt/adobe/ams/conf/Server.xml).
Aug 6 14:39:13 videodb Adaptor[15099]: Listener started ( backup_defaultRoot__edge1 ) : 1935/v4
Aug 6 14:39:14 videodb Adaptor[15099]: Listener started ( backup_defaultRoot__edge1 ) : 127.0.0.1:19350 (rtmfp-core)/v4
Aug 6 14:39:14 videodb Adaptor[15099]: Listener started ( backup_defaultRoot__edge1 ) : 10.2.2.8:19350 (rtmfp-core)/v4
Aug 6 14:39:14 videodb Adaptor[15099]: Public rtmfp-core addresses for listener backup_defaultRoot__edge1 are: 127.0.0.1:19350;10.2.2.8:19350
Aug 6 14:39:14 videodb Adaptor[15099]: Listener started ( backup_defaultRoot__edge1 ) : 127.0.0.1:1935 (rtmfp)/v4
Aug 6 14:39:14 videodb Adaptor[15099]: Listener started ( backup_defaultRoot__edge1 ) : 10.2.2.8:1935 (rtmfp)/v4 -
Cannot get HLS Live streaming to work
I'm struggling to get things going on the HTTP live streaming side.
I'm using FMLE 3.2 w/ Flash Media Server 4.5.
Format: H.264
Frame Rate: 29.97
Bit Rate: 800Kpbs
Profile: Main
Leven: 3.1
Keyframe Frequency: 4 Seconds
I'm streaming to:
FMS URL: rtmp://hostname/livepkgr
STREAM: livestream?adbe-live-event=liveevent
I have verified the stream is working by connecting via flash to
rtmp://<HOST-NAME>/livepkgr
livestream?adbe-live-event=liveevent
I can't get the stream to play in iOs/Safari. I've been trying using the instructions via this doc (http://help.adobe.com/en_US/flashmediaserver/devguide/WSd391de4d9c7bd609-52e437a812a3725df a0-8000.html)
If I try to access the following file: http://<HOST-NAME>/hls-live/livepkgr/_definst_/liveevent/livestream.m3u8 I get FILE NOT FOUND.
Looking on the FMS machine under /opt/adobe/fms/applications/livepkgr/events/_definst_/liveevent is see no files other than Event.xml and Manifest.xml
So...it seems like no stream is being created in the livepkgr. What can I do to troubleshoot?#1 Fails (see below)
I get a 404 not found.
http://<HOST-NAME>/hls-live/livepkgr/_definst_/liveevent/Event.xml
http://<HOST-NAME>/hls-live/livepkgr/_definst_/liveevent/readme.html (test file I created)
Sounds like the hls-live alias isn't working? Off to check Apache. That alias is supposed to be set up by default isn't it?
#2
Here's my application.00.log from opt/adobe/fms/logs/_defaultVHost_\livepkgr\_definst_
#Version: 1.0
#Start-Date: 2011-12-02 12:01:32
#Software: Adobe Flash Media Server 4.5.0 r297 x64
#Date: 2011-12-02
#Fields: date time x-pid x-status x-ctx x-comment
2011-12-02 12:01:29 12262 (s)2641173 f4f:livestream - NetStream.Play.UnpublishNotify -
2011-12-02 12:01:29 12262 (s)2641173 onUnpublish : livestream -
2011-12-02 12:01:29 12262 (s)2641173 f4f:livestream - NetStream.Play.Stop -
2011-12-02 12:01:29 12262 (s)2641173 f4f:livestream - NetStream.Unpublish.Success -
2011-12-02 12:01:32 12262 (s)2641173 onPublish : livestream -
2011-12-02 12:01:32 12262 (s)2641173 Stream name is: livestream and live event is: liveevent -
2011-12-02 12:01:32 12262 (i)2611173 Event level recording configuration: General[flags: 3, keyframe interval: 60000, max size: -1, max length: -1, io buffer size: 0], Fragment[frag duration: 4000, seg duration: 400000, duration precision: 100, allowed drift: 1000, frame rate: 0.000000, frames per interval: 0, intervals per frag: 1, frame precision: 1, disk management duration: 3.000000], ContentProtection[enabled=false(overridable)] -
2011-12-02 12:01:32 12262 (s)2641173 f4f:livestream - record failed. -
2011-12-02 12:01:32 12262 (s)2641173 f4f:livestream - NetStream.Publish.Start -
2011-12-02 12:01:32 12262 (s)2641173 f4f:livestream - NetStream.Data.Start -
2011-12-02 12:01:32 12262 (s)2641173 f4f:livestream - NetStream.Play.Reset -
2011-12-02 12:01:32 12262 (s)2641173 f4f:livestream - NetStream.Record.NoAccess -
2011-12-02 13:23:31 12262 (s)2641173 f4f:livestream - NetStream.Play.UnpublishNotify -
2011-12-02 13:23:31 12262 (s)2641173 onUnpublish : livestream -
2011-12-02 13:23:31 12262 (s)2641173 f4f:livestream - NetStream.Play.Stop -
2011-12-02 13:23:31 12262 (s)2641173 f4f:livestream - NetStream.Unpublish.Success -
2011-12-02 13:23:40 12262 (s)2641173 onPublish : livestream -
2011-12-02 13:23:40 12262 (s)2641173 Stream name is: livestream and live event is: liveevent -
2011-12-02 13:23:40 12262 (i)2611173 Event level recording configuration: General[flags: 3, keyframe interval: 60000, max size: -1, max length: -1, io buffer size: 0], Fragment[frag duration: 4000, seg duration: 400000, duration precision: 100, allowed drift: 1000, frame rate: 0.000000, frames per interval: 0, intervals per frag: 1, frame precision: 1, disk management duration: 3.000000], ContentProtection[enabled=false(overridable)] -
2011-12-02 13:23:40 12262 (s)2641173 f4f:livestream - record failed. -
2011-12-02 13:23:40 12262 (s)2641173 f4f:livestream - NetStream.Publish.Start -
2011-12-02 13:23:40 12262 (s)2641173 f4f:livestream - NetStream.Play.Reset -
2011-12-02 13:23:40 12262 (s)2641173 f4f:livestream - NetStream.Data.Start -
2011-12-02 13:23:40 12262 (s)2641173 f4f:livestream - NetStream.Record.NoAccess -
~
#3
I get the following error in my core.00.log file in opt/adobe/fms/logs
Error from libf4f.so: Couldn't create directory for new record : /opt/adobe/fms/applications/livepkgr/streams/_definst_/livestream -
Live streaming stops automatically after 15 minutes
I am using flash media server 3 and flash media encoder 2.5.
From media encoder I am sending data to media server and then in
browser I am running flex application (version 3) to view the live
stream. I am not saving it in flv file. After 15 mintues live
streaming stops automatically. I have tested all events related to
it..but none of them executes..Flex3 application is just working as
a client.
Portion of code:
nc.connect ("rtmp://localhost/myLiveApp/instance1/");
vid.attachNetStream (ns);
ns.play("flv:mylivestream");
case "NetStream.Play.StreamNotFound" :
/*The FLV passed to the play() method can't be found. */
mx.controls.Alert.show("stream not found");
break;
code in main.asc file :
application.onAppStart = function()
// generate random payload used in bw detection
this.payload = new Array();
for (var i=0; i<1200; i++){
this.payload
= Math.random(); //16K approx
application.onConnect = function(p_client, p_autoSenseBW)
//Add security here
//p_client.writeAccess = ""; // prevents creating shared
object or live streams.
this.acceptConnection(p_client);
p_client.audioSampleAccess = "/";
p_client.videoSampleAccess = "/";
if (p_autoSenseBW)
this.calculateClientBw(p_client);
else
p_client.call("onBWDone");
Client.prototype.getStreamLength = function(p_streamName) {
return Stream.length(p_streamName);
Client.prototype.checkBandwidth = function() {
application.calculateClientBw(this);
application.calculateClientBw = function(p_client)
var res = new Object();
res.latency = 0;
res.cumLatency = 1;
res.bwTime = 0;
res.count = 0;
res.sent = 0;
res.client = p_client;
var stats = p_client.getStats();
var now = (new Date()).getTime()/1;
res.pakSent = new Array();
res.pakRecv = new Array();
res.beginningValues = {b_down:stats.bytes_out,
b_up:stats.bytes_in, time:now};
res.onResult = function(p_val) {
var now = (new Date()).getTime()/1;
this.pakRecv[this.count] = now;
trace("** onResult this.count = " + this.count + " :
this.sent " + this.sent);
//trace( "Packet interval = " + (this.pakRecv[this.count] -
this.pakSent[this.count])*1 );
this.count++;
var timePassed = (now - this.beginningValues.time);
if (this.count == 1) {
this.latency = Math.min(timePassed, 800);
this.latency = Math.max(this.latency, 10);
//trace("count = " + this.count + ", sent = " + this.sent +
", timePassed = " + timePassed);
// If we have a hi-speed network with low latency send more
to determine
// better bandwidth numbers, send no more than 6 packets
if ( this.count == 2 && (timePassed<2000))
this.pakSent[res.sent++] = now;
this.cumLatency++;
this.client.call("onBWCheck", res, application.payload);
else if ( this.sent == this.count )
// See if we need to normalize latency
if ( this.latency >= 100 )
{ // make sure we detect sattelite and modem correctly
if ( this.pakRecv[1] - this.pakRecv[0] > 1000 )
this.latency = 100;
// Got back responses for all the packets compute the
bandwidth.
var stats = this.client.getStats();
var deltaDown = (stats.bytes_out -
this.beginningValues.b_down)*8/1000;
var deltaTime = ((now - this.beginningValues.time) -
(this.latency * this.cumLatency) )/1000;
if ( deltaTime <= 0 )
deltaTime = (now - this.beginningValues.time)/1000;
var kbitDown = Math.round(deltaDown/deltaTime);
trace("onBWDone: kbitDown = " + kbitDown + ", deltaDown= " +
deltaDown + ", deltaTime = " + deltaTime + ", latency = " +
this.latency + "KBytes " + (stats.bytes_out -
this.beginningValues.b_down)/1024) ;
this.client.call("onBWDone", null, kbitDown, deltaDown,
deltaTime, this.latency );
res.pakSent[res.sent++] = now;
p_client.call("onBWCheck", res, "");
res.pakSent[res.sent++] = now;
p_client.call("onBWCheck", res, application.payload);
What is the problem? From media server console I can see 2
connection for 15 minutes and after that it drops to 1.
I have tested it with medium and low bandwith.
Any help is appreciated.Please read this whole message before doing anything.
This procedure is a diagnostic test. It’s unlikely to solve your problem. Don’t be disappointed when you find that nothing has changed after you complete it.
The purpose of the test is to determine whether the problem is caused by third-party software that loads automatically at startup or login, by a peripheral device, by a font conflict, or by corruption of the file system or of certain system caches.
Disconnect all wired peripherals except those needed for the test, and remove all aftermarket expansion cards, if applicable. Start up in safe mode and log in to the account with the problem. You must hold down the shift key twice: once when you turn on the computer, and again when you log in.
Note: If FileVault is enabled in OS X 10.9 or earlier, or if a firmware password is set, or if the startup volume is a software RAID, you can’t do this. Ask for further instructions.
Safe mode is much slower to start up and run than normal, with limited graphics performance, and some things won’t work at all, including sound output and Wi-Fi on certain models. The next normal startup may also be somewhat slow.
The login screen appears even if you usually login automatically. You must know your login password in order to log in. If you’ve forgotten the password, you will need to reset it before you begin.
Test while in safe mode. Same problem?
After testing, restart as usual (not in safe mode) and verify that you still have the problem. Post the results of the test. -
Running a live stream from an XML playlist
I have just successfully installed Adobe FMS on my server.
I would now like to know how to program a script to run a continuous live stream, of MP4 videos, from an XML playlist.
Can anyone tell me how to do this? ...or provide me a good tutorial? (I am a complete newbie to ActionScript.)
Thanks in advance...application.allowDebug = true;
application.onAppStart = function(){
this.userID =0;
this.playObj = new Object();
this.timObj = new Object();
this.passCli = new Object();
this.couObj = new Object();
this.couObj.count = 1;
application.so0 = SharedObject.get("so",false);
this.dates = new Object;
this.dates.dat0 = new Date().valueOf()+"a";
this.dates.dat1 = new Date().valueOf()+"b";
this.dates.dat2 = new Date().valueOf()+"c";
this.dates.dat3 = new Date().valueOf()+"d";
this.myStream = new Object;
this.myStream.st = Stream.get (this.dates.dat0.toString());
this.myStream.st1 = Stream.get (this.dates.dat1.toString());
this.myStream.st2 = Stream.get (this.dates.dat2.toString());
this.myStream.st3 = Stream.get (this.dates.dat3.toString());
this.int0
this.int1
this.int2
this.int3
this.int4
this.lock0=0;
this.lock1=0;
this.lock2=0;
this.lock3=0;
this.lock4=0;
listen();
function listen(){
clearInterval(application.int3);
application.int0 = setInterval(time,1000,application.myStream.st);
application.myStream.st.onStatus = function(info){
if(info.code == "NetStream.Play.Stop"&&application.lock0==0){
trace("code0"+info.code);
clearInterval(application.int0);
application.timObj.tim = 0;
application.int1 = setInterval(time,1000,application.myStream.st1);
application.couObj.count = 2;
playcurr(application.passCli.cli);
switchStream(application.so0);
listen1(application.myStream.st1);
application.lock0=1;
function listen1(mystreamst1){
mystreamst1.onStatus = function(info){
if(info.code == "NetStream.Play.Stop"&&application.lock1==0){
trace("code1"+info.code);
mystreamst1 = null;
clearInterval(application.int1);
application.timObj.tim = 0;
application.int2 = setInterval(time,1000,application.myStream.st2);
application.couObj.count = 3;
playcurr(application.passCli.cli);
switchStream(application.so0);
listen2(application.myStream.st2);
application.lock1=1
function listen2 (mystream2){
mystream2.onStatus = function(info){
trace("code2"+info.code);
if(info.code == "NetStream.Play.Stop"&&application.lock2==0){
clearInterval(application.int2);
application.mystream2 = null;
application.timObj.tim = 0;
//application.int3 = setInterval(time,1000,application.myStream.st3);
application.couObj.count = 4;
playcurr(application.passCli.cli);
switchStream(application.so0);
application.lock2=1;
listen3(application.myStream.st3);
function listen3(mystream3){
mystream3.onStatus = function(info){
trace("code3"+info.code);
if(info.code == "NetStream.Play.Stop"&&application.lock3==0){
trace("yes yes yes yes yes yes");
clearInterval(application.int3);
application.couObj.count = 1;
mystream3 = null;
application.timObj.tim = 0;
//application.int4 = setInterval(time,1000,application.myStream.st);
playcurr(application.passCli.cli);
switchStream(application.so0);
application.lock0=0;
application.lock1=0;
application.lock2=0;
application.lock3=0;
application.dates.dat0 = new Date().valueOf()+"e";
application.dates.dat1 = new Date().valueOf()+"f";
application.dates.dat2 = new Date().valueOf()+"g";
application.dates.dat3 = new Date().valueOf()+"h";
application.myStream.st = Stream.get (application.dates.dat0.toString());
application.myStream.st1 = Stream.get (application.dates.dat1.toString());
application.myStream.st2 = Stream.get (application.dates.dat2.toString());
application.myStream.st3 = Stream.get (application.dates.dat3.toString());
application.myStream.st.play(application.playObj.vid[0],0,-1,0);
application.myStream.st1.play(application.playObj.vid[1],0,-1,0);
application.myStream.st2.play(application.playObj.vid[2],0,-1,0);
application.myStream.st3.play(application.playObj.vid[3],0,-1,0);
listen();
///here next
application.onConnect = function(client){
application.acceptConnection(client);
application.passCli.cli = client;
client.call("setUserID",null,this.userID);
this.userID++;
if(application.clients.length == 1 ){
videoArray = new Array();
var playlist = new XML();
playlist.ignoreWhite = true;
//parse xml play list for individual elements
playlist.onLoad = function( success ) {
if(playlist.loaded == true) {
if (playlist.firstChild.hasChildNodes()) {
for (var aNode = playlist.firstChild.firstChild; aNode != null; aNode=aNode.nextSibling) {
if (aNode.nodeType == 1) {
//create array from parsed xml elements.
videoArray[aNode.attributes.id] = aNode.attributes.name ;
//pass array out of onload function
application.playObj.vid = videoArray;
application.myStream.st.play(application.playObj.vid[0],0,-1,0);
application.myStream.st1.play(application.playObj.vid[1],0,-1,0);
application.myStream.st2.play(application.playObj.vid[2],0,-1,0);
application.myStream.st3.play(application.playObj.vid[3],0,-1,0);
pass0(videoArray);
//play first video on playlist
playlist.load("http://www.privatechatnow.com/fmsuser/playlist.xml");
}//end onetime if statement
function pass0(videoArray){
//receive array
//play intial video
if(application.clients.length == 1){
// application.playObj.vid=videoArray;
playcurr(application.passCli.cli);
for (var key in application.playObj){
trace(key + ": " + application.playObj[key]);
//put currently playing videio into object
//isolate playlist switching loop for each connected client
//listen to currently playing stream with onStatus
//change to next video in playlist
//use onStatus and current duration and seek to scrub to cuurently playin video each time a user connects.
//continue untill playlist is played then loop back to first video in playlist.
//onConnect play currently playing video
if (application.clients.length >1){
playcurr(application.passCli.cli);
//message client with currently play flv
//message client when flv changes
//message client with metadata
application.onPublish = function(clientObject, streamObject){
trace("Stream name :: "+streamObject.name);
function switchStream(so0){
if(application.couObj.count == 1){
clength = application.timObj.tim-3;
currlen = application.playObj.vid[0].length;
nextlen = application.playObj.vid[1].length;
so0.send("playSecond",application.playObj.vid[0],clength,currlen,nextlen);
if(application.couObj.count == 2){
clength = application.timObj.tim-3;
currlen = application.playObj.vid[1].length;
nextlen = application.playObj.vid[2].length;
so0.send("playSecond",application.playObj.vid[1],clength,currlen,nextlen);
if(application.couObj.count == 3){
clength = application.timObj.tim-3;
currlen = application.playObj.vid[2].length;
nextlen = application.playObj.vid[3].length;
so0.send("playSecond",application.playObj.vid[2],clength,currlen,nextlen);
if(application.couObj.count == 4){
clength = application.timObj.tim-3;
currlen = application.playObj.vid[3].length;
nextlen = application.playObj.vid[0].length;
so0.send("playSecond",application.playObj.vid[3],clength,currlen,nextlen);
function playcurr(client){
trace("count = "+application.couObj.count.toString());
if(application.couObj.count ==1){
clength = application.timObj.tim-3;
currlen = application.playObj.vid[0].length;
nextlen = application.playObj.vid[1].length;
client.call("playZero",null,application.playObj.vid[0],clength,currlen,nextlen);
if(application.couObj.count ==2){
clength = application.timObj.tim-3;
currlen = application.playObj.vid[1].length;
nextlen = application.playObj.vid[2].length;
client.call("playZero",null,application.playObj.vid[1],clength,currlen,nextlen);
if(application.couObj.count ==3){
clength = application.timObj.tim-3;
currlen = application.playObj.vid[2].length;
nextlen = application.playObj.vid[3].length;
client.call("playZero",null,application.playObj.vid[2],clength,currlen,nextlen);
if(application.couObj.count ==4){
clength = application.timObj.tim-3;
currlen = application.playObj.vid[3].length;
nextlen = application.playObj.vid[0].length;
client.call("playZero",null,application.playObj.vid[3],clength,currlen,nextlen);
application.onDisconnect = function(oldclient){
if(application.clients.length ==0){
this.userID--;
function time(myStream){
application.timObj.tim = myStream.time; -
How to play live streaming in windows phone 8.1 silverlight app?
Hi,
I am developing a windows phone 8.1 silverlight app. In my I want to show live streaming youtube channel , I think it is not possible,
Actually that youtube channel is a television channel , I want to stream that live tv in my app.(I tried to load youtube channel in webbrowser in iframe tag but it is not opening)
Anybody help me how to play live tv or live streaming in my app,
Thanks..
Suresh.MHello,
You will likely need to write a custom
MediaStreamSource that can access the media stream and parse it. Windows Phone supports h.264 natively and as long as the site serves up a media stream that contains h.264 frames you can parse it and have our built in decoder decode and display it. You
will need to have intimate knowledge of the streaming protocol used by the website that you are trying to play. You must also make sure that the website is not using protected content. IANAL so I would recommend that you have your local law professional
(lawyer) review the licensing of the website that you are attempting to connect to and stream from before continuing your development. Your lawyer can make sure make sure their licensing allows you to do this.
I hope this helps,
James
Windows SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/
Maybe you are looking for
-
Hi All, We are working on ERP 6.0. Recently Basis team has been asked to activate the table changes logs in Production system. Accordingly we activated the rec/client parameter for Production system client. We are also required to click the
-
Hi guys. As you probably know ive had gaming issues. I've just been on bt track a fault and it seems that yesterday 5/5/13@9:13am they updated this by highlighting the bt retail servers with multiple faults. What does this mean precisely? Finally the
-
I'm not able to download Oracle V9.2.0.1(HP-Unix) as I'm getting the following error message. "The gateway could not receive a timely response from the Web site you are trying to access. This might indicate that the network is congested, or that the
-
HT3053 My MacBook Pro 2012 won't turn on not invent the charger
My MacBook doesn't turn on
-
How do you capture the export button click event?
<p>Hi, is this possible in VC++? Thanks.</p><p>Billy</p>