Frame accurate video client in the browser

HTML5-Javascript video player designed with the goal to provide the same UX (user experience) as the ones integrated in the broadcast video editors.
Test it yourself: Click here

Note: The audio in this test is processed using fs = 44.1Khz, if the audioContext of your browser uses another fs the audio will be deactivated (see list of future improvments :-) )

Introduction

Goals

Examples

Description

Blocks diagram
Figure 1: Block diagram.

Backend process

Video transcoding
Figure 2: Video transcoding.

Audio compensation at the beginning of the file
Figure 3: Audio compensation at the beginning of the file.

{
    "video": {
        "num_frames": 781,
        "base_frame_path": "../../media/transcoded/scrubbingTestV3/854x480/video",
        "base_file_name": "test1v_q14_",
        "num_digits_frame": 5,
        "frame_ext": ".jpg",
        "fps": 30
    },
    "audio": {
        "num_frames": 781,
        "base_frame_path": "../../media/transcoded/scrubbingTestV3/854x480/audio",
        "base_file_name": "test1a_",
        "num_digits_frame": 5,
        "frame_ext": ".wav",
        "sample_rate": 44100,
        "channels": 2,
        "bit_per_sample": 16,
        "sample_type": "signed"
    },
    "metadata": {
        "0": {
            "smpte_tc": 108000
        },
        "204": {
            "smpte_tc": 108204,
            "cue_info": {
                "info": "scene change",
                "mean": "152",
                "stddev": "72.2"
            }
        },
        "414": {
            "smpte_tc": 108414,
            "cue_info": {
                "info": "scene change",
                "mean": "110",
                "stddev": "72.4"
            }
        }
    }
}
Figure 4: Example of generated manifest.

Testing

Future work

Notes