Hi,

When testing DASH video playback with Lightning App running on Webkit browser, black screen is observed for some seconds when video player is switching from a lower bit rate stream to a higher bit rate stream.

Is there any config to prevent the black screen?

Thanks.


Branch: rdkv-20200207

Device: Raspberry Pi

Build config: meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-hybrid-thunder.conf

  • No labels

11 Comments

  1. Hi Percy,

    Can you please provide more detail about the Lightning application & how you're launching it.

    Is it using video tags to play the stream & is this issue consistently observed?


    Thanks

    Ganesh

  2. Hi Ganesh,

    The Lightning App is launched by providing video url to WebKitBrowser in controller UI, similar to this guide:
    https://wiki.rdkcentral.com/display/RDK/RDK-V+Thunder+Framework+User+Guide+-+Beta+Version


    The Lightning App uses video tag to play the stream, and it is similar to following:

    <html>
    	<body>
    		<canvas width="1920" height="1080">
    		<video id="video-player" src="https://video-url.com/manifest.mpd"></video>
    	</body>
    </html>


    And here is the video manifest:

    <?xml version="1.0" encoding="UTF-8" ?>
    <MPD profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediaPresentationDuration="PT30.0S" minBufferTime="PT4.0S" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
    	<Period id="0" start="PT0S" duration="PT30S">
    		<AdaptationSet mimeType="video/mp4" startWithSAP="1" segmentAlignment="true">
    			<SegmentTemplate timescale="10000000" presentationTimeOffset="0" media="$RepresentationID$/Segment-$Time$.m4v" initialization="$RepresentationID$/init.m4i">
    				<SegmentTimeline>
    					<S t="0" d="40000000" r="6" />
    					<S t="280000000" d="20000000" />
    				</SegmentTimeline>
    			</SegmentTemplate>
    			<Representation width="320" height="240" frameRate="15/2" codecs="avc1.428029" scanType="progressive" id="stream_0" bandwidth="92000" />
    			<Representation width="320" height="240" frameRate="15" codecs="avc1.4d4029" scanType="progressive" id="stream_1" bandwidth="500000" />
    			<Representation width="480" height="360" frameRate="15" codecs="avc1.4d4029" scanType="progressive" id="stream_2" bandwidth="750000" />
    			<Representation width="640" height="480" frameRate="15" codecs="avc1.4d4029" scanType="progressive" id="stream_3" bandwidth="1200000" />
    			<Representation width="640" height="480" frameRate="30" codecs="avc1.640029" scanType="progressive" id="stream_4" bandwidth="2500000" />
    		</AdaptationSet>
    		<AdaptationSet mimeType="audio/mp4" startWithSAP="1" lang="eng" segmentAlignment="true">
    			<SegmentTemplate timescale="10000000" presentationTimeOffset="0" media="$RepresentationID$/Segment-$Time$.m4a" initialization="$RepresentationID$/init.m4i">
    				<SegmentTimeline>
    					<S t="162777" d="40106667" r="1" />
    					<S t="80376111" d="39680000" />
    					<S t="120056111" d="40106666" />
    					<S t="160162777" d="40106667" r="1" />
    					<S t="240376111" d="39680000" />
    					<S t="280056111" d="18346666" />
    				</SegmentTimeline>
    			</SegmentTemplate>
    			<Representation audioSamplingRate="48000" codecs="mp4a.40.5" id="stream_5" bandwidth="40000" />
    		</AdaptationSet>
    	</Period>
    </MPD>


    This issue is observed consistently, a few seconds of black screen is observed every time when switching stream.


    Regards,
    Percy


  3. Lightning SDK has media player plugin to play videos. The code snippet you mentioned doesn't seem to be using that.
    Please refer to : https://webplatformforembedded.github.io/Lightning-SDK/#/plugins/mediaplayer for more details.

    1. Hi Deepthi Suseelan,


      The code snippet was showing the html built by Lightning SDK.

      We are already using Media Player from Lightning SDK

      The following code shows how we configure and open a video URL, which is the same as the page you mentioned

      this.tag('MediaPlayer').updateSettings({consumer: this})
      this.tag('MediaPlayer').open(videoUrl)


      Regards,

      Percy

  4. Hi Z-Percy Tse

    Checked with the Dev team and they use dash.js to play DASH content instead of video tag. Recommend you to try dash.js for this scenario.

    1. Hi Deepthi Suseelan

      Thanks for the information and I will try dash.js

    2. Hi Deepthi Suseelan

      I used dash.js to play DASH on Raspberry Pi.

      1-2 seconds of black screen is still observed when switching stream with different bitrate.

      DASH Stream tested:

      http://www.bok.net/dash/tears_of_steel/cleartext/stream.mpd

  5. Z-Percy Tse

    We tried to recreate the scenario in RPi and we did notice an intermittent black screen  issue with dash js. (video attached) - Is this the same issue which you are seeing?

     VID_20200424_150118232.mp4


    1. Hi Deepthi Suseelan

      Yes, it is the same issue.

      Thanks.

  6. Z-Percy Tse

    We checked on multiple platforms and saw that issue is specific to Rapsberry-pi.  It doesnt appear on other platforms. It will require more debugging to analyse root cause of the issue in RPi, meanwhile if you have any other platforms, I suggest you to check with that. Please raise a support ticket at https://jira.rdkcentral.com/ if required for the issue analysis in RPi

    1. Hi Deepthi Suseelan

      Thanks for the information.