GithubHelp home page GithubHelp logo

ou_hbbtv_screen_reading's Introduction

Update 2021

Originally I included here the code for my experimental part of my dissertation.

An Accessibility Evaluation of Screen Readers On the Hybrid Broadcast Broadband Television System

The primary aim was to investigate how the WCAG specification could be used to assess accessibility when applied to similar technologies within a new product and environment.

My conclusion was that using a process like Brajnik's Barrier assessment method, which maps to the WCAG guidelines, the defined barriers could be adjusted to the new environment to assess accessibility transfer.

The application I used for the experiment was not however, without its difficulties. The browser, ported to the product tested, had a few issues with regards to the web speech API, and to complete some of the testing by using a web socket connection to an external linux PC, which provided the actual speech.

I had done my initial assessment using Firefox, which worked well, but not all browsers are born equal, and the problems I experienced are still present in the other browser used.

I have also noticed a recent trend in the broadcast field is to use server provided speech for applications, such as HBBTV applications.

I will update the code over the next few weeks to support HTML5, and add the final code included in my dissertation. I would like to investigate using firefox, or perhaps looking at the C.E.F project, what can be achieved these days using the Web Speech API. My idea would be to create a JS library anyone could include on a page to speak, based on the existing ARIA tags. This is also itself a interesting problem, as mapping of HTML5, redraws etc will have a large impact on the reader.

Notes on some of the tests:-

The applications here were used to investigate HBBTV application accessbility. Note the timebased media test video is not present. This expects an MPEG Dash stream, and was removed because of its size.

Creating MPEG DAsh file: Installation I installed both ffmpeg and MP4box on Fedora 28, but suspect the installation is similar on Ubuntu or other Brown brands.

MP4Box:-

 $>mkdir gpac;
 
 $>git clone https://github.com/gpac/gpac.git;
 
 $>cd gpac;
 $>./configure --static-mp4box --use-zlib=no;
 
 $>make -j4;
 
 $>sudo make install;

Note install anything found missing by configure.

ffmpeg:-

$>sudo dnf install ffmpeg;

Note for fedora I also update VLC as the version i'd previously installed had problems playing DASH.

vlc (Optional):-

$>git clone git://git.videolan.org/vlc.git

$>cd vlc && ./bootstrap

$>sudo dnf install deepin-gettext-tools //identfied as missing my the bootstrap script

$>sudo dnf install flex //identified as missing my the bootstrap script

$>sudo dnf install lua //identified as missing my the bootstrap script

$>sudo dnf install lua-devel //identified as missing my the bootstrap script

$>./configure;

$>sudo make install;

$>vlc --adaptive-use-access  ./manifest.mpd //to run

Creation:- I Downloaded MP4 content from Blender, other formats can be used, I used the information found at radioanmediaplayer with a slight change to make the available aac lib work.

$>ffmpeg -i 02_gran_dillama_1080p.mp4 -s 640x360 -c:v libx264 -b:v 650k -r 24 -x264opts keyint=48:min-keyint=48:no-scenecut -profile:v main -preset fast -movflags +faststart -c:a aac -b:a 128k -ac 2 out-low.mp4

$>ffmpeg -i 02_gran_dillama_1080p.mp4 -s 960x540 -c:v libx264 -b:v 1400k -r 24 -x264opts keyint=48:min-keyint=48:no-scenecut -profile:v main -preset fast -movflags +faststart -c:a aac -b:a 128k -ac 2 out-med.mp4

$>ffmpeg -i 02_gran_dillama_1080p.mp4 -s 1280x720 -c:v libx264 -b:v 2500k -r 24 -x264opts keyint=48:min-keyint=48:no-scenecut -profile:v main -preset fast -movflags +faststart -c:a aac -b:a 128k -ac 2 out-high.mp4

$>ffmpeg -i 02_gran_dillama_1080p.mp4 -s 1920x1080 -c:v libx264 -b:v 5500k -r 24 -x264opts keyint=48:min-keyint=48:no-scenecut -profile:v main -preset fast -movflags +faststart -c:a aac -b:a 128k -ac 2 out-max.mp4

This should create streams with frames aligned to support seamless switching. To segment and create the MPD file

$>MP4Box -dash 4000 -rap -bs-switching no -profile live -out manifest.mpd out-low.mp4#audio out-low.mp4#video out-med.mp4#video out-high.mp4#video

created MPD file:-

<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 0.7.2-DEV-rev625-gc956332c8-master  at 2018-08-01T10:02:14.485Z-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500S" type="static" mediaPresentationDuration="PT0H2M26.048S" maxSegmentDuration="PT0H0M6.000S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
 <ProgramInformation moreInformationURL="http://gpac.io">
  <Title>manifest.mpd generated by GPAC</Title>
 </ProgramInformation>
 <Period duration="PT0H2M26.048S">
  <AdaptationSet segmentAlignment="true" lang="eng">
   <Representation id="1" mimeType="audio/mp4" codecs="mp4a.40.2" startWithSAP="1" bandwidth="128670">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <SegmentTemplate media="out-low_dash_track2_$Number$.m4s" timescale="48000" startNumber="1" duration="192000" initialization="out-low_dash_track2_init.mp4"/>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720" maxFrameRate="24" par="16:9" lang="eng">
   <Representation id="2" mimeType="video/mp4" codecs="avc1.4D401E" width="640" height="360" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="654707">
    <SegmentTemplate media="out-low_dash_track1_$Number$.m4s" timescale="12288" startNumber="1" duration="49152" initialization="out-low_dash_track1_init.mp4"/>
   </Representation>
   <Representation id="3" mimeType="video/mp4" codecs="avc1.4D401F" width="960" height="540" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="1407767">
    <SegmentTemplate media="out-med_dash_track1_$Number$.m4s" timescale="12288" startNumber="1" duration="49152" initialization="out-med_dash_track1_init.mp4"/>
   </Representation>
   <Representation id="4" mimeType="video/mp4" codecs="avc1.4D401F" width="1280" height="720" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="2513904">
    <SegmentTemplate media="out-high_dash_track1_$Number$.m4s" timescale="12288" startNumber="1" duration="49152" initialization="out-high_dash_track1_init.mp4"/>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

ou_hbbtv_screen_reading's People

Contributors

jontbell40 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.