javascript - HTML5 和 PHP : Play base 64 encoded video file

标签 javascript php html html5-video

我正在尝试使用 HTML5 数据 URI 播放 Base 64 编码的 MP4。由于某种原因,视频无法播放。该方法适用于图像文件(jpeg 和 png),但由于某种原因,它不适用于媒体文件。

在客户端我有:

document.getElementById("video_holder").src = "data:video/mp4;base64,"  + xmlhttp.responseText;

HTML 类似:

<video controls> <source type="video/webm" src="" id="video_holder" />...

我使用 PHP 获取文件并在将其发送给用户之前对其进行 base64 编码:

$file = file_get_contents($path);
echo chunk_split(base64_encode(trim($file)));

我也尝试过:

$file = file_get_contents($path);
echo base64_encode(trim($file));

有什么建议吗?

最佳答案

我想说你首先需要在 JavaScript 中解码你的 Base 64 文件。这是解释here但有些浏览器不支持。

然后我会创建一个 Blob object从解码的文件中,然后创建一个 objectURL从 blob 中获取此 objectURL 作为 HTML5 视频标记的 src。

我还没有这样做,但如果必须的话,我会这样做。为什么首先需要对视频文件进行 Base64 编码?这会产生开销并增加处理时间。如果您需要加密,DRM 解决方案会更好。

关于javascript - HTML5 和 PHP : Play base 64 encoded video file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26766336/

相关文章:

jquery - 如何在页面中央显示文本并在 slider 后显示该文本动画?

javascript - 如何使引导导航栏背景透明淡入网页

php - 处理数据修改

javascript - 更新或附加 URL 参数而不是替换整个 URL

javascript - 在特定的 optgroup 中选择一个值

javascript - 字符串 JavaScript 中的常见字符数

PHP 和 Doctrine : how to create unique IDs

html - 响应式网页缩小以适应 iOS 上的整个页面

javascript - jQuery 根据内容删除 Div

javascript - 如何将具有值的行/列添加到数据表 csv 导出