Can We do SimulCast By Web Call Server 5

Hi,
Can We do SimulCast By Web Call Server 5 I mean to say when we publish Webrtc stream as RTMP to Facebook then can we publish the same stream to Youtube or Google +

Or can we send array of RTMP URLs and stream name or keys instead of single stream name and RTMP URL in session.createStream

Thanks,
Faraz
 

Max

Administrator
Staff member
Can We do SimulCast By Web Call Server 5 I mean to say when we publish Webrtc stream as RTMP to Facebook then can we publish the same stream to Youtube or Google +
You can use /push/startup REST API method to re-publish one stream to two or many targets.
Test
1. Publish a regular WebRTC stream without rtmpUrl paramerter.
For example using Two Way Streaming page:
https://wcs5-eu.flashphoner.com/demo2/two-way-streaming
2. Push the published stream to YouTube
Code:
/push/startup
{
"streamName":"stream1",
"rtmpUrl":"rtmp://youtube..."
}
3. Push the published stream to Facebook
Code:
/push/startup
{
"streamName":"stream1",
"rtmpUrl":"rtmp://facebook..."
}
etc

Here you can find article describing re-publishing to YouTube and Facebook simultaneously:
https://flashphoner.com/broadcast-video-stream-from-web-page-to-facebook-and-youtube-simultaneously
The /push/startup method is a part of REST API:
https://flashphoner.com/docs/wcs5/wcs_docs/html/en/wcs-rest-api
Or can we send array of RTMP URLs and stream name or keys instead of single stream name and RTMP URL in session.createStream
No, the bulk push is not currently supported.
You have to execute /push/startup several times if you want to push stream to several destinations.
 
Hi @Max
We have followed steps in https://flashphoner.com/broadcast-video-stream-from-web-page-to-facebook-and-youtube-simultaneously/ but its not working.
Its worked for Facebook with rest-api/push/startup call but when we call again rest-api/push/startup for YouTube its give exception to see exception click here


Can you please help us how we can fixed it.

Thanks,
Faraz

You can use /push/startup REST API method to re-publish one stream to two or many targets.
Test
1. Publish a regular WebRTC stream without rtmpUrl paramerter.
For example using Two Way Streaming page:
https://wcs5-eu.flashphoner.com/demo2/two-way-streaming
2. Push the published stream to YouTube
Code:
/push/startup
{
"streamName":"stream1",
"rtmpUrl":"rtmp://youtube..."
}
3. Push the published stream to Facebook
Code:
/push/startup
{
"streamName":"stream1",
"rtmpUrl":"rtmp://facebook..."
}
etc

Here you can find article describing re-publishing to YouTube and Facebook simultaneously:
https://flashphoner.com/broadcast-video-stream-from-web-page-to-facebook-and-youtube-simultaneously
The /push/startup method is a part of REST API:
https://flashphoner.com/docs/wcs5/wcs_docs/html/en/wcs-rest-api

No, the bulk push is not currently supported.
You have to execute /push/startup several times if you want to push stream to several destinations.
 

Max

Administrator
Staff member
Good day.
We've checked your report. Seems like your second /push/startup query uses wrong stream name. Let's compare two log strings:
1) /push/startup to Facebook:
Code:
12:55:57,232 INFO  ransponderController - HTTPS-pool-4-thread-377 handleRequest /rest-api/push/startup params:{streamName=2335558939896815..., rtmpUrl=rtmps://live-api-s.facebook.com:443/rtmp/, width=1280, height=720}
2) /push/startup to Youtube:
Code:
12:56:00,319 INFO  ransponderController - HTTPS-pool-4-thread-81 handleRequest /rest-api/push/startup params:{streamName=ksut-..., rtmpUrl=rtmp://a.rtmp.youtube.com/live2/, width=1280, height=720}
According to logs, you have published the stream named "2335558939896815...", so the second query fails cause the stream named "ksut-..." cannot be found.
In your case. you should do the following:
1) Set the option
Code:
rtmp_transponder_full_url=true
in flasphoner.properties file and restart WCS
2) Publish the stream named "stream1" for example
3) Republish the stream to Facebook passing full URL as rtmpUrl
Code:
/push/startup
{
  "streamName":"stream1",
  "rtmpUrl":"rtmps://live-api-s.facebook.com:443/rtmp/2335558939896815...",
  "width":"1280",
  "height:"720"
}
4) Republish the stream to Youtube passing full URL as rtmpUrl
Code:
/push/startup
{
  "streamName":"stream1",
  "rtmpUrl":"rtmp://a.rtmp.youtube.com/live2/ksut-...",
  "width":"1280",
  "height:"720"
}
 
