Locked
1
Reply
1
0
Server to Server Justin TV

/t5/media-server-discussions/server-to-server-justin-tv/td-p/842017
Feb 26, 2009
Feb 26, 2009
Copy link to clipboard
Copied
I have been battling this for awhile, not getting very far
and not much help out there in the forums.
I am trying to stream video from Flash Media Live Encoder 3.0 (locally) to Flash Media Development Server (FMDS) 3.5 (locally on same machine) and then from there (FMDS 3.5 local) to my Justin TV channel. I have used FME 3.5 and 3.0 for this without a problem, but want to move to FMDS 3.5
This appears to be a supported scenerio as outlined on page 69 "Publishing from server to server" in the "Flashmediaserver 3.5 dev guide pdf" that is provided with FMDS 3.5
From my observations, the FME to FMDS stream does work, and I can view it in the web player app provided by FMDS 3.5
When FME connects to FMDS it fires the main asc and based on trace messages it gets so far in the process of connecting and publishing to Justin TV and no farther.
When one uses FME to connect to JTV, they provide an xml file to load in FME, and this file has the FMS URL and STREAM name that must be used for connection.
In FME locally I have made the FMS url that of the local FMDS server plus the app name rtmp://localhost/live_4270649_12345
the app name is the Justin TV secret stream name provided in the JTV XML file <the one above is fake for security reasons>
In FME the stream name is also the app name which is also the Justin TV secret name live_4270649_12345
Again, when FME fires to FMDS 3.5 the correct app, live_4270649_12345, is firing and the traces for mystream.name also reflect this name for both app and stream.
Below is the content of the main.asc file which does fire when FME is STARTED
-------------------------------------------------
application.onAppStart = function (){
application.allowDebug="true";
}
application.onPublish = function(client, myStream) {
trace("STEP 1 " + myStream.name + " is now publishing into application " + application.name);
if (application.name == "live_4270649_12345/_definst_"){
trace("STEP 2 - Republishing the stream to JTV");
nc = new NetConnection();
nc.connect("rtmp://live.justin.tv/app");
nc.onStatus = function (info) {
trace("STEP 3 " + myStream.name + " - nc code: "+info.code);
if (info.code == "NetConnection.Connect.Success") {
ns = new NetStream(nc);
ns.onStatus = function(info) {
trace("STEP 4 A - Stream Status: " + info.code);
if (info.code == "NetStream.Publish.Start") {
trace("STEP 4 B - The stream is now publishing");
}
}
ns.setBufferTime(2);
ns.attach(myStream);
ns.publish( myStream.name, "live" );
}
}
}
}
Client.prototype.releaseStream = function(){
trace("An FME client just called release stream");
}
Client.prototype.FCUnpublish = function(){
trace("An FME client just called FC UnPublish");
}
Client.prototype.FCPublish = function(){
trace("An FME client just called FC Publish");
}
--------------------------------------
Here is the trace output from FMDS when FME is started and then left to run several minutes
--------------------------------------
An FME client just called release stream
An FME client just called FC Publish
STEP 1 live_4270649_12345 is now publishing into application live_4270649_12345/_definst_
STEP 2 - Republishing the stream to JTV
STEP 3 live_4270649_12345 - nc code: NetConnection.Connect.Success
STEP 3 live_4270649_12345 - nc code: NetConnection.Connect.Closed
An FME client just called FC UnPublish
--------------------------------------
I never see any trace messages (STEP 4) related to the NS process, I only get as far as step 3
ANy help is appreciated.
Thanks
I am trying to stream video from Flash Media Live Encoder 3.0 (locally) to Flash Media Development Server (FMDS) 3.5 (locally on same machine) and then from there (FMDS 3.5 local) to my Justin TV channel. I have used FME 3.5 and 3.0 for this without a problem, but want to move to FMDS 3.5
This appears to be a supported scenerio as outlined on page 69 "Publishing from server to server" in the "Flashmediaserver 3.5 dev guide pdf" that is provided with FMDS 3.5
From my observations, the FME to FMDS stream does work, and I can view it in the web player app provided by FMDS 3.5
When FME connects to FMDS it fires the main asc and based on trace messages it gets so far in the process of connecting and publishing to Justin TV and no farther.
When one uses FME to connect to JTV, they provide an xml file to load in FME, and this file has the FMS URL and STREAM name that must be used for connection.
In FME locally I have made the FMS url that of the local FMDS server plus the app name rtmp://localhost/live_4270649_12345
the app name is the Justin TV secret stream name provided in the JTV XML file <the one above is fake for security reasons>
In FME the stream name is also the app name which is also the Justin TV secret name live_4270649_12345
Again, when FME fires to FMDS 3.5 the correct app, live_4270649_12345, is firing and the traces for mystream.name also reflect this name for both app and stream.
Below is the content of the main.asc file which does fire when FME is STARTED
-------------------------------------------------
application.onAppStart = function (){
application.allowDebug="true";
}
application.onPublish = function(client, myStream) {
trace("STEP 1 " + myStream.name + " is now publishing into application " + application.name);
if (application.name == "live_4270649_12345/_definst_"){
trace("STEP 2 - Republishing the stream to JTV");
nc = new NetConnection();
nc.connect("rtmp://live.justin.tv/app");
nc.onStatus = function (info) {
trace("STEP 3 " + myStream.name + " - nc code: "+info.code);
if (info.code == "NetConnection.Connect.Success") {
ns = new NetStream(nc);
ns.onStatus = function(info) {
trace("STEP 4 A - Stream Status: " + info.code);
if (info.code == "NetStream.Publish.Start") {
trace("STEP 4 B - The stream is now publishing");
}
}
ns.setBufferTime(2);
ns.attach(myStream);
ns.publish( myStream.name, "live" );
}
}
}
}
Client.prototype.releaseStream = function(){
trace("An FME client just called release stream");
}
Client.prototype.FCUnpublish = function(){
trace("An FME client just called FC UnPublish");
}
Client.prototype.FCPublish = function(){
trace("An FME client just called FC Publish");
}
--------------------------------------
Here is the trace output from FMDS when FME is started and then left to run several minutes
--------------------------------------
An FME client just called release stream
An FME client just called FC Publish
STEP 1 live_4270649_12345 is now publishing into application live_4270649_12345/_definst_
STEP 2 - Republishing the stream to JTV
STEP 3 live_4270649_12345 - nc code: NetConnection.Connect.Success
STEP 3 live_4270649_12345 - nc code: NetConnection.Connect.Closed
An FME client just called FC UnPublish
--------------------------------------
I never see any trace messages (STEP 4) related to the NS process, I only get as far as step 3
ANy help is appreciated.
Thanks
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting.
Learn more
Participant
,
LATEST
/t5/media-server-discussions/server-to-server-justin-tv/m-p/842018#M6922
Mar 03, 2009
Mar 03, 2009
Copy link to clipboard
Copied
One thing I notice is that you're not holding a reference to
the server-side NetStream after it has been created. It's possible
that it might get gc'd. Same for the NetConnection. Might want to
keep a ref to those things and retry just to be safe. Maybe stick
them as properties of the application object.
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting.
Learn more
