我正在尝试使用 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/