HTML5 video element non-seekable when using Django development server

时光毁灭记忆、已成空白 提交于 2019-12-05 21:18:00

问题


I've got a Django app serving a webpage with an HTML5 element. There's a wierd "feature", turning the video element to be non-seekable: video.seekable returns a timeRanges object with length=0, whereas it should be length=1.

This means I can't edit the video. JavaScript can't do anything either.

The thing is, when I upload the problematic webpage, statically - no Django, just plain HTML/JS/CSS - to my website for testing, it works fine - length=1.

However, if I try to serve the same static page on my Django dev server still gives the same problem.

I am using Django's static serving for dev/debug purposes - Do you have any idea what is causing this, or how can I fix it?

Thanks.


回答1:


Django's dev server probably doesn't support HTTP byte ranges, which is what browsers usually use to implement seeking.

Any production web server, e.g. Apache, lighttpd, or nginx, should support these fine. If you can run your entire Django app one of these servers the problem should go away.

A workaround would be to just serve the video from a server like that: set one of them up to statically serve the video directory on your machine on a different port than Django's dev server, and then in your dev environment either change the <video src= URL to point to the new web server, or write a special view for videos that redirects to the new web server.




回答2:


I didn't ran into anything like that myself, but I can guess, that Django development server can't stream a video "just like that". You might have to use ETAG middleware to cure this.

Take look at this question: How to stream an HttpResponse with Django




回答3:


Also note the current builtin dev server is single-threaded so it may freeze easyly.

The concurrent test server : https://github.com/jaylett/django_concurrent_test_server is better for streaming/uploads... (not usable in prod)



来源:https://stackoverflow.com/questions/4538810/html5-video-element-non-seekable-when-using-django-development-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!