#Frame Player
A video player without video files, just JSON. Based on "images frames" thought to mobile devices!
- Project Page: http://vagnervjs.github.io/frame-player
##The Problem The problem of today's HTML5 video is that it can't be played in-line on an HTML page on mobile devices. The way the handheld devices handle it is they open the video in a native player which takes over the page itself, making it impossible to implement any interaction while the video is playing. Also, you can't play two videos at the same time.
##The Solution Create a player instead of playing video files, show a sequence of images at a certain rate.
##Instalation
-
Download the latest version of Frame Player.
-
OR Use bower to install Frame Player
bower install frame-player
- Put the script and the style on your page
<link rel="stylesheet" href="path-to/frameplayer.css"> <script src="path-to/frameplayer.js"></script>
##Usage
- Insert this HTML code on any part of your page and set the data-src attribute for your JSON video file
<div id="my-player" class="frameplayer" data-vidsrc="videos/video.json"></div>
- Set the options
var options = ({ 'rate': 30, 'controls': false, 'autoplay': true, 'backwards': false, 'startFrame': 10, 'width': '640px', 'height': '390px', // 'radius': '50%' });
- Init the player
var player = new FramePlayer('my-player', options); player.play();
Methods
Method | Parameters | Returns | Description |
---|---|---|---|
play() | None. | Nothing. | Start playing the video. |
pause() | None. | Nothing. | Pause the current video. |
resume() | None. | Nothing. | Play the current video from the moment it was paused. |
gotoFrame() | Integer. | Nothing. | Jumps to a specific frame of the video. |
##Generating the JSON Video File (ffmpeg lib must be installed)
- Option 1: Node.js - single command ```bash cd converter/nodejs_one node app.js path/to/video/file path/to/video.json/file startTime endTime ``` - Option 2: Node.js - Use ffmpeg to generate the frames from a video file: ```bash ffmpeg -i video.mp4 -an -f image2 "%d.jpg" ``` - Convert all frames on a single JSON file ```bash cd converter/nodejs node app.js frameStart frameEnd folder/to/imgs/ json/video.json ``` - Option 3: PHP - Use ffmpeg to generate the frames from a video file: ```bash ffmpeg -i video.mp4 -an -f image2 "%d.jpg" ``` ```bash cd converter/php php to_data_uri.php frameStart frameEnd folder/to/imgs/ json/video.json ```
Development
In order to run it locally you'll need to fetch some dependencies and a basic setup.
-
Install Gulp:
$ [sudo] npm install --global gulp
-
Install local dependencies:
$ npm install
-
To test your project, start the development server (using your prefered server) and open
http://localhost:8000
.$ python -m SimpleHTTPServer 8080
-
To build the distribution files before releasing a new version.
$ gulp build
-
Send everything to
gh-pages
branch.
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -m 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Author
| --- | --- | --- | --- | --- | --- | --- Vagner Santana
@vagnervjs|
License
- Code is under MIT license © Vagner Santana