I am new in multimedia analysis area.
Recently, I am working on a project which is built on AngularJS and Flask framework and I want to realize the following functions in our website:
For now, I have searched several tools like JWPlayer, FFMpeg. But I really have no idea on how to use them and whether they are the best tools for these requirements. I was wondering if you might be able to give me some advice.
[Update on 2015 Dec 10]
I have made a progress bar by JavaScript and it can satisfied the 3rd requirement, so the video analysis part becomes the toughest one. I also find some other tools or libraries like Video.js, OpenCV, VLC etc. Can anyone give some advice on open source video analysis tools? It would be better if it works well with Python server.
Thank you.
For the keyframe snapshot you can use a plugin like https://jwplayer.electroteque.org/snapshot
There are other ways to take a snapshot but they're not terribly easy.
If you are kicking back a file that users can download, FFMpeg is one of the very few options, if you're interested in creating server-side code to manipulate video files. You could also use Flip Factory, Carbon Coder, or even better -- encoding.com
Alternatively, you can just use JW Player's API to load which videos you want at the specific times. ie:
jwplayer('yourDiv').pause();
jwplayer('yourDiv').setup({ file: secondfile.mp4 });
jwplayer('yourDiv').seek(seekVariable);
etc...
Another option is to use http://popcornjs.org/ which gives you some more flexibility in manipulating the native HTML5 video element, allowing you to fire events off at specific time markers, like in this really cool demo which shows just one powerful way it can be implemented. Though not quite what you might need, it's something to keep in mind. http://hello.processing.org/editor/
(Edit) For more information...
To get ffmpeg installed and running: http://www.hongkiat.com/blog/ffmpeg-guide/
To create your own video player: https://github.com/chelyaev/ffmpeg-tutorial
Official docs: https://ffmpeg.org/documentation.html
Encoding tutorial: https://www.virag.si/2012/01/web-video-encoding-tutorial-with-ffmpeg-0-9/
Awesome tutorial for creating a hover scrub preview of your video: https://www.binpress.com/tutorial/how-to-generate-video-previews-with-ffmpeg/138 and demo: http://jsfiddle.net/r6wz0nz6/2/
Also be aware of the big fork in the community, Libav, which is another option I believe: http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html