Stream recording

Max

Administrator
Staff member
Unfortunately stream recording is not supported in WCS4.
However there is basic audio call recording support for Flash calls.
How to test:

0. Create folder /tmp/my-flash-audio-calls
1. Set setting in the server-side conf/flashphoner.properties:
Code:
record=/tmp/my-flash-audio-calls
2. Restart WCS.
Make an audio call from IE to IE.
Your call will be recorded to the specified folder.

For Chrome and other WebRTC browsers you will have to force Flash instead of WebRTC to get recording:
In the client-side examples/flashphoner.xml
Code:
<force_media_provider>Flash</force_media_provider>
So you can test with Chrome-to-Chrome or FF-to-FF.

Another workaround is RTSP.
WCS4 can share WebRTC stream as an RTSP. Therefore any server supporting RTSP can fetch and record the WebRTC stream.
To enable RTSP, you will have to set
Code:
rtsp_server_enabled=true
in server-side conf/server.properties
Then you will able to fetch this RTSP stream by WebRTC stream ID.
Example: rtsp://your-wcs4-host.com/RYgY0y5DjDKBgZMr6EWp
where RYgY0y5DjDKBgZMr6EWp is ID of published WebRTC stream.
webrtc-chrome_wcs4_rtsp_video_recording.jpg


These settings are valid for latest version WCS4:
620-1153
 
Last edited:
Is there a way to redirect the RTSP stream to another server like RTMP server to re-stream to it?
I need to get the RTSP id and redirect to a RTMP application like rtmp://rtmp-server:1935/application/stream-id
 

Max

Administrator
Staff member
Previously described scheme is exactly what you need.
For example you fetch an RTSP/RTP stream from WCS4 server by Wowza Media Server and deliver this stream from Wowza as RTMP.

Wowza connection and playback URL will look like:
rtmp://your/wowza_host/live
rtsp://your-wcs4host/xyz
where xyz is WebRTC stream ID.

Here is Wowza-WebRTC integration thread.
 
I am planning to do the same sort of scheme where you forward the stream to Wowza for recording and streaming. I am trying to get this up and running with your streaming demo but it doesn't seem to be currently working. So I checked out your examples and got the "Streaming" example up and running, which is working for regular WebRTC communication. I've tried two things I've read on other forums..
  • Forming a RTSP URL from the stream id e.g. rtsp://clientServer/kPyh72wYViAqOHfQJ33fMRkubvLZLL where the id was taken from the stream link in the example
  • Grabbing the mediaSessionId and directly contacting the server rtsp://wcs4host:554/{mediaSessionId}
Both of these methods don't work in VLC or Wowza however, and I am not sure if there is anything else I must do client side to get streaming like this working. Anything you recommend?
 

Max

Administrator
Staff member
It works for me with the latest builds.
Make sure
Code:
rtsp_server_enabled=true
in server.properties config

I'm able to play stream via VLC: rtsp://192.168.1.5:554/may6OY2dWeXc5HDeQs41J0r1Ln2mIx
where 192.168.1.5 - IP address of WCS4 server
 

Max

Administrator
Staff member
By the way, we added basic WebRTC stream recording feature:
Code:
record_webrtc_streams=true
in flashphoner.properties config to get this working.
WCS will record video to WCS_HOME/records directory in WebM container.
Currently recording conains video only. We are going to add audio soon.
 
Hello Max,

HELP PLEASE!

We downloaded the new FlashPhoner and API version again and tested it again two more times to make sure that we had no errors on our side and for sure the audio delay is as it was before. You had mentioned ("From our tests audio and video in VLC is synchronized") that you had tested it and it was now synchronized, do you have any idea as to what could be wrong because the audio delay persists?

Thank you for your Helping us with this,

Thanks,
Howard
 

Max

Administrator
Staff member
Howard,
We have tested latest available build
Client 664.1280
Server 1290
You can download it here: http://flashphoner.com/wcs4#downloads

Testing environment:
Windows 8.1, VLC, WCS4, Chrome 43 as a WebRTC stream publisher, Centos 6.5 x86_64 1 core CPU 1 Gb RAM as a server for WCS4.

