Java 如何在谷歌应用程序引擎Blobstore上提供mp4流媒体视频
我使用GAE来服务大文件,我可以使用一个简单的Java 如何在谷歌应用程序引擎Blobstore上提供mp4流媒体视频,java,google-app-engine,video-streaming,mp4,blobstore,Java,Google App Engine,Video Streaming,Mp4,Blobstore,我使用GAE来服务大文件,我可以使用一个简单的blobstoreService.service(key,res)成功地服务mp3如果我将资源url放入浏览器,媒体控件将出现和/或媒体播放器将启动,音乐将在下载完成之前启动 然而,当我把一个MP4URL放到Chrome中时,控件出现了,但什么也没发生。以下是我所做的: 没有避免下载的内容配置。如果我放置了内容配置,那么浏览器将下载视频 我甚至使用ffmpeg转换视频,并将-movflags快速启动选项放在那里,但没有区别 我还将响应头设置为第一个请
blobstoreService.service(key,res)成功地服务mp3
如果我将资源url放入浏览器,媒体控件将出现和/或媒体播放器将启动,音乐将在下载完成之前启动
然而,当我把一个MP4URL放到Chrome中时,控件出现了,但什么也没发生。以下是我所做的:
Accept Ranges:bytes
,并且我观察到下一个请求仍然要求完整的75MB范围。即使浏览器要求全部,我是否应该只提供部分服务ffmpeg -i ok.MTS -codec:v libx264 -profile:v baseline -preset slow -b:v 500k -maxrate 800k -bufsize 1000k -vf scale=-1:432 -threads 0 -b:a 96k output1.mp4
处理程序是否将正确的内容类型放入响应头中?您需要设置“内容类型:视频/mp4”才能正确播放视频 是我在AppEngine上写的一个测试站点,它可以播放来自云存储和BlobStore的mp3、ogg和mp4文件
是指向BlobStore中使用serve()返回该文件的mp4文件的链接。当我将此链接粘贴到chrome中时,内容将正确播放。感谢您的网站。真奇怪。我的浏览器也有类似的响应,只是Chrome只下载1MB并停止。另一个文件在1.1M处停止。我注意到,尽管我明确尝试设置ContentLength,但标头没有设置。我认为我们不允许您在使用serve()时设置该标头,因为响应是分块的。感谢您提供此信息。如果只使用bsService.service(key,res),blob服务如何查看范围?我使用Chrome,可以看到响应范围与请求范围相匹配,尽管块在几MB后停止。也许我的文件太大了?75MB是不是太大了?请阅读文档,其中特别提到了如何提供一系列服务: