gnome-shell-extension-cast-to-tv icon indicating copy to clipboard operation
gnome-shell-extension-cast-to-tv copied to clipboard

Black screen (audio and subs work)

Open JosephScript opened this issue 2 years ago • 2 comments

I'm able to cast to my Chromecast plugged into my TV, there is sound and I can see the subtitles, however the video is a black screen. I have made sure all NPM modules are installed, checked that ffmpeg and ffprobe are also installed and in the correct paths.

Ubuntu 20.04.3 LTS 64-bit Gnome 3.36.8 CPU: Intel® Core™ i7-10750H CPU @ 2.60GHz × 12 GPU: NVIDIA Corporation / NVIDIA GeForce RTX 2070/PCIe/SSE2 Using NVIDIA driver metapackage from nvidia-driver-470 (proprierary, tested)

Here is an example of a few seconds of the stream in debug mode:

Debug Output:

DEBUG=bridge,chromecast* node server
  bridge Full playlist: ["/home/joseph/Videos/video.720p.mkv"] +0ms
  bridge New selection contents: {"streamType":"VIDEO","subsPath":"","filePath":"/home/joseph/Videos/video.720p.mkv"} +1ms
  bridge Processing video file... +1ms
  bridge Found reusable subtitles file +2ms
  bridge File processed successfully +0ms
  chromecast NEW SELECTION +0ms
  chromecast Generated new session id: 85oxFdj2U4 +13ms
  chromecast Media title: Video 720p +0ms
  chromecast Setting media: {"contentId":"http://192.168.86.23:4000/cast?session=85oxFdj2U4","contentType":"video/*","streamType":"BUFFERED","metadata":{"metadataType":1,"images":[{"url":""}],"title":"Video 720p"},"textTrackStyle":{"backgroundColor":"#00000000","foregroundColor":"#FFFFFFFF","edgeType":"OUTLINE","edgeColor":"#000000FF","fontScale":"1.0","fontStyle":"NORMAL","fontFamily":"Droid Sans","fontGenericFamily":"SANS_SERIF","windowType":"NONE"},"tracks":[{"trackId":1,"type":"TEXT","trackContentType":"text/vtt","name":"Subtitles","subtype":"SUBTITLES","trackContentId":"http://192.168.86.23:4000/subswebplayer?session=85oxFdj2U4"}]} +0ms
  chromecast Setting opts: {"autoplay":false,"activeTrackIds":[1],"name":"b0c71ef4-2768-809b-2338-da41131a8be5.local","ip":null} +0ms
  chromecast Casting... +1ms
  chromecast-controller Player check: inactive +0ms
  chromecast-controller Starting new cast session... +0ms
  chromecast-controller Searching for device: b0c71ef4-2768-809b-2338-da41131a8be5.local +0ms
  chromecast-controller Found device ip: 192.168.86.33 +366ms
  chromecast-controller Player check: active +2s
  chromecast-controller Loaded new media in current session +724ms
  chromecast Cast started +3s
  chromecast Starting delayed playback... +2ms
  chromecast Obtained volume value: 1 +15ms
  chromecast:status Got Chromecast status +0ms
  chromecast:status {
  chromecast:status   mediaSessionId: 1,
  chromecast:status   playbackRate: 1,
  chromecast:status   playerState: 'PAUSED',
  chromecast:status   currentTime: 0.003,
  chromecast:status   supportedMediaCommands: 12303,
  chromecast:status   volume: { level: 1, muted: false },
  chromecast:status   activeTrackIds: [ 1 ],
  chromecast:status   currentItemId: 1,
  chromecast:status   repeatMode: 'REPEAT_OFF'
  chromecast:status } +0ms
  chromecast:status Got Chromecast status +2s
  chromecast:status {
  chromecast:status   mediaSessionId: 1,
  chromecast:status   playbackRate: 1,
  chromecast:status   playerState: 'BUFFERING',
  chromecast:status   currentTime: 0.003,
  chromecast:status   supportedMediaCommands: 12303,
  chromecast:status   volume: { level: 1, muted: false },
  chromecast:status   activeTrackIds: [ 1 ],
  chromecast:status   currentItemId: 1,
  chromecast:status   repeatMode: 'REPEAT_OFF'
  chromecast:status } +0ms
  chromecast Playback started +3s
  chromecast Started status interval +1ms
  chromecast:status Got Chromecast status +453ms
  chromecast:status {
  chromecast:status   mediaSessionId: 1,
  chromecast:status   playbackRate: 1,
  chromecast:status   playerState: 'PLAYING',
  chromecast:status   currentTime: 0.43217,
  chromecast:status   supportedMediaCommands: 12303,
  chromecast:status   volume: { level: 1, muted: false },
  chromecast:status   activeTrackIds: [ 1 ],
  chromecast:status   currentItemId: 1,
  chromecast:status   repeatMode: 'REPEAT_OFF'
  chromecast:status } +0ms
  chromecast:status Got Chromecast status +585ms
  chromecast:status {
  chromecast:status   mediaSessionId: 1,
  chromecast:status   playbackRate: 1,
  chromecast:status   playerState: 'PLAYING',
  chromecast:status   currentTime: 0.985444,
  chromecast:status   supportedMediaCommands: 12303,
  chromecast:status   volume: { level: 1, muted: false },
  chromecast:status   activeTrackIds: [ 1 ],
  chromecast:status   media: {
  chromecast:status     contentId: 'http://192.168.86.23:4000/cast?session=85oxFdj2U4',
  chromecast:status     contentType: 'video/*',
  chromecast:status     streamType: 'BUFFERED',
  chromecast:status     metadata: {
  chromecast:status       metadataType: 1,
  chromecast:status       images: [Array],
  chromecast:status       title: 'Video 720p'
  chromecast:status     },
  chromecast:status     textTrackStyle: {
  chromecast:status       backgroundColor: '#00000000',
  chromecast:status       foregroundColor: '#FFFFFFFF',
  chromecast:status       edgeType: 'OUTLINE',
  chromecast:status       edgeColor: '#000000FF',
  chromecast:status       fontScale: '1.0',
  chromecast:status       fontStyle: 'NORMAL',
  chromecast:status       fontFamily: 'Droid Sans',
  chromecast:status       fontGenericFamily: 'SANS_SERIF',
  chromecast:status       windowType: 'NONE'
  chromecast:status     },
  chromecast:status     tracks: [ [Object], [Object] ],
  chromecast:status     mediaCategory: 'VIDEO',
  chromecast:status     duration: 1311.069,
  chromecast:status     breakClips: [],
  chromecast:status     breaks: []
  chromecast:status   },
  chromecast:status   currentItemId: 1,
  chromecast:status   items: [
  chromecast:status     {
  chromecast:status       itemId: 1,
  chromecast:status       media: [Object],
  chromecast:status       autoplay: false,
  chromecast:status       activeTrackIds: [Array],
  chromecast:status       orderId: 0
  chromecast:status     }
  chromecast:status   ],
  chromecast:status   repeatMode: 'REPEAT_OFF'
  chromecast:status } +1ms
  chromecast:status Got Chromecast status +984ms
  chromecast:status {
  chromecast:status   mediaSessionId: 1,
  chromecast:status   playbackRate: 1,
  chromecast:status   playerState: 'PLAYING',
  chromecast:status   currentTime: 2.006414,
  chromecast:status   supportedMediaCommands: 12303,
  chromecast:status   volume: { level: 1, muted: false },
  chromecast:status   activeTrackIds: [ 1 ],
  chromecast:status   media: {
  chromecast:status     contentId: 'http://192.168.86.23:4000/cast?session=85oxFdj2U4',
  chromecast:status     contentType: 'video/*',
  chromecast:status     streamType: 'BUFFERED',
  chromecast:status     metadata: {
  chromecast:status       metadataType: 1,
  chromecast:status       images: [Array],
  chromecast:status       title: 'Video 720p'
  chromecast:status     },
  chromecast:status     textTrackStyle: {
  chromecast:status       backgroundColor: '#00000000',
  chromecast:status       foregroundColor: '#FFFFFFFF',
  chromecast:status       edgeType: 'OUTLINE',
  chromecast:status       edgeColor: '#000000FF',
  chromecast:status       fontScale: '1.0',
  chromecast:status       fontStyle: 'NORMAL',
  chromecast:status       fontFamily: 'Droid Sans',
  chromecast:status       fontGenericFamily: 'SANS_SERIF',
  chromecast:status       windowType: 'NONE'
  chromecast:status     },
  chromecast:status     tracks: [ [Object], [Object] ],
  chromecast:status     mediaCategory: 'VIDEO',
  chromecast:status     duration: 1311.069,
  chromecast:status     breakClips: [],
  chromecast:status     breaks: []
  chromecast:status   },
  chromecast:status   currentItemId: 1,
  chromecast:status   items: [
  chromecast:status     {
  chromecast:status       itemId: 1,
  chromecast:status       media: [Object],
  chromecast:status       autoplay: false,
  chromecast:status       activeTrackIds: [Array],
  chromecast:status       orderId: 0
  chromecast:status     }
  chromecast:status   ],
  chromecast:status   repeatMode: 'REPEAT_OFF'
  chromecast:status } +0ms
  chromecast:status Got Chromecast status +1s
  chromecast:status {
  chromecast:status   mediaSessionId: 1,
  chromecast:status   playbackRate: 1,
  chromecast:status   playerState: 'PLAYING',
  chromecast:status   currentTime: 2.879155,
  chromecast:status   supportedMediaCommands: 12303,
  chromecast:status   volume: { level: 1, muted: false },
  chromecast:status   activeTrackIds: [ 1 ],
  chromecast:status   media: {
  chromecast:status     contentId: 'http://192.168.86.23:4000/cast?session=85oxFdj2U4',
  chromecast:status     contentType: 'video/*',
  chromecast:status     streamType: 'BUFFERED',
  chromecast:status     metadata: {
  chromecast:status       metadataType: 1,
  chromecast:status       images: [Array],
  chromecast:status       title: 'Video 720p'
  chromecast:status     },
  chromecast:status     textTrackStyle: {
  chromecast:status       backgroundColor: '#00000000',
  chromecast:status       foregroundColor: '#FFFFFFFF',
  chromecast:status       edgeType: 'OUTLINE',
  chromecast:status       edgeColor: '#000000FF',
  chromecast:status       fontScale: '1.0',
  chromecast:status       fontStyle: 'NORMAL',
  chromecast:status       fontFamily: 'Droid Sans',
  chromecast:status       fontGenericFamily: 'SANS_SERIF',
  chromecast:status       windowType: 'NONE'
  chromecast:status     },
  chromecast:status     tracks: [ [Object], [Object] ],
  chromecast:status     mediaCategory: 'VIDEO',
  chromecast:status     duration: 1311.069,
  chromecast:status     breakClips: [],
  chromecast:status     breaks: []
  chromecast:status   },
  chromecast:status   currentItemId: 1,
  chromecast:status   items: [
  chromecast:status     {
  chromecast:status       itemId: 1,
  chromecast:status       media: [Object],
  chromecast:status       autoplay: false,
  chromecast:status       activeTrackIds: [Array],
  chromecast:status       orderId: 0
  chromecast:status     }
  chromecast:status   ],
  chromecast:status   repeatMode: 'REPEAT_OFF'
  chromecast:status } +1ms
  chromecast:status Got Chromecast status +1s
  chromecast:status {
  chromecast:status   mediaSessionId: 1,
  chromecast:status   playbackRate: 1,
  chromecast:status   playerState: 'PLAYING',
  chromecast:status   currentTime: 4.09406,
  chromecast:status   supportedMediaCommands: 12303,
  chromecast:status   volume: { level: 1, muted: false },
  chromecast:status   activeTrackIds: [ 1 ],
  chromecast:status   media: {
  chromecast:status     contentId: 'http://192.168.86.23:4000/cast?session=85oxFdj2U4',
  chromecast:status     contentType: 'video/*',
  chromecast:status     streamType: 'BUFFERED',
  chromecast:status     metadata: {
  chromecast:status       metadataType: 1,
  chromecast:status       images: [Array],
  chromecast:status       title: 'Video 720p'
  chromecast:status     },
  chromecast:status     textTrackStyle: {
  chromecast:status       backgroundColor: '#00000000',
  chromecast:status       foregroundColor: '#FFFFFFFF',
  chromecast:status       edgeType: 'OUTLINE',
  chromecast:status       edgeColor: '#000000FF',
  chromecast:status       fontScale: '1.0',
  chromecast:status       fontStyle: 'NORMAL',
  chromecast:status       fontFamily: 'Droid Sans',
  chromecast:status       fontGenericFamily: 'SANS_SERIF',
  chromecast:status       windowType: 'NONE'
  chromecast:status     },
  chromecast:status     tracks: [ [Object], [Object] ],
  chromecast:status     mediaCategory: 'VIDEO',
  chromecast:status     duration: 1311.069,
  chromecast:status     breakClips: [],
  chromecast:status     breaks: []
  chromecast:status   },
  chromecast:status   currentItemId: 1,
  chromecast:status   items: [
  chromecast:status     {
  chromecast:status       itemId: 1,
  chromecast:status       media: [Object],
  chromecast:status       autoplay: false,
  chromecast:status       activeTrackIds: [Array],
  chromecast:status       orderId: 0
  chromecast:status     }
  chromecast:status   ],
  chromecast:status   repeatMode: 'REPEAT_OFF'
  chromecast:status } +0ms
  chromecast:status Got Chromecast status +913ms
  chromecast:status {
  chromecast:status   mediaSessionId: 1,
  chromecast:status   playbackRate: 1,
  chromecast:status   playerState: 'PLAYING',
  chromecast:status   currentTime: 4.958411,
  chromecast:status   supportedMediaCommands: 12303,
  chromecast:status   volume: { level: 1, muted: false },
  chromecast:status   activeTrackIds: [ 1 ],
  chromecast:status   media: {
  chromecast:status     contentId: 'http://192.168.86.23:4000/cast?session=85oxFdj2U4',
  chromecast:status     contentType: 'video/*',
  chromecast:status     streamType: 'BUFFERED',
  chromecast:status     metadata: {
  chromecast:status       metadataType: 1,
  chromecast:status       images: [Array],
  chromecast:status       title: 'Video 720p'
  chromecast:status     },
  chromecast:status     textTrackStyle: {
  chromecast:status       backgroundColor: '#00000000',
  chromecast:status       foregroundColor: '#FFFFFFFF',
  chromecast:status       edgeType: 'OUTLINE',
  chromecast:status       edgeColor: '#000000FF',
  chromecast:status       fontScale: '1.0',
  chromecast:status       fontStyle: 'NORMAL',
  chromecast:status       fontFamily: 'Droid Sans',
  chromecast:status       fontGenericFamily: 'SANS_SERIF',
  chromecast:status       windowType: 'NONE'
  chromecast:status     },
  chromecast:status     tracks: [ [Object], [Object] ],
  chromecast:status     mediaCategory: 'VIDEO',
  chromecast:status     duration: 1311.069,
  chromecast:status     breakClips: [],
  chromecast:status     breaks: []
  chromecast:status   },
  chromecast:status   currentItemId: 1,
  chromecast:status   items: [
  chromecast:status     {
  chromecast:status       itemId: 1,
  chromecast:status       media: [Object],
  chromecast:status       autoplay: false,
  chromecast:status       activeTrackIds: [Array],
  chromecast:status       orderId: 0
  chromecast:status     }
  chromecast:status   ],
  chromecast:status   repeatMode: 'REPEAT_OFF'
  chromecast:status } +1ms
  bridge New remote contents: {"action":"STOP"} +11s
  chromecast Signal from remote. ACTION: STOP +6s
  chromecast:status Got Chromecast status +890ms
  chromecast:status {
  chromecast:status   mediaSessionId: 1,
  chromecast:status   playbackRate: 1,
  chromecast:status   playerState: 'IDLE',
  chromecast:status   currentTime: 0,
  chromecast:status   supportedMediaCommands: 12303,
  chromecast:status   volume: { level: 1, muted: false },
  chromecast:status   currentItemId: 1,
  chromecast:status   idleReason: 'CANCELLED'
  chromecast:status } +0ms
  chromecast Stopped status interval +55ms
  chromecast Closing cast session... +1ms
  chromecast-controller Closing client... +9s
  chromecast-controller Player check: active +0ms
  chromecast-controller Closed client +100ms
  chromecast Session closed +101ms
  chromecast Cast finished! +1ms
^C
Cast to TV: closing node app...
  bridge Closing node server +4s
Cast to TV: closed successfully

JosephScript avatar Oct 21 '21 19:10 JosephScript

This sounds like video is in a format that Chromecast does not support. Have you tried casting with transcode video option?

Rafostar avatar Nov 02 '21 09:11 Rafostar

I think you're probably right. I'll try that.

JosephScript avatar Jan 05 '22 15:01 JosephScript