Is there any timeout to change broadcast status to "COMPLETE" from "LIVE" automatically when It's not receiving any data(stream) on YouTube.
About 30-60 minutes timeout on live events. If you don't send data within this time, they will close the event.
Related
I have to add live video streaming in one of my app; I am using Wowza Streaming Cloud for the same. I am using REST Api to make it as my requirement.
The flow I had used is:
Create a stream
Start stream
Check status unless it is "started"
if the status is started, I start broadcasting video.
It goes well sometimes, but sometimes when I try to broadcast even after starting the stream, it says:
Status is idle, An error occurred when trying to connect to host: (code = 15)
Also I see a green screen on player side, and the video on player side is not continuous, it keeps on fluttering.
For Player I used the code provided in sample app.
For Broadcasting I had used GoCoder SDK wherein I set all of the properties like host address, port, app name, stream name, etc.
Do I have to set bitrate or anything?
Where am I wrong?
That error occurs when the entrypoint itself is open for more than 20 minutes without a connection. Once you get an IP returned from the API for the stream, you can connect to it right away. The errors you're getting are showing idle due to lack of connection and it sounds like the timing between starting the event, checking the event, and then finally connecting are hitting this restriction.
So when you test streaming to an event (via the RTMP endpoint) you switch the events lifeCycleStatus to testing. When I stop streaming to the RTMP endpoint the lifeCycleStatus still remains testing.
Essentially I need the event to go from this testing state to one where I can create and bind a new live stream to the event.
An attempt to transition the broadcast status of the event to Live is met with the error that the stream status is currently inactive which makes sense.
Is it possible to transition an event in the testing state to one where I can bind a new stream to it?
So I managed to solve this issue. Just to let you know there is no way to move a LiveBroadcast from the lifeCycleStatus from TESTING to anything other than LIVE or COMPLETED.
You can however rebind a new LiveStream to a LiveBroadcast in the state of TESTING. The broadcast will have a new boundStream and the lifeCycleStatus will be CREATED 👍
I am going to embed a Youtube live event on my site. I want to be able to output the Broadcast Status. So if the event is on hold, I want to display "On Hold", if it's live, I want to display "Live", if it's over, I want to display "Event is Over", etc.
Is this possible?
This is possible with the liveBroadcasts/list endpoint.
part -> id, status
id -> The Video ID if your Live Broadcast object
HTTP GET: GET https://www.googleapis.com/youtube/v3/liveBroadcasts?part=id%2Cstatus&id={video_id}&key={YOUR_API_KEY}
The status dictionary returned might look something like this:
"status": {
"lifeCycleStatus": "complete",
"privacyStatus": "unlisted",
"recordingStatus": "recorded"
}
The value for the lifeCycleStatus is what you're looking for. This can be one of several values:
abandoned – This broadcast was never started.
complete – The broadcast is finished.
created – The broadcast has incomplete settings, so it is not ready to transition to a live or testing status, but it has been created and is otherwise valid.
live – The broadcast is active.
liveStarting – The broadcast is in the process of transitioning to live status.
ready – The broadcast settings are complete and the broadcast can transition to a live or testing status.
reclaimed – This broadcast has been reclaimed.
revoked – This broadcast was removed by an admin action.
testStarting – The broadcast is in the process of transitioning to testing status.
testing – The broadcast is only visible to the partner.
It is possible but you need to map the status depending upon the data is coming thorough your stream or not. It will all depends on how you are tracking the YouTube traffic on your webpage.
I can successfully record voice within the browser using Twilio.js lib.
I would like to display a count down timer once the recording begins which happens when the "beep" is played.
Is there any way for the client lib to detect the recording start / beep so that I can start count down timer?
Twilio evangelist here.
There is no way for the client to tell you that a "beep" has occurred. What you could do is at the beginning of the call, prompt the user to press a button on the web page to start recording. That button press can do two things:
send a DTMF tone to Twilio which you can listen for using the <Gather> verb. Once the gather completes you can tell Twilio to start recording.
starts a timer on the client.
The timing between the client and exactly when the client starts won't be 100% in sync, but it should be pretty close.
Hope that helps.
I can't find any specific documentation about the dispatchPeriod variable in the Google Analytics SDK for iOS.
If I set it to 10 does that mean it will send data to the Google Analytics server every 10 seconds? Does it only send data if new page views or events have been recorded or is it going to send data regardless? I don't want to use this feature if it will eat up too much battery life but my app has very few events to record (basically just launching and exiting). If I set the dispatch time to 10 seconds and only record events when the app opens and when it closes will it be continually dispatching during my apps runtime or will it only dispatch when those events are recorded?
I have just added Google Analytics to my app and here is what I found out:
If you don't explicitly call dispatch and have set the dispatchPeriod to let's say 10 secs, then when you call trackPageview/Event/Whatever, these requests to Google Analytics are being queued and actually sent in those 10 secs periods. If there are no requests in the queue, your app doesn't send anything (to be precise I didn't sniff the network communication, but at least the GANTrackerDelegate methods are not called).
Confirmed, just sniffed communication with Wireshark and there is no traffic between my iDevices and the world when I don't track anything.