Testing results:
Please checkout this video. It looks in sync.
 
Max,


We have tested latest available build
Client we tested was 664.1280
Server was 1294 (latest was 1294, not 1290 as indicated in your post)

We Download the links here:
http://flashphoner.com/downloads/builds/WCS/4.0/x8664/wcs4_opus/FlashphonerWebCallServer-4.0.1294.tar.gz

http://flashphoner.com/downloads/builds/flashphoner_client/wcs_api/WCS-JavaScript-API-1.0.664.1280-37e384fd51dd626acd14a963d6c323d2af68614a.tar.gz

Our testing environment was:
Windows 8.1, WCS4, VLC 2.2.1, Chrome 43 as a WebRTC stream publisher, Ubuntu 14.04 x86_64 Intel Core i7 9xx (Nehalem Class Core i7) 16 cores 16G RAM as a server for WCS4
(There is nothing else but Flashphoner running on this dedicated DellPowerEdge server that is 100% physically owned by us in a DC and it has completely open bandwidth with a public IP)
The problem sees to be with a bug in the Flashphoner code and not any kind of lack of hardware resources as you can see there is plenty of horse power to run this application.

Testing results:
Please checkout this video. The video is clearly NOT in sync.

I am not sure as to why your video in your post appears to be in sync as we have tested it with both file and live camera and with playback on two different PC's and neither are in sync. This has been a problem for quite some time now. We have downloaded the latest version 1294 and also the other version (1290) that you refereed to in your last post and also (1288) several days ago that you said was fixed in your post before this last post saying that the problem was fixed. We tried the fixes several times and reinstalled the server and API several times just to make sure that we were not doing anything wrong and the problem still persists as before so can you please fix this bug as this was the main reason why we bought your product in the first place and we have not been able to use Flashphoner yet with our project because this problem that still persists and any recording we use for our members are still out of sync and cannot be used as they are now.

If you post another test, would you please include a recording of you doing the test with a live webcam and not a file as the delay is much more visible with people speaking which is what we bought the Flashphoner product for in the first place so that our users could record videos of themselves speaking and save them to their profiles as it is completely unusable as it is now with this delay.

Max again THANKS as always in Advance for you assistance,

Howard
 

Max

Administrator
Staff member
Could you please share your settings:
flashphoner.xml (client)
flashphoner.properties
server.properties
Please share it here and remove sensitive information like IP addresses, if it is necessary.
 
Hello Max, here is the current configuration files content.

flashphoner.properties
Code:
ip                     =[OUR-SERVER-EXTERNAL-IP]
ip_local               =[OUR-SERVER-INTERNAL-IP]
port_from              =30000
port_to                =31000
media_port_from        =31001
media_port_to          =32000
waiting_answer         =60
user_agent             =Flashphoner/1.0
balance_header         =balance
cost_header            =cost
video_enabled          =true
domain                 =
outbound_proxy         =
outbound_port          =
log_level              =5
enable_context_logs    =false
rtp_activity_detecting =true,60
sip_msg_listener       =com.flashphoner.sdk.sip.ChangeCallIdListener
call_record_listener   =com.flashphoner.server.client.DefaultCallRecordListener
dtmf             =rfc2833
auto_login_url =/usr/local/FlashphonerWebCallServer/conf/account.xml
get_callee_url =/usr/local/FlashphonerWebCallServer/conf/callee.xml
enable_local_videochat = true
server.properties
Code:
#Config

ws.port                 =8080

wss.port                =8443
#File will be located in conf directory
wss.keystore.file       =wss.jks
wss.keystore.password   =password
wss.cert.password       =password

rtmfp.port                       =1935

#keep_alive_algorithm may be INTERNAL, NONE, HIGH_LEVEL
keep_alive.algorithm       =HIGH_LEVEL
keep_alive.peer_interval   =2000
keep_alive.server_interval =5000
keep_alive.probes          =10


#Reliability: on, partial, off
video_reliable          =partial
audio_reliable          =partial

