Stream recording

Discussion in 'Web Call Server 4' started by Howard Fluker, Mar 18, 2015.

  1. Howard Fluker

    Howard Fluker Member

    Hello support team,
    I want to know how can I record a stream and then upload it to a remote server.
    Thanks for your help
  2. Max

    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: Mar 19, 2015
  3. Howard Fluker

    Howard Fluker Member

    Thanks for your answer
  4. Howard Fluker

    Howard Fluker Member

    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
  5. Max

    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.
    [​IMG]
    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.
  6. Robert Kuncewicz

    Robert Kuncewicz New Member

    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?
  7. Max

    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
  8. Max

    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.
  9. Robert Kuncewicz

    Robert Kuncewicz New Member

    Awesome, the rtsp_server_enabled=true did it! It works both in Wowza and VLC now. The recording is a cool feature, thanks for the info!
  10. Max

    Max Administrator Staff Member

  11. Howard Fluker

    Howard Fluker Member

    Hello Max, we tested the new FlashPhoner and API version and audio delay persists. Any idea what is causing it?
  12. Howard Fluker

    Howard Fluker Member

    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
  13. Max

    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.
  14. Howard Fluker

    Howard Fluker Member

    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
  15. Max

    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.
  16. Howard Fluker

    Howard Fluker Member

    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>
  17. Howard Fluker

    Howard Fluker Member

    Hi Max,
    So any thoughts from the above as to why the delay is still occurring?

    Thanks,
    Howard
  18. Max

    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.
  19. Howard Fluker

    Howard Fluker Member

    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: Jul 7, 2015

Share This Page