Tuesday, 24 April 2018

Agora.io WebRTC Basic Understanding


Question: What is Agora Recording Overview?
The Agora Recording SDK is an add-on to record and save voice calls, video calls and interactive broadcasts in server.

Support on below and above versions.
Agora Native SDK version 1.7.0
Agora Web SDK version 1.12.0
Support for CentOS x64 version 6.5 or later and Ubuntu x64 version 12.04 or later.


Question: What are benefits of using Agora Recording?
  1. High-quality recordings for Voice and video.
  2. Single OR Mix audio/video
  3. Raw data of Audio/Photo
  4. Screen Capture
  5. Customized



Question: What services does Agora CaaS provide?
Video/Audio SDKs: APIs for Real-time Audio and Video Communications with one-to-one and one-two-many.
A voice group can be a maximum of 10, 000 people online at the same time;
a video group supports up to seven people online at the same time.
Agora Cloud: We have deployed around 100 data centers in four continents, including thousands of servers.
Real-time Audio and Video Reports: tell you how many active users are using the call service, call durations, call success rate, ratio of low-quality contacts with cause analysis, and so on. In addition, distribution reports show the geographic distribution of users, of network conditions and users, and of time spent on the network. To help with operational and other business decisions, developers can check data by using daily, weekly, or background reports, anytime and anywhere.


Question: What communication functions can I implement in my application by using Agora CaaS?
App-App Communication
App-Web Communication
Web-Web Communication
App-Cellphone/Local PSTN Breakout Communication.


Question: What are the differences between Agora.io and WebRTC?
WebRTC is based on P2P, and Agora.io is based on proprietary cloud services architecture that can work with P2P as required.
WebRTC may/may-not work on Mobile but Agora.io will work on mobiles.
Voice quality is better with Agora as compare to WebRTC.
WebRTC does not store the video/audio, but Agora.io save the media and stored on their server.


Question: Does Agora.io use WebRTC?
In Web, Agora use WebRTC but with lot of customization which is not available in Normal Webrtc.
In App, Agora does not use WebRTC.


Question: What is the difference between Agora CaaS and a content-delivery platform (CDN)?
In CDN, latency can be from 1-10 Seconds.
In Agora, Latency can be upto 400ms.


Question: Is Agora.io a video cloud?
No, A video cloud provides video on demand and live service. but Agora.io provide real-time live streaming.
Question: Where Agoro.io can be used?
In Call center(BPO) with recording.
LIVE Streaming Audio with available of audio.
LIVE Streaming Video with available of video.
App-Web Audio/Video communication.
App-App Audio/Video communication.
Web-Web Audio/Video communication.
Send Audio message.
Send Video message.
Can be used Educational area as its cheap in cost.


Question: is encryption available in Agora?
Yes.
Agora.io is a safe platform
When the signal is sent, it is encrypted (call setup).


Question: Can we do custom encryption?
By Default Agora built-in AES-128 encryption. but we can use customized data encryption algorithm.


Question: What are the fees for Agora services?
The first 10,000 minutes of each month are free (Audio and Video combined).
Starting from the 10,001 minute of each month, $0.00099/minute (Audio call).
Starting from the 10,001 minute of each month, $0.00399/minute(Video call).


Question: Is Agora.io HIPAA compliant?
Yes.


Question: How does the Agora.io network handle DDoS attacks?
Yes, an anti-DDoS firewall is present in each cloud data center.


Question: Which platforms does Agora.io support?
Android > 4.0
IOS > 6.0


Question: Which codecs are used by Agora.io?
Agora.io uses its own proprietary audio codec, NOVA, which is simple, low-bit-rate, and highly adaptive.


Question: How many people does Agora.io audio/video support at the same time in a call?
Audio Call: up to 10,000 people at the same time
Video Call: up to 7 people at the same time



Question: Does Agora.io provide echo cancellation?
Yes.
Question: How much bandwidth does the Agora.io SDK require?
With Wifi (4KB to 13KB per second)
With Non-Wifi (4KB to 6KB per second)


