HTML5和PHP:播放base 64编码的视频文件

时间:2014-11-05 20:19:16

标签: javascript php html5 html5-video

我正在尝试使用HTML5数据URI播放基本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获取文件,并在将其发送给用户之前对其进行编码:

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

我也尝试过:

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

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

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

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