Comments (3)
There's a lot of missing explanation about your setup so I'll have to make some assumptions.
Using example web server code from https://github.com/googlecast/CastVideos-chrome
- using plain http: to the Pi4 works but the cast icon is does not appear on the main page in the browser
Cast sender applications are only supported on https:
using a TLS self-signed certificate on the Pi, then https: to the main page on the Pi, the cast icon then shows in the browser
That will work if you've forced the browser to accept the self-signed certificate as trustworthy.
and
2.1 the native videos in the example play on the PC's chrome browser
2.2 the native videos in the example cast fine to a chromecast on my home LAN
These are hosted on Google servers at http://commondatastorage.googleapis.com
however then if we change the media.js code for the main page to
add our own .mp4 on the Pi web server,
and specifying the default Application ID for the Receiver in CastVideos.js
3.1 the native videos in the example still play in the browser and cast fine to a chromecast on my home LAN
3.2 the Pi's .mp4 plays fine locally in the browser
3.3 using http: as the URL to the Pi's mp4, the .mp4 does not cast to the Chromecast ... the TV just displays the chromecast icon
What URL are you using to the file hosted on the Pi? Is this something that the Chromecast can fetch? Is it something the Chromecast can play?
I suggest connecting to the receiver app with devtools at chrome://inspect#devices and seeing if the receiver app is attempting to fetch the file, and any errors that might be logged in the console.
3.4 using https: (the Pi has a self-signed cert) as the URL to the Pi's .mp4, the .mp4 does NOT cast to the Chromecast ... the TV just displays the chromecast icon
So, it looks like the chromecast device requires the .mp4 to reside on a server which has a proper signed certificate which has an authentication chain.
That shouldn't be necessary as the Chromecast can fetch media over http:. It's recommended to use https: everything on a page though, as mixed-content fetched over http: and https: is not great for security and privacy in general.
Does anyone know how to cast .mp4 videos from a local web server in a home LAN,
where the web server has no access in from the internet (i.e. no domain or real cert) ?
If you want to provide a proper cert for your LAN server, then you can register a domain, obtain a cert from an authority at e.g. https://letsencrypt.org/, and point DNS for the domain address at the server's LAN IP address(es).
Or, other suggestions ?
I guess you could also clarify in the README.md what all of the requisite pre-conditions are for it to work.
from castvideos-chrome.
Thank you for your post, you are perfectly correct !!!
I should have investigated further before posting.
(OK, I'm also looking at https://letsencrypt.org/)
I did as you suggested - connecting to the receiver app with devtools at chrome://inspect#devices
I also momentarily copied one of the sample .mp4s to the local web server and linked to that, just to test.
That local sample .mp4 played perfectly from the local web server regardless of a plain http link to the media.
The result is that I was 100% wrong in what I thought was happening.
I have a Chromecast Ultra, which looks to be very fussy.
I have a range of home videos created by ffmpeg in formats mp4/avc-1080i-1080p/aac (profile high, level 5.1) and mp4/hevc-1080i-1080p/aac.
None of them play on the Chromecast Ultra.
They do play fine in the chrome HTML5 video element though.
All that the cast framework debugging yields in the way of an error is this line
cast_receiver_framework.js:105 [ 3.649s] [cast.framework.media.Player] player event: error
which is rather unhelpful in terms of figuring out what it doesn't like given the .mp4 files
notionally fit within the spec https://developers.google.com/cast/docs/media#image-formats
So, the issue looks to instead be with my .mp4 videos, not the example software here.
I guess I'll start experimenting with .mp4 encoding parameters to find a set that works :( :(
cast_receiver_framework.js:105 [ 0.002s] [cast.receiver.IpcChannel] Opening platform websocket
cast_receiver_framework.js:105 [ 0.017s] [cast.receiver.CastReceiverManager] Version: 2.0.0.0100
jg @ cast_receiver_framework.js:105
cast_receiver_framework.js:105 [ 0.060s] [cast.framework.Application] CAF Receiver Version: 3.0.0066
jg @ cast_receiver_framework.js:105
cast_receiver_framework.js:105 [ 0.136s] [cast.framework.Application] start
cast_receiver_framework.js:105 [ 0.150s] [cast.receiver.MediaManager] Using default Player
cast_receiver_framework.js:105 [ 0.159s] [cast.receiver.IpcChannel] Opening message bus websocket
cast_receiver_framework.js:105 [ 0.163s] [cast.receiver.IpcChannel] IpcChannel opened
cast_receiver_framework.js:105 [ 0.164s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.167s] [cast.receiver.CastReceiverManager] Underlying message bus is open
cast_receiver_framework.js:105 [ 0.169s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender","data":"{\"type\":\"ready\",\"activeNamespaces\":[\"urn:x-cast:com.google.cast.cac\",\"urn:x-cast:com.google.cast.debugoverlay\",\"urn:x-cast:com.google.cast.broadcast\",\"urn:x-cast:com.google.cast.media\",\"urn:x-cast:com.google.cast.inject\"],\"version\":\"2.0.0\",\"messagesVersion\":\"1.0\",\"sdkCapabilities\":{\"show_media_controls_supported\":true,\"group_capabilities_supported\":true,\"playback_device_status_supported\":true}}"}
cast_receiver_framework.js:105 [ 0.170s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender","data":"{\"type\":\"startheartbeat\",\"maxInactivity\":10}"}
cast_receiver_framework.js:105 [ 0.175s] [cast.receiver.MediaManager] Using default Player
cast_receiver_framework.js:105 [ 0.402s] [cast.framework.common.libraryloader] library(//ajax.googleapis.com/ajax/libs/shaka-player/2.5.5/shaka-player.compiled.js) is loaded
cast_receiver_framework.js:105 [ 0.452s] [cast.framework.common.libraryloader] library(//www.gstatic.com/cast/sdk/libs/mediaplayer/1.0.0/media_player.js) is loaded
cast_receiver_framework.js:105 [ 0.468s] [cast.receiver.IpcChannel] Received message: {"data":"{\"applicationId\":\"4662E592\",\"applicationName\":\"pi4cc\",\"closedCaption\":{},\"deviceCapabilities\":{\"bluetooth_supported\":true,\"display_context_changed_supported\":false,\"display_supported\":true,\"focus_state_supported\":true,\"hi_res_audio_supported\":false,\"is_group\":false,\"remote_control_input_supported\":false,\"remote_control_overlay_supported\":true,\"touch_input_supported\":false},\"iconUrl\":\"\",\"launchedFrom\":\"CAST\",\"launchingSenderId\":\"113a87b2-2797-91b4-ee69-50e4dde51bcc.6:sender-wv5zqnls0x94\",\"messagesVersion\":\"1.0\",\"sessionId\":\"e73c05f3-24ce-463e-a727-2c825b758f33\",\"type\":\"ready\",\"version\":\"1.42.172094\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver_framework.js:105 [ 0.468s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.475s] [cast.receiver.CastReceiverManager] Dispatching CastReceiverManager system ready event
cast_receiver_framework.js:105 [ 0.477s] [cast.framework.Application] onReady
cast_receiver_framework.js:105 [ 0.495s] [cast.receiver.IpcChannel] Received message: {"data":"{\"level\":1.0,\"muted\":false,\"type\":\"volumechanged\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver_framework.js:105 [ 0.497s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.499s] [cast.receiver.CastReceiverManager] Dispatching system volume changed event [1, false]
cast_receiver_framework.js:105 [ 0.500s] [cast.receiver.IpcChannel] Received message: {"data":"{\"type\":\"visibilitychanged\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver_framework.js:105 [ 0.501s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.501s] [cast.receiver.CastReceiverManager] Ignoring visibility changed event, state is already null
cast_receiver_framework.js:105 [ 0.502s] [cast.receiver.IpcChannel] Received message: {"data":"{\"type\":\"standbychanged\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver_framework.js:105 [ 0.502s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.502s] [cast.receiver.IpcChannel] Received message: {"data":"{\"controls\":0,\"type\":\"showmediacontrols\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver_framework.js:105 [ 0.504s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.504s] [cast.receiver.CastReceiverManager] Dispatching showmediacontrols 0
cast_receiver_framework.js:105 [ 0.507s] [cast.receiver.IpcChannel] Received message: {"data":"{\"hdrType\":\"sdr\",\"type\":\"hdroutputtypechanged\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver_framework.js:105 [ 0.507s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.509s] [cast.receiver.MediaManager] Sending broadcast status message
cast_receiver_framework.js:105 [ 0.511s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"*:*","data":"{\"type\":\"MEDIA_STATUS\",\"status\":[],\"requestId\":0}"}
cast_receiver_framework.js:105 [ 0.514s] [cast.receiver.IpcChannel] Received message: {"data":"{\"state\":\"IN_FOCUS\",\"type\":\"FOCUS_STATE\"}","namespace":"urn:x-cast:com.google.cast.cac","senderId":"SystemSender"}
cast_receiver_framework.js:105 [ 0.515s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.516s] [cast.framework.common.EventHandler] onEvent for FOCUS_STATE
cast_receiver_framework.js:105 [ 0.518s] [cast.receiver.IpcChannel] Received message: {"data":"{\"deviceName\":\"CCSmallLounge\",\"playbackType\":1,\"type\":\"playbackdevicestatus\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver_framework.js:105 [ 0.519s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.519s] [cast.receiver.CastReceiverManager] Dispatching playbackdevicestatus 1
cast_receiver_framework.js:105 [ 0.521s] [cast.receiver.IpcChannel] Received message: {"data":"{\"requestId\":1717412841,\"type\":\"GET_STATUS\"}","namespace":"urn:x-cast:com.google.cast.media","senderId":"trait-handler:113a87b2-2797-91b4-ee69-50e4dde51bcc.cast_receiver.media"}
cast_receiver_framework.js:105 [ 0.521s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.525s] [cast.receiver.MediaManager] MediaManager message received
cast_receiver_framework.js:105 [ 0.525s] [cast.receiver.MediaManager] Dispatching MediaManager getStatus event
cast_receiver_framework.js:105 [ 0.526s] [cast.framework.common.EventHandler] onEvent for getstatus
cast_receiver_framework.js:105 [ 0.528s] [cast.receiver.MediaManager] onGetStatus
cast_receiver_framework.js:105 [ 0.528s] [cast.receiver.MediaManager] onGetStatus: {"requestId":1717412841,"type":"GET_STATUS"}
cast_receiver_framework.js:105 [ 0.529s] [cast.receiver.MediaManager] Sending status message to trait-handler:113a87b2-2797-91b4-ee69-50e4dde51bcc.cast_receiver.media
cast_receiver_framework.js:105 [ 0.530s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"trait-handler:113a87b2-2797-91b4-ee69-50e4dde51bcc.cast_receiver.media","data":"{\"type\":\"MEDIA_STATUS\",\"status\":[],\"requestId\":1717412841}"}
cast_receiver_framework.js:105 [ 0.531s] [cast.receiver.IpcChannel] Received message: {"data":"{\"requestId\":8,\"type\":\"GET_STATUS\"}","namespace":"urn:x-cast:com.google.cast.media","senderId":"local-client.7:multizone-0"}
cast_receiver_framework.js:105 [ 0.532s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.532s] [cast.receiver.MediaManager] MediaManager message received
cast_receiver_framework.js:105 [ 0.533s] [cast.receiver.MediaManager] Dispatching MediaManager getStatus event
cast_receiver_framework.js:105 [ 0.533s] [cast.framework.common.EventHandler] onEvent for getstatus
cast_receiver_framework.js:105 [ 0.534s] [cast.receiver.MediaManager] onGetStatus
cast_receiver_framework.js:105 [ 0.534s] [cast.receiver.MediaManager] onGetStatus: {"requestId":8,"type":"GET_STATUS"}
cast_receiver_framework.js:105 [ 0.535s] [cast.receiver.MediaManager] Sending status message to local-client.7:multizone-0
cast_receiver_framework.js:105 [ 0.535s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"local-client.7:multizone-0","data":"{\"type\":\"MEDIA_STATUS\",\"status\":[],\"requestId\":8}"}
cast_receiver_framework.js:105 [ 0.540s] [cast.receiver.IpcChannel] Received message: {"data":"{\"largeMessageSupported\":false,\"senderId\":\"113a87b2-2797-91b4-ee69-50e4dde51bcc.6:157568484965165363\",\"type\":\"senderconnected\",\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"}
cast_receiver_framework.js:105 [ 0.542s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.545s] [cast.receiver.CastReceiverManager] Dispatching CastReceiverManager sender connected event [113a87b2-2797-91b4-ee69-50e4dde51bcc.6:157568484965165363]
cast_receiver_framework.js:105 [ 0.546s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.cac, 113a87b2-2797-91b4-ee69-50e4dde51bcc.6:157568484965165363]
cast_receiver_framework.js:105 [ 0.547s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.debugoverlay, 113a87b2-2797-91b4-ee69-50e4dde51bcc.6:157568484965165363]
cast_receiver_framework.js:105 [ 0.547s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.broadcast, 113a87b2-2797-91b4-ee69-50e4dde51bcc.6:157568484965165363]
cast_receiver_framework.js:105 [ 0.547s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.media, 113a87b2-2797-91b4-ee69-50e4dde51bcc.6:157568484965165363]
cast_receiver_framework.js:105 [ 0.548s] [cast.receiver.CastMessageBus] Registering sender [urn:x-cast:com.google.cast.inject, 113a87b2-2797-91b4-ee69-50e4dde51bcc.6:157568484965165363]
cast_receiver_framework.js:105 [ 0.549s] [cast.receiver.IpcChannel] Received message: {"data":"{\"type\":\"GET_STATUS\",\"requestId\":673717578}","namespace":"urn:x-cast:com.google.cast.media","senderId":"113a87b2-2797-91b4-ee69-50e4dde51bcc.6:sender-wv5zqnls0x94"}
cast_receiver_framework.js:105 [ 0.549s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.550s] [cast.receiver.MediaManager] MediaManager message received
cast_receiver_framework.js:105 [ 0.550s] [cast.receiver.MediaManager] Dispatching MediaManager getStatus event
cast_receiver_framework.js:105 [ 0.550s] [cast.framework.common.EventHandler] onEvent for getstatus
cast_receiver_framework.js:105 [ 0.551s] [cast.receiver.MediaManager] onGetStatus
cast_receiver_framework.js:105 [ 0.551s] [cast.receiver.MediaManager] onGetStatus: {"type":"GET_STATUS","requestId":673717578}
cast_receiver_framework.js:105 [ 0.552s] [cast.receiver.MediaManager] Sending status message to 113a87b2-2797-91b4-ee69-50e4dde51bcc.6:sender-wv5zqnls0x94
cast_receiver_framework.js:105 [ 0.552s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"113a87b2-2797-91b4-ee69-50e4dde51bcc.6:sender-wv5zqnls0x94","data":"{\"type\":\"MEDIA_STATUS\",\"status\":[],\"requestId\":673717578}"}
cast_receiver_framework.js:105 [ 0.563s] [cast.receiver.IpcChannel] Received message: {"data":"{\"type\":\"LOAD\",\"requestId\":673717579,\"sessionId\":\"e73c05f3-24ce-463e-a727-2c825b758f33\",\"media\":{\"contentId\":\"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4\",\"streamType\":\"BUFFERED\",\"contentType\":\"video/mp4\",\"metadata\":{\"type\":2,\"metadataType\":2,\"title\":\"On Our Selection\",\"images\":[{\"url\":\"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4_thumb.jpg\"}],\"subtitle\":\"On Our Selection\"}},\"autoplay\":false,\"currentTime\":2.1251379999999997}","namespace":"urn:x-cast:com.google.cast.media","senderId":"113a87b2-2797-91b4-ee69-50e4dde51bcc.6:157568484965165363"}
cast_receiver_framework.js:105 [ 0.565s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver_framework.js:105 [ 0.566s] [cast.receiver.MediaManager] MediaManager message received
cast_receiver_framework.js:105 [ 0.568s] [cast.receiver.MediaManager] Dispatching MediaManager load event
cast_receiver_framework.js:105 [ 0.568s] [cast.receiver.MediaManager] Load message received:{"type":"LOAD","requestId":673717579,"sessionId":"e73c05f3-24ce-463e-a727-2c825b758f33","media":{"contentId":"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4","streamType":"BUFFERED","contentType":"video/mp4","metadata":{"type":2,"metadataType":2,"title":"On Our Selection","images":[{"url":"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4_thumb.jpg"}],"subtitle":"On Our Selection"}},"autoplay":false,"currentTime":2.1251379999999997}
cast_receiver_framework.js:105 [ 0.576s] [cast.framework.common.EventHandler] onEvent for load
cast_receiver_framework.js:105 [ 0.578s] [cast.receiver.MediaManager] Sending broadcast status message
cast_receiver_framework.js:105 [ 0.599s] [cast.receiver.MediaManager] No need to prefetch more for now.
cast_receiver_framework.js:105 [ 0.600s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"*:*","data":"{\"type\":\"MEDIA_STATUS\",\"status\":[{\"mediaSessionId\":1,\"playbackRate\":1,\"playerState\":\"IDLE\",\"currentTime\":0,\"supportedMediaCommands\":274447,\"volume\":{\"level\":1,\"muted\":false},\"media\":{\"contentId\":\"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4\",\"streamType\":\"BUFFERED\",\"contentType\":\"video/mp4\",\"metadata\":{\"type\":2,\"metadataType\":2,\"title\":\"On Our Selection\",\"images\":[{\"url\":\"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4_thumb.jpg\"}],\"subtitle\":\"On Our Selection\"}},\"currentItemId\":1,\"extendedStatus\":{\"playerState\":\"LOADING\",\"media\":{\"contentId\":\"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4\",\"streamType\":\"BUFFERED\",\"contentType\":\"video/mp4\",\"metadata\":{\"type\":2,\"metadataType\":2,\"title\":\"On Our Selection\",\"images\":[{\"url\":\"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4_thumb.jpg\"}],\"subtitle\":\"On Our Selection\"}}},\"repeatMode\":\"REPEAT_OFF\"}],\"requestId\":0}"}
cast_receiver_framework.js:105 [ 0.602s] [cast.framework.PlayerManager] MediaManagerLoad
cast_receiver_framework.js:105 [ 0.617s] [cast.framework.common.IdleTimeoutManager] onPlayerLoading
cast_receiver_framework.js:105 [ 0.620s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender","data":"{\"type\":\"setappstate\",\"statusText\":\"Casting: On Our Selection\"}"}
cast_receiver_framework.js:105 [ 0.639s] [cast.framework.media.SimplePlayer] loadContent: autoplay = false, initial_time = 2.1251379999999997
app.html?skin:1 Mixed Content: The page at 'https://www.gstatic.com/cast/sdk/default_receiver/1.0/app.html?skin' was loaded over HTTPS, but requested an insecure video 'http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4'. This content should also be served over HTTPS.
2app.html?skin:1 Mixed Content: The page at 'https://www.gstatic.com/cast/sdk/default_receiver/1.0/app.html?skin' was loaded over HTTPS, but requested an insecure image 'http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4_thumb.jpg'. This content should also be served over HTTPS.
cast_receiver_framework.js:105 [ 1.604s] [cast.receiver.MediaManager] Buffering state changed, isPlayerBuffering: true old time: 0 current time: 0
cast_receiver_framework.js:105 [ 1.605s] [cast.receiver.MediaManager] Sending broadcast status message
cast_receiver_framework.js:105 [ 1.614s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"*:*","data":"{\"type\":\"MEDIA_STATUS\",\"status\":[{\"mediaSessionId\":1,\"playbackRate\":1,\"playerState\":\"BUFFERING\",\"currentTime\":0,\"supportedMediaCommands\":274447,\"volume\":{\"level\":1,\"muted\":false},\"currentItemId\":1,\"repeatMode\":\"REPEAT_OFF\"}],\"requestId\":0}"}
cast_receiver_framework.js:105 [ 3.389s] [cast.receiver.MediaManager] Metadata loaded
cast_receiver_framework.js:105 [ 3.401s] [cast.framework.common.IdleTimeoutManager] onPlayerLoadComplete
cast_receiver_framework.js:105 [ 3.425s] [cast.receiver.MediaManager] Sending broadcast status message
cast_receiver_framework.js:105 [ 3.434s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"*:*","data":"{\"type\":\"MEDIA_STATUS\",\"status\":[{\"mediaSessionId\":1,\"playbackRate\":1,\"playerState\":\"PAUSED\",\"currentTime\":2.125137,\"supportedMediaCommands\":274447,\"volume\":{\"level\":1,\"muted\":false},\"activeTrackIds\":[],\"media\":{\"contentId\":\"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4\",\"streamType\":\"BUFFERED\",\"contentType\":\"video/mp4\",\"metadata\":{\"type\":2,\"metadataType\":2,\"title\":\"On Our Selection\",\"images\":[{\"url\":\"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4_thumb.jpg\"}],\"subtitle\":\"On Our Selection\"},\"mediaCategory\":\"VIDEO\",\"duration\":6114.16,\"tracks\":[{\"trackId\":1,\"type\":\"VIDEO\"}],\"breakClips\":[],\"breaks\":[]},\"currentItemId\":1,\"items\":[{\"itemId\":1,\"media\":{\"contentId\":\"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4\",\"streamType\":\"BUFFERED\",\"contentType\":\"video/mp4\",\"metadata\":{\"type\":2,\"metadataType\":2,\"title\":\"On Our Selection\",\"images\":[{\"url\":\"http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4_thumb.jpg\"}],\"subtitle\":\"On Our Selection\"},\"duration\":6114.16},\"autoplay\":false,\"orderId\":0}],\"repeatMode\":\"REPEAT_OFF\"}],\"requestId\":673717579}"}
app.html?skin:1 Mixed Content: The page at 'https://www.gstatic.com/cast/sdk/default_receiver/1.0/app.html?skin' was loaded over HTTPS, but requested an insecure image 'http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4_thumb.jpg'. This content should also be served over HTTPS.
app.html?skin:1 Mixed Content: The page at 'https://www.gstatic.com/cast/sdk/default_receiver/1.0/app.html?skin' was loaded over HTTPS, but requested an insecure video 'http://10.0.0.6/mp4library/MOVIES/DadAndDave-OnOurSelection.mp4'. This content should also be served over HTTPS.
cast_receiver_framework.js:105 [ 3.645s] [cast.framework.common.IdleTimeoutManager] onPlayerIdle
cast_receiver_framework.js:105 [ 3.649s] [cast.framework.media.Player] player event: error
cast_receiver_framework.js:105 [ 3.662s] [cast.framework.media.Player] reset()
cast_receiver_framework.js:105 [ 3.669s] [cast.framework.media.Player] endInternal()
cast_receiver_framework.js:105 [ 3.693s] [cast.receiver.TextTracksManager] Disposed TextTracksManager
cast_receiver_framework.js:105 [ 3.696s] [cast.receiver.MediaManager] Sending broadcast status message
cast_receiver_framework.js:105 [ 3.719s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"*:*","data":"{\"type\":\"MEDIA_STATUS\",\"status\":[{\"mediaSessionId\":1,\"playbackRate\":1,\"playerState\":\"IDLE\",\"currentTime\":0,\"supportedMediaCommands\":274447,\"volume\":{\"level\":1,\"muted\":false},\"currentItemId\":1,\"idleReason\":\"ERROR\"}],\"requestId\":0}"}
cast_receiver_framework.js:105 [ 3.748s] [cast.framework.media.EmbeddedPlayer] ended
cast_receiver_framework.js:105 [ 3.752s] [cast.framework.common.IdleTimeoutManager] onPlayerIdle
cast_receiver_framework.js:105 [ 3.753s] [cast.framework.common.IdleTimeoutManager] state is already set to idle due to no_media
cast_receiver_framework.js:105 [ 3.754s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender","data":"{\"type\":\"setappstate\",\"statusText\":\"\"}"}
from castvideos-chrome.
it does work.
from castvideos-chrome.
Related Issues (20)
- Question: multiple players handling HOT 3
- [Deprecation] Errors for M73 ( March 2019 ) HOT 3
- Initialization in Vue.js
- Initialization and transmission of video stream HOT 1
- issue
- integration with react(chrome cast) HOT 2
- Cast button does not show when using application id. HOT 2
- Is it working with Cordova? HOT 2
- Builtin chrome cast button casts the video HOT 1
- No re-connection on page refresh HOT 1
- Cast button doesn't appear on mobile HOT 3
- Chromebook - Fails to load - cast is not defined HOT 2
- Wish-list: Chromecast Audio example HOT 1
- Media Sample URLs using http scheme
- Detect ChromeCast available receivers in JS
- DEFAULT_MEDIA_RECEIVER_APP_ID doesn't work while C0868879 does
- [Cast Docs] Codelab HOT 1
- Cast button not showing up for Custom Receiver or Styled Media Receiver Applications HOT 2
- Googlecast not working with AES 128 encryption without IV
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from castvideos-chrome.