Question: Is a call interrupted when switching networks, as from Wi-Fi to 3G/4G?
Yes, Short interruption after switching networks in a call, for example, from Wi-Fi to 3G or 4G, due to the clients's needs to re-establish connection.


Question: What is command for recording the media?
/usr/bin/recorder_local --appId APPID --appliteDir "/opt/Agora_Recording_SDK_for_Linux_FULL/bin" --channel aruntest1 



Question: What is command for (Recording Auddio/Video combine)?
/usr/bin/recorder_local --appId APPID --appliteDir "/opt/Agora_Recording_SDK_for_Linux_FULL/bin" --channel aruntest2 --mixedVideoAudio 1 --isMixingEnabled 1
/usr/bin/recorder_local --appId APPID --appliteDir "/opt/Agora_Recording_SDK_for_Linux_FULL/bin" --channel aruntest3 --mixedVideoAudio 1 --isMixingEnabled 1
/usr/bin/recorder_local --appId APPID --appliteDir "/opt/Agora_Recording_SDK_for_Linux_FULL/bin" --channel aruntest7 --mixedVideoAudio 1 --isMixingEnabled 1



Question: Command to set idle time?
/usr/bin/recorder_local --appId APPID --appliteDir "/opt/Agora_Recording_SDK_for_Linux_FULL/bin" --channel aruntest10 --mixedVideoAudio 1 --isMixingEnabled 1 --idle 4



Question: Command to set the root directory?
/usr/bin/recorder_local --appId APPID --appliteDir "/opt/Agora_Recording_SDK_for_Linux_FULL/bin" --channel aruntest10 --mixedVideoAudio 1 --isMixingEnabled 1 --idle 4 --recordFileRootDir /var/www/html/recording_files/



Tuesday, 17 April 2018

Rev: Online audio transcription, video captions and document translation services

Rev: Online audio transcription, video captions and document translation services

Question: What does Rev provide?
Rev provide the Online audio transcription, video captions and document translation services.


Question: What type of transcription they provide?
They provide transcription like immigration, business, legal, academic and personal needs.


Question: How much they charge?
Rev charges $1 per minute of audio. For example, a 30 minute clip costs $30.00. Timestamps and verbatim are options that cost $0.25 per minute each.


Question: How long will it take?
Audio files under 30 minutes long with good quality audio are typically delivered within 12 hours.


Question: Do they provide timestamps?
Yes, $0.25 per minute.


Question: What type of file format they accept?
We accept audio and video recordings in MP3, MP4, WMV, AIF, M4A, MOV, AVI, VOB, AMR, WMA, OGG, AAC, and WAV.


Question: What is endpoint for sandbox API?
https://api-sandbox.rev.com


Question: What is endpoint for Rev API?
https://www.rev.com


Question: What is documentation URL of API?
https://www.rev.com/api


Question: How to send order online for audio/video transcription?
Step 1
  1. Upload a source file to be used in an order via i.e. /api/v1/inputs
  2. Curl Example
curl -X POST
  https://api-sandbox.rev.com/api/v1/inputs
  -H 'authorization: AUTHORIZATION_STRING_HERE'
  -H 'cache-control: no-cache'
  -H 'content-type: application/json'
  -H 'postman-token: d6eee4bb-84ef-d54b-d15d-9ac9b3230fc2'
  -d '{
    "url": "https://useastpacificgeorama.blob.core.windows.net/useastpacifiddc/GM-qE2zq-1078-5525_720p.mp4"
}'


Response Headers
Location – URI identifying the newly uploaded media. This URI can be used to identify this media when submitting an order.


Step 2
  1. Now order online i.e. /api/v1/orders
  2. Curl Example
