-
Notifications
You must be signed in to change notification settings - Fork 313
Pseudo Streaming - seek ahead of buffer in Flash #13
Comments
Any updates on this feature? |
No, no one's stepped up to implement this yet, and we've got HLS and RTMP ahead of it on the priority list. |
The only thing you can do is adding a flv source to the video so flash is able to seek it.. |
Any news on this? I would have tried to fix myself, but my flash skills are terrible. |
Hi, any news? |
Sorry, no news on this yet. The usual contributors are busy with other priorities. If anyone's interested in trying, feel free to post questions here. |
@heff any news on this? Can you help me in right way, maybe I could contribute |
If you have time to attempt this that would be great! I don't have the Flash knowledge to tell you the right way to go about it, but if you search for flash pseudo streaming you may find some example implementations. |
Hello, |
@ange007 I played a bit with the code today, and this is so far as I have come papoola@959c63e I can't test the code and I think there are more changes needed. Practically I need you or / and some other people to help testing and finding errors. There is a new param introduced which you can pass to to new SWF file : |
@papoola, I took the changed *.swf file, and checked so: vjs.Flash.prototype.play = function(){
this.el_.vjs_setProperty('pseudoStreamStartParam', 'start');
this.el_.vjs_play();
}; But it didn't work, there are no requests when rewinding. |
@ange007 is it possible for you to set a test video on a remote server with ?start=.. support so I can test this. Or if you know a simple node module for psuedo stream server I could try to implement this in code for testing. |
Like this? |
Excuse - my error, it is necessary to write so: // Merge default flashvars with ones passed in to init
flashVars = vjs.obj.merge({
// SWF Callback Functions
'readyFunction': 'videojs.Flash.onReady',
'eventProxyFunction': 'videojs.Flash.onEvent',
'errorEventProxyFunction': 'videojs.Flash.onError',
// Player Settings
'autoplay': playerOptions.autoplay,
'preload': playerOptions.preload,
'loop': playerOptions.loop,
'muted': playerOptions.muted,
//@todo: PseudoStreaming check
'pseudoStreamStartParam': 'start'
}, options['flashVars']), or //@todo: PseudoStreaming check
if( options.pseudoStreamStartParam )
{
flashVars['pseudoStreamStartParam'] = options.pseudoStreamStartParam;
} So parameter is transferred, but the number in an incorrect format is visible, or still something - video starts playing with the beginning.
|
Having taken as a basis @papoola development already some things to mind, but there is a nuance: |
@papoola, the work you're doing looks good. Can we get a pull request on the main repo? @ange007 we could pass the |
@papoola, now I will lay out the corrected version. |
@papoola, look at it: https://github.com/ange007/video-js-swf/commit/b3b7f1e65a3f5aef666d42eaf22863233e08e9a4 |
@ange007 wow looks like you have been working alot :) I am reviewing changes, trying to understand the code - particularly looking at role of startOffset |
I filled in one more commit: https://github.com/ange007/video-js-swf/commit/e572cb5367475a920b098f5ba50e5dd00afbffef Current visible problems:
P.S. It is probably necessary to clean the buffer somehow? |
Is it possible to do it with standard HTTP range requests (i.e. same as browsers with video tag) ? |
@mwisnicki : To my understanding, the Flash Player doesn't support byte range requests. |
Given the situation with Flash, personally I'd say this isn't required anymore. Modern browsers are more than capable of playing videos, and supporting this ancient flash technology only prolongs inevitable deprecation of this dead-in-the-water technology. |
If that's the case then remove the flash fallback entirely. While the flash fallback exists, I think it makes sense to keep its features as close to parity with the JS player as possible. FWIW I think there's still a need for the Flash fallback, as not all browser + O/S combinations support all video formats yet. |
@zofrex The sooner Flash dies, the better, and it's the same principle as those who argue that IE8/9 should be supported. If everyone kills support for these products, people will upgrade a lot quicker and the world will be a better place. In fact just one hour ago, we have 15 new vulns for Flash... And these are just the ones we know about. |
@foxx, that's a valid point, but I think you also have to consider why people want to use a library like Video.js. If we only cared about modern browsers, we could save ~80K and just use native HTML5 for a lot of applications. The last time I checked, IE8 still has significant market share, so a lot of people can't afford to leave those users out. Just my 2 cents. :) |
@dominic-p Agreed, and you've hit the nail on the head, the catch 22 of market share. They continue to hold market share because we allow them to, and getting all corporations to drop IE8 support would be like herding cats. The moment one company drops support for it, another will step up and use their legacy support as a marketing advantage lol. Plenty of people out there will to sacrifice developer sanity for the sake of profits and market share. I'm almost certainly off-topic now, but more than happy to continue this convo on Reddit :) |
It's quite sad that almost 2 years later now this has not been implemented yet. |
This stuff isn't easy. Flash wasn't built with this in mind. Everyone here happens to be a volunteer and is working hard to build out this feature on their own time. If you rely upon video-js-swf for your business already, these folks deserve your gratitude and respect for their very hard work. Can you offer any suggestions to give back and contribute to the development? Do you have any time to volunteer for reviewing code or testing? I'd contact you with some ideas, but it looks like your account was just created today. On Feb 27, 2015 7:02 AM, "omni1000" notifications@github.com wrote:
|
Personally I'd say force people to upgrade their browsers, Flash will be dead in a few years anyway. |
Yeah only reason we needed this feature was to support preview files of our media in all browsers, and we had chosen mp4. Only browser which needed flash fallback in order to play mp4 was FF until recently they also decided to support mp4. So we are now happy that playback and partial requests work out of the box with mp4 and almost any browser without use of Flash :-) |
@dave-hansen You are absolutely correct, unfortunately I can not volunteer any time to the project. My respect for everyone involved is big and I am thankful for all the progress being done. While my "tone" may have left the wrong impression, my comment was more directed towards the fact that being such a successful project, one would expect VideoJS to be able to handle seeking with flash. Not because it is easy, but because the project has become very important and has grown big, and as such it is now being used in production by many, including the service that I work for. @foxx We've started forcing users to upgrade/change their browsers since i wrote my comment the other day and todays stats show ~4% error rate compared to almost 8% when i wrote the comment. So yes, this will have to do the job, at least for those who know what an upgrade is (and are not still on Win XP) @papoola I think that even in it's latest iteration, FF on Mac plays mp4 with a flash fallback. |
Regarding Firefox, I'm fairly certain as of FF 36 this isn't the case (but I could be wrong). I use FF Developer Edition, and I'm positive that mp4 playback is native at this moment. |
Firefox should have it in FF36 across all OSes now. |
@omni1000 I do have latest FF on my mac and it does play mp4 natively and partial requests work too. |
This function has been support? @papoola @ange007 @heff But there is no response……
|
@githubzhaoqian, This functionality isn't accepted yet by developers: #135 |
Any update with PR #135 ? I would really appreciate if the function is supported. |
Since the demo has been finished already about 5 months here #1742, is it in the plan to include this function in the next version? I'm eager to use this to improve the flv file playback experience. |
Any news on this issue? I'm now considering switching to JWPlayer because of this limitation... |
Honestly, just switch over. Flash will be dead in a few years time, if not sooner. Anyone still using Flash to play videos needs to upgrade their system, period. Recommend that this issue is closed/rejected for the sake of humanity. |
@foxx |
My use case involve previewing video files from external sources. Most of them uses HTML5 video compatible format but some of the bigger one stills uses flash. For example, twitch.tv still uses FLV format for lots of their videos. Not being able to seek in a 6h VOD file is just stupid and awful UX. I know flash should be dead but lots of videos service stills uses FLV format. @foxx, did you looked at this repository name before suggesting dropping support for flash? The goal of this plugin IS to have decent flash support in videoJs. The thing that bugs me is that @ange007 seems to have a working solution, yet the feature has not been reviewed nor merged in months. |
The comment thread for #135 contains a number of questions and suggestions by @heff for steps moving forward. These have yet to be addressed or spoken to by the submitter. The code submitted touches some of the most important pieces of the the app. Changes of this scale and severity must be carefully considered. While I'm not involved in maintaining this project, I would not expect this to be merged without analysis by other Flash developers or additions to the test suite. I also suggest this thread be closed with discussion moving to the Pull Request by @ange007. Perhaps that will encourage more contributions. |
@hubertperron I did indeed look at the repository name, and if you look at the thread history, you'll see I've been commenting on this since 2013. And yes, I am implicitly stating that this project should be terminated for the good of mankind. It has poor performance, security vulnerabilities that will scare even the most seasoned researcher and is not a nice technology to work with. The sooner we all combine forces to get rid of Flash, the quicker it will happen. See Occupy Flash. I can only hope that the maintainers of VideoJS make a stand and "do the right thing" :) |
As I said in the comment on the core repo, we've decided not to pull this in. Huge thanks for the contributions, @ange007 and thank you for the input everyone. |
Excellent, another nail in the Flash coffin. She'll be dead soon enough... |
Webserver-modules like "ngx_http_mp4_module" or "mod_h264_streaming" allow Flash-clients to seek a video beyond the downloaded buffer line, using a "start"-parameter, e.g.:
http://server.com/path/to/video.mp4?start=10
The article about JWPlayer mentions this feature:
http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5/12534/video-delivery-http-pseudo-streaming
Thanks a lot
Markus
other keywords: byte range request
The text was updated successfully, but these errors were encountered: