我正在尝试使用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));
有什么建议吗?
答案 0 :(得分:1)
我会说你首先需要在JavaScript中解码你的Base 64文件。这解释为here,但有些浏览器不支持它。
然后我会从已解码的文件中创建一个Blob object,然后从blob创建一个objectURL并将此objectURL作为HTML5视频标记的src推送。
我还没有这样做,但如果必须的话,我会这样做。为什么首先需要对视频文件进行base64编码?这可能会产生开销并增加处理时间。如果您需要加密,DRM解决方案会更好。