This is not some programming question. I am working on a project where I have video files in different formats such as mov, mp4 etc.
My app is built using knockoutjs with html5 and css3.
Our Client requirement is when they play the video and use functionalities like fast forwaard, rewind etc.. there should be no performance issues with the video rendering.
Right now, I am able to render videos properly and fast forward feature works flawlessly with html5, the Issue I am facing is in Rewind, when users hit rewind, videos begin to stutter and lose frames, and to the users here rewind function is very important.
Now I want to make a consistent performance for videos of all formats.
What will be the ideal way of going ahead in order to optimize the video performance on websites.
Any suggestions and help is greatly appreciated.
I'm not sure how you encode your video, but look into optimizing your video keyframes to see if that improves your rewind performance.
Here is a brief overview of how that might help:
http://www.lighterra.com/papers/videoencodingh264/#maximumkeyframeinterval
...we still want enough keyframes that seeking and fast-forwarding
behavior is good, because players can only jump directly to keyframes
"under the hood" during playback, and will usually only display the
keyframes during fast-forwarding and rewinding at higher speeds (at
low speeds such as 2x or 3x they can often play every frame). Jumping
to an arbitrary point in the timeline therefore becomes more sluggish
the fewer keyframes there are, because more intervening delta-frames
need to be decoded just to reconstruct the final target frame, even
though those intervening frames between the previous keyframe and the
target frame won't actually be displayed.
Related
I've put together a movie in Final Cut Pro 10.2.3 with a lot of edits cut to the beat of the audio track. It is synced perfectly when previewed within FCPX but is off by quite a bit after sharing regardless of what settings I choose. I've transcoded all my media and created optimized versions
If you are experiencing a sync problems with FCP, 95% of the time it is because of mixing audio sample rates. Final Cut Pro is having a difficulties in resolving them to match.
Firstly, verify that every audio clip within your Browser has exactly the same sample rate. A bad sign, is if you see a sample rate that is very close to 48,000 Hz, but it's not (for instance 47.998 Hz). Your best friends for preparing audio for sample-precision editing are Apple Logic or discontinued Soundtrack Pro 3.
Secondly, if you have multiple audio formats, transcode them to *.wav.
And only then edit.
I'm dealing with an audio anomalie. I have audio that is mastered quite loud, yet on some systems, it is too quiet. Boosting the audio file anymore causes clipping.
It would be fine, except for the fact that, in my project, a lot of other sounds are in use as well. Lowering the volume of everything to match this would make some stuff impossible to hear. And again, this doesn't happen on all computers, only some.
To compensate, can I boost audio in code? The SoundChannel I'm using is already at 1.0 volume (full), and I know I can't use that property to boost it further. Is there any way to raise the audio further in code?
(I'm using Flash Professional CS5.5, Adobe AIR 3, and ActionScript 3)
After some time, I've concluded that it is apparently not possible to boost sound volume above 1 (that is, to amplify) using Flash's API. While you can set SoundTransform to a number greater than 1, it will coerce to 1 nevertheless.
If anyone has information to the contrary, you are welcome to post the answer and I'll change which answer I've accepted if you solve the problem.
You are correct. Sounds cannot be played at a volume above 1 (100%). However -- You can play two identical sounds simultaneously on different channels. This would effectively give you an audio boost above 1. But depending on the nature of the sound you may get some distortions from synchronization. If you're talking about a sound-effect without a lot of discernable Attack, you may get away with it. If you're talking about speech or percussive sound, your mileage may vary.
I'm trying to figure out what would be the best way to record a blackboard type of application in the webbrowser. Where a tutor can record a video of the blackboard with audio.
I think the obvious answer here is to make a html5 canvas and capture it at intervals as images and combine these to a video. Like so
However this has several disadvantages. It is not easy to edit the video later on. Also videos would require a lot of storage space.
What are your ideas? How can I construct this recording and playback of a blackboard?
/Jake
I am currently working on a project that records HTML5 canvas drawings and allows you to play them back later. There are no images, everything is stored in the Javascript/JSON. There is no audio, so I plan on adding a transcript feature along with it. If you want to follow along with my project, it is at http://github.com/eipark. The code is still very much raw and buggy, but I am actively developing it for a school project and hope to have at least the "video" recording portion done in the next week.
I have a sound element that is actually a composition of several different sounds. My approach had been to only have to load a single source for sound, and play different segments based on the desired sound bite.
I can seek to the start point just fine by setting the 'currentTime' property. However, setting the 'duration' property does not seem to have any affect what-so-ever.
I've tried to use a setTimeout, but, as expected, the timer resolution is not sufficient to get consistent behavior in the audio (sometimes it does not play at all, and when it does play it's 'stop' point is inconsistent).
Is this possible? Or will I be stuck loading each sound bite in it's own individual element?
Remy Sharp has posted about this as Audio Sprites (and fixes for iOS). Does that implementation work for you?
I am working on a Flash Video player and am implementing the ability to start a video at x time within the span of an FLV (served from FMS). I am able to start it x seconds into a stream without any issue using
netStream.play(source, startTime);
but as far as I can tell, it only supports seconds. I am looking to be able to give a start time (or even a seek time if that is supported) in milliseconds, or really anything more precise than whole seconds.
Anyone know of any way to achieve this even by monkey patching the fl classes?
Thanks,
Doug
Well the seek will allow you to seek by a number of frames, but the spec says that it only seeks to the closes I-Frame in the FLV. That will become a problem with any method you use, because the I-Frames are the only ones that actually contain the whole picture frame (here's the gist of that).