Code Monkey home page Code Monkey logo

hypervideo's Introduction

Hypervideo is a displayed video stream that contains embedded, user-clickable anchors allowing navigation between video and other hypermedia elements.Hypervideo thus combines video with a non linear information structure, allowing a user to make choices based on the content of the video and the user's interests.

The whole project consists of two parts: a hyper linking tool for video and a video player to interactive with hypervideos. One hyperlink should be a connection of 2 videos. One is primary video, which users will be watching; the other is secondary video, which is the link target of a hyperlink. Therefore, in order to create one hyperlink, the tool should load in these two videos, create a area in the primary video and then save it into file. As to the hyperlink video player, it should not only play the audio and images, but also load in the bounded hyperlink file and show the user-clickable area in specific frames during playing. Once user click that area, it will automatically play the linked target video from a specific frame. This target video can also have hyperlinks. So the whole thing is like hypertext on the website. your click one, jump to another webpage and can click new ones.

This project is implemented in C++, using Qt library. Qt is more than a UI creator, but a event-driven programming library. I am still studying its "slot and signal" mechanism, similar to that in Boost. It is really amazing and powerful.

hypervideo's People

Contributors

qqibrow avatar

Watchers

 avatar  avatar

hypervideo's Issues

multithread issue

Qt is kind of event-driven programming. Seems that every widget is a thread and they communicate by the signal and slot mechanism. Sometimes it really piss you off when your come across some synchronization problem and you didn't know where is wrong. I just need to better know the framework of qt and make a draft of all the communication between different threads.

show all defined blocks on one frame

when going to one frame of the video, it should show all existing blocks defined by the user
the callback maybe:

view.drawAllBlocks() -> session.getAllRelatedBlocks(frameNo) -> hyperlink.getKeyframe(keyframeNo)

block duplicate

every hyperlink can only have one block on specific frame, when add new key frame to the hyperlink, it should check whether the key frame already exist. if exist, ask whether user want to update the key frame.

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.