curl -X POST
  https://api-sandbox.rev.com/api/v1/orders
  -H 'authorization: AUTHORIZATION_STRING_HERE'
  -H 'cache-control: no-cache'
  -H 'content-type: application/json'
  -H 'postman-token: 10fa5ba8-3739-c3f2-ace9-b115f3bb6f96'
  -d '{
    "client_ref": "Georama-OvanTest",
    "transcription_options": {
        "inputs": [
            {
                "audio_length_seconds": 194,
                "uri": "urn:rev:inputmedia:U3VwbG9hZHMvMjAxOC0wNC0xMy8wMzQzOTY1MC0yMDVhLTQwMDYtYWZmMC01MjI0ZTdkNTQ2MTUvR00tcUUyenEtMTA3OC01NTI1XzcyMHAubXA0"
            }
        ],
        "verbatim": true,
        "timestamps": true
    },
    "notification": {
        "url": "http://example.com/callback/url",
        "level": "Detailed"
    }
}'

Response Headers
Location – URI identifying the newly created order. This URI can be used to request details (such as status) of the order. Only present if a 201 response code is returned.



Question: How rev will communicate to us once order is completed?
Once rev, received the request.
When they just start they will notify to us through callback function.
When they just complete they will notify to us through callback function.
All data will be sent in POST method, and have following parameters.
(
    [order_number] => TD0648810924
    [client_ref] => arunkumartest
    [status] => Complete
)



Question: How to GET order details online?
We can get the order details with API using orderId.
For Example.
curl -X GET
  https://api-sandbox.rev.com/api/v1/orders/TD0648810924
  -H 'accept: application/json'
  -H 'authorization: AUTHORIZATION_STRING_HERE'
  -H 'cache-control: no-cache'
  -H 'postman-token: aad7ead8-0b44-19b1-0f19-2b5baa4a2e6a'
Response Body
 
{
    "order_number": "TD0648810924",
    "client_ref": "OvanTest",
    "price": 4.86,
    "status": "Complete",
    "priority": "Normal",
    "non_standard_tat_guarantee": false,
    "transcription": {
        "verbatim": true,
        "timestamps": true,
        "total_length": 3,
        "total_length_seconds": 194
    },
    "comments": [
        {
            "by": "Georama I.",
            "timestamp": "2018-04-13T11:57:14.97Z"
        },
        {
            "timestamp": "2018-04-13T12:02:46.997Z",
            "text": "Order delivered"
        }
    ],
    "attachments": [
        {
            "kind": "media",
            "name": "GM-qE2zq-1078-5525_720p.mp4",
            "id": "5HYQOsWDAwAAAAAA",
            "audio_length_seconds": 194,
            "links": [
                {
                    "rel": "content",
                    "href": "https://api-sandbox.rev.com/api/v1/attachments/5HYQO2s2WDAwAAAAAA/content"
                }
            ]
        },
        {
            "kind": "transcript",
            "name": "sample_transcription.docx",
            "id": "5HYQOsqDAwAAAAAA",
            "links": [
                {
                    "rel": "content",
                    "href": "https://api-sandbox.rev.com/api/v1/attachments/5HYQO2sqDA2wAAAAAA/content",
                    "content-type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                }
            ]
        }
    ]
}



Question: How to get transcriptions?
curl -X GET
  https://api-sandbox.rev.com/api/v1/attachments/5HYQO2s2WDAwAAAAAA/content
  -H 'accept: application/rev-transcription'
  -H 'authorization: AUTHORIZATION_STRING_HERE'
  -H 'cache-control: no-cache'
  -H 'postman-token: 4376e40d-9e6e-1e5a-e937-6337b9e1ade2'

Response
{"speakers":[{"id":1,"name":"Adam","icon":null,"color":null,"colorCoordinates":null,"note":null},{"id":2,"name":"Mike","icon":null,"color":null,"colorCoordinates":null,"note":null}],"monologues":[{"id":1,"speaker":1,"spans":[{"type":0,"value":"This is a sample first line"}],"startTime":null},{"id":2,"speaker":2,"spans":[{"type":0,"value":"This is a sample second line"}],"startTime":null}],"segments":[],"versionNumber":0,"offsetSeconds":0,"id":50,"name":"test.txt","metadata":{}}