Hi @Max,

Its worked but after 1 to 2 minutes live video interrupted on Facebook and YouTube and live video ends on Facebook due to interruption. We are using c4.2xlarge instance type on AWS.
I am sending updated e report again to support@flashphoner.com.

Thanks,
Faraz

Good day.
We've checked your report. Seems like your second /push/startup query uses wrong stream name. Let's compare two log strings:
1) /push/startup to Facebook:
Code:
12:55:57,232 INFO  ransponderController - HTTPS-pool-4-thread-377 handleRequest /rest-api/push/startup params:{streamName=2335558939896815..., rtmpUrl=rtmps://live-api-s.facebook.com:443/rtmp/, width=1280, height=720}
2) /push/startup to Youtube:
Code:
12:56:00,319 INFO  ransponderController - HTTPS-pool-4-thread-81 handleRequest /rest-api/push/startup params:{streamName=ksut-..., rtmpUrl=rtmp://a.rtmp.youtube.com/live2/, width=1280, height=720}
According to logs, you have published the stream named "2335558939896815...", so the second query fails cause the stream named "ksut-..." cannot be found.
In your case. you should do the following:
1) Set the option
Code:
rtmp_transponder_full_url=true
in flasphoner.properties file and restart WCS
2) Publish the stream named "stream1" for example
3) Republish the stream to Facebook passing full URL as rtmpUrl
Code:
/push/startup
{
  "streamName":"stream1",
  "rtmpUrl":"rtmps://live-api-s.facebook.com:443/rtmp/2335558939896815...",
  "width":"1280",
  "height:"720"
}
4) Republish the stream to Youtube passing full URL as rtmpUrl
Code:
/push/startup
{
  "streamName":"stream1",
  "rtmpUrl":"rtmp://a.rtmp.youtube.com/live2/ksut-...",
  "width":"1280",
  "height:"720"
}
 

Max

Administrator
Staff member
Good day.
In your case you should do the following:
1. In WCS_HOME/conf/flashphoner.properties:
- remove
Code:
rtmp_transponder_stream_name_prefix =
- add
Code:
rtmp_transponder_full_url =true
and restart WCS:
Code:
systemctl restart webcallserver
2. Update WCS:
- download the latest release build:
Code:
wget https://flashphoner.com/downloads/builds/WCS/5.2/FlashphonerWebCallServer-5.2.282.tar.gz
- unpack a tar.gz file:
Code:
tar xvfz FlashphonerWebCallServer-5.2.282.tar.gz
- and update:
Code:
 cd FlashphonerWebCallServer-5.2.282 && ./install.sh
 
Hi @Max,

We have updated WCS to latest version FlashphonerWebCallServer-5.2.284
Also make changes in config file after that its worked but after 35 minutes live video again interrupted and live video ends on Facebook.
I have send updated e report again to support@flashphoner.com.
Please check and reply.

Thanks,
Faraz

Good day.
In your case you should do the following:
1. In WCS_HOME/conf/flashphoner.properties:
- remove
Code:
rtmp_transponder_stream_name_prefix =
- add
Code:
rtmp_transponder_full_url =true
and restart WCS:
Code:
systemctl restart webcallserver
2. Update WCS:
- download the latest release build:
Code:
wget https://flashphoner.com/downloads/builds/WCS/5.2/FlashphonerWebCallServer-5.2.282.tar.gz
- unpack a tar.gz file:
Code:
tar xvfz FlashphonerWebCallServer-5.2.282.tar.gz
- and update:
Code:
 cd FlashphonerWebCallServer-5.2.282 && ./install.sh
 

Max

Administrator
Staff member
Good day.
According the logs you've sent, the connection was closed by other side (Youtube, then Facebook). It seems like some network problem occured. You can enable RTMP push automatic reconnect to handle this. Please do the following:
1. Please update to actual release build from this page (build 5.2.284 has been withdrawn)
2. Add the following setting to the file flashphoner.properties
Code:
rtmp_push_restore=true
Then if RTMP connection is closed due to some network problems, it will be restored automatically up to 3 times. You can change attempts number and reconnection interval if necessary by the following settings
Code:
rtmp_push_restore_attempts=3
rtmp_push_restore_interval_ms=5000
Also, in latest builds a special script was added to collect reports, you can use it if necessary. Please see this doc for details.
 
Top