jquery Base64值不适用于视频标记?

alen0pnh  于 2023-05-06  发布在  jQuery
关注(0)|答案(3)|浏览(112)

我添加srcvideo source与base64值,但它不工作在这里是我的html

<video id="video" controls> 
  <source type="video/mp4"  id="jh">  
</video>

我的js是

$("#vd").click(function(){   
        $.ajax({
                url:"RetriveVedio",
                method: "get",
                dataType: 'text', 
                success:function(response){
                    console.log(response);

                     var src = 'data:video/mp4;base64,'+response;
                  $("#video").find("#jh").attr("src", src);
                // $('#video').load();
                 $("#video").trigger('load');
                 $("#video").trigger('play'); 
                }    
        });      
    });

来自服务器的base64值是AAAAGGZ0eXBtcDQyAAAAAG1wNDFpc29tBNjldm1kYXQAAAAAAAAAEAA=值被添加到source,就像这个<source type="video/mp4" id="jh" src="data:video/mp4;base64,AAAAGGZ0eXBtcDQyAAAAAG1wNDFpc29tBNjldm1kYXQAAAAAAAAAEAA=">,但是视频没有播放。我找不到了,有谁能帮我吗?
没有解决办法吗??

8fq7wneg

8fq7wneg1#

我最近遇到了这个问题,我的解决方案是将src属性直接添加到<video>元素上。喜欢

<video src="-base64 string here-" width="xx" height="yy">
    Your browser does not support HTML5 video.
</video>

<source>元素中添加src导致视频不做任何事情。

mw3dktmi

mw3dktmi2#

  • "...但是视频没有播放。我找不到了,有谁能帮我吗?“*

(1)您的字符串“AAAAGGZ0eXBtcDQyAAAAAG1wNDFpc29tBNjldm1kYXQAAAAAAAAAEAA=”只提供41字节。这不足以播放视频。

00 00 00 18 66 74 79 70 6D 70 34 32 00 00 00 00         ....ftypmp42....
6D 70 34 31 69 73 6F 6D 04 D8 E5 76 6D 64 61 74         mp41isom.Øåvmdat
00 00 00 00 00 00 00 10 00                              .........

(2)你的字节以mdat开始(这是一个混合在一个组中的a/v数据),解码器需要文件的moov部分(它有元数据)来知道frame 1字节在所有混合的mdat部分中的开始/结束位置。最好先用moov制作MP4文件,然后用mdat
使用关键字在线查找修复工具:fast start MP4 moov at front
(3)因为mdat是第一个,我们可以看到它的大小在字节:04 D8 E5 76(即81.3 MB)。因此,在开始为解码器提供元数据之前,您必须接收大约81兆。
解码器需要元数据(存储在moov节中,在此mdat的81兆之后)才能显示任何内容或解码声音。

kmbjn2e3

kmbjn2e33#

是的,我的响应没有正确编码到base64值中,它是短的,不是有效的

相关问题