gpt4 book ai didi

java - 如何在 Google App Engine Blobstore 上提供 mp4 流媒体视频

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:15 31 4
gpt4 key购买 nike

我正在使用 GAE 提供大文件,我可以使用简单的 blobstoreService.serve(key, res); 成功提供 mp3 如果我将资源 url 放在浏览器中,媒体控件将出现和/或媒体播放器将启动,音乐将在下载完成前开始播放。

但是,当我在 Chrome 中放置一个 mp4 url​​ 时,控件出现但没有任何反应。以下是我所做的:

  1. 没有内容处置以避免下载。如果我放置内容配置,那么浏览器将下载视频。
  2. 我什至使用 ffmpeg 来转换视频并在那里放置 -movflags faststart 选项但没有区别。
  3. 我还将第一个请求的响应 header 设置为 Accept-Ranges:bytes,并且我观察到下一个请求仍然要求完整的 75MB 范围。即使浏览器要求全部提供,我是否应该只提供部分服务?
  4. 或者如何让浏览器知道我想逐段提供服务,以便请求有范围。内容长度是否必要?我应该处理 HEAD 请求吗?我相信现在我的 servlet 只处理 GET。
  5. 我的网址是http://www.somesite.com/serve?folder=aa&file=ok.MP4 Chrome 控制台显示只下载了 1MB,然后就停止了
  6. 除了我的 GAE url 是 src 之外,html 代码如下所示。示例 mp4 有效,但如果我的 gae 链接在那里,它根本不显示视频。

问题

在 GAE 服务器端究竟需要做什么才能使用流式处理视频?

回答

标记的答案有足够的关于如何提供 mp4 文件的信息,它还提供了一个用于演示的实时网页。从该演示中,我可以看出我的网站可以提供 mp4 文件,只要 Chrome 浏览器可以对其进行解码。我遇到的问题是由于 ffmpeg 中使用的编解码器无法被 Chrome 识别。更改为 H.264,一切正常。

这里是ffmpeg命令行的一个例子,其中OK.MTS是摄像机文件,要上传output1.mp4:

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

最佳答案

您的处理程序是否将正确的 Content-Type 放入响应 header 中?您需要设置“Content-Type:video/mp4”才能正确播放视频。

Here是我在 App Engine 上编写的一个测试站点,可以播放 Cloud Storage 和 BlobStore 中的 mp3、ogg 和 mp4 文件。

Here是指向 BlobStore 中使用 serve() 返回文件的 mp4 文件的链接。当我将此链接粘贴到 chrome 时,内容可以正常播放。

关于java - 如何在 Google App Engine Blobstore 上提供 mp4 流媒体视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27097584/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com