audio_frames_per_packet =6
burst_avoidance_count   =100
flush_audio_interval    =80
flush_video_interval    =0
rtsp_server_enabled=true
flashphoner.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2011 Flashphoner
  All rights reserved. This Code and the accompanying materials
  are made available under the terms of the GNU Public License v2.0
  which accompanies this distribution, and is available at
  http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 
  Contributors:
      Flashphoner - initial API and implementation
 
  This code and accompanying materials also available under LGPL and MPL license for Flashphoner buyers. Other license versions by negatiation. Write us support@flashphoner.com with any questions.
-->
<flashphoner>
    <url_ws_server>ws://[our-server-name]:8080</url_ws_server>
    <url_flash_server>rtmfp://[our-server-name]:1935</url_flash_server>
    <register_required>true</register_required>
    <!--<load_balancer_url>http://192.168.1.1:8081?action=server_list</load_balancer_url>-->
    <use_dtls>true</use_dtls>
    <reoffers_enabled>false</reoffers_enabled>
    <!--<force_media_provider>Flash</force_media_provider> &lt;!&ndash;WebRTC or Flash &ndash;&gt;-->
    <video_width>640</video_width>
    <video_height>480</video_height>
    <audio_reliable>true</audio_reliable>
    <video_reliable>true</video_reliable>
    <flash_buffer_time>0</flash_buffer_time>
    <check_validation_callee>true</check_validation_callee>
    <use_enhanced_mic>true</use_enhanced_mic>
    <!--<callee_letter_case>uppercase</callee_letter_case> &lt;!&ndash;uppercase,lowercase&ndash;&gt;-->
    <ring_sound></ring_sound>
    <busy_sound></busy_sound>
    <register_sound></register_sound>
    <finish_sound></finish_sound>
</flashphoner>
 

Max

Administrator
Staff member
Howard,
Take a look at our testing URL.
It is
Client 664.1280
Server 1294
Could you check sync here?
From our testing the stream is in sync either for ManyCam movie source, and for Live Web Cam + Microphone source.
Make sure you have restarted WCS server properly. Maybe your update has not been applied properly.
Example:
Code:
[root@SF1 664.1280]# pmap 1407 | grep 1294
1407:   java -Dloader.path=/usr/local/FlashphonerWebCallServer-4.0.1294/lib/tbs-commons.jar,/usr/local/FlashphonerWebCallServer-4.0.1294/lib/wcs_manager-1.0.jar -Dcom.flashphoner.fms.AppHome=/usr/local/FlashphonerWebCallServer -Xmx512M -Xloggc:/usr/local/FlashphonerWebCallServer/logs/gc-manager.log -jar /usr/local/FlashphonerWebCallServer-4.0.1294/lib/wcs_manager-1.0.jar -Xmx1024M -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.managemen
00007fa35a5f8000     12K r--s-  /usr/local/FlashphonerWebCallServer-4.0.1294/lib/tbs-commons.jar
00007fa35a5fb000     36K r--s-  /usr/local/FlashphonerWebCallServer-4.0.1294/lib/wcs_manager-1.0.jar
Here 1407 is PID
Here we can see that build 1294 is in memory.
If it is not in memory, you have to stop WCS server, make sure that it is stopped and start it again.
By the way, we encountered a stop/start issue on latest Debian Linux. May be the same you have on Ubuntu.
On Debian and Ubuntu, you can use:
Code:
cd /usr/local/FlashphonerWebCallServer/bin
./shutdown.sh
./startup.sh
If it does not help, please send SSH access to logs@flashphoner.com. We'll check.
 
Hi Max,
We did everything exactly as you described and completely stopped everything and restarted all of the services just like you explained above but the one second delay between the audio and video still persists and the delay seems to get worse the longer the stream is on. We tested it on three different very new very high performance Windows 7 computers (i5, 3GH, 16GB Ram, SSD, latest version Chrome) with goog internet connections and did it in two different countries and all of the tests had the exact same one second delay result with the worst part being that the delay seem to be getting worse the longer the stream was on.

I sent you an email with the Flashphone SSH access to logs@flashphoner.com

Max again THANKS as always in Advance for you assistance,

Howard
 
Last edited:
Top