视频预览遇到的坑

10 篇文章 0 订阅
5 篇文章 0 订阅

总结下视频预览遇到的坑:
1、视频预览–后台返回base64或二进制流arraybuffer格式(我们一般直接返回url使用即可,处于安全考虑,现在需求就是这样)
问题一:
base64方式:videosrc = 'data:' + content-Type + ';base64,' + base64Code(base64Code是指返回的base64)。这个拼接可前端可后端,建议后端做,因为可能存在换行问题,需要将base64Code.repalce("\r\n","")。如果是前端:base64Code.replace(/[\r\n]/g,"")。一般来说,小文件用base64,比如一些图标。
其次入错存在unsafe安全策略:需要做如下修改
1、angular中引入private santizer: DomSantizer.也可不用引入用$申明全局。
2、使用方式以视频为例子:

<video controls>
	<source [src]="this.santizer.bypassSecurityTrustResourceUrl(videosrc)"
</video>
# 讲到这里该santizer,你可研究下,里面下载不可信也是里面设置。

如果是安全策略问题,请查看官网
这里举个web.xml的例子(也可以写在meta中):里面的还设置更多,实际参考官网。

    <init-param>
      <param-name>Content-Security-Policy</param-name>
      <param-value> default-src 'self';script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src *; media-src 'self' data: blob:; </param-value>
    </init-param>

接着上面的:
blob方式:返回arraybuffer方式,需要指定格式将这个流转为blob。其次response其纯二进制流格式,如果不是请解析。这里涉及一个坑,angular也好、vue也好默认都是json解析。框架里面还有个bug。这个json格式无法改变。如果需要请自己写ajax做解析或者原生的XMLRequset解析。
如果使用ajax,引入jquery:

declare var $: any

# 你就可以使用
$.ajax
# 你就可以使用他来获取值
const text = $('#textId').val();

使用:

let vodieblob = new Blob([response],{type: contentType});
this.videosrc = URL.createObjectURL(vodieblob);
<video controls>
	<source src="{{videosrc}}"
</video>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: android pjsip是一个开源的多平台音视频通信库,用于实现VoIP通信功能。在使用android pjsip时,如果本地视频预览模糊,可能是由于以下原因导致的: 1. 分辨率设置:检查本地视频预览的分辨率设置是否合适。如果分辨率设置过低,视频预览会显得模糊。可以尝试提高分辨率,以获得更清晰的预览效果。 2. 图像压缩参数:pjsip支持对音视频数据进行压缩,以节约带宽和提高传输效率。但是,在压缩图像数据时,会有一定的图像质量损失。检查压缩参数的设置,尝试调整参数以改善图像质量。 3. 硬件设备:本地视频预览的模糊还可能与硬件设备有关。如果手机的摄像头或显示屏的质量较低,会影响视频预览的清晰度。可以尝试在其他设备上进行测试,以确定问题是否与硬件设备有关。 4. 视频编码器:pjsip支持多种视频编码器,而不同的编码器对图像质量的处理也会有差异。检查所使用的视频编码器及其参数设置,尝试调整以获得更好的图像质量。 总之,如果android pjsip的本地视频预览模糊,可以从分辨率、图像压缩参数、硬件设备和视频编码器等方面进行调整和优化,以改善图像的清晰度。 ### 回答2: Android pjsip是一种在Android平台上使用的开源VoIP库,用于实现音视频通话功能。在使用pjsip库的过程中,有时会遇到本地视频预览模糊的问题。 出现本地视频预览模糊可能有以下几个原因: 1. 像素问题:检查本地视频的分辨率设置,确保使用的是适合的分辨率,以避免画面模糊。可以通过调整pjsip的视频参数,设置合适的分辨率。 2. 编码问题:检查视频编码相关的设置,确保使用的编码器和参数适合本地设备。有些编码器可能对低分辨率下的视频表现不佳,导致模糊。可以尝试更换编码器或调整编码参数。 3. 视频帧率问题:调整视频的帧率设置,确保设置的帧率在设备支持范围内,避免由于帧率过低导致视频卡顿和模糊。 4. 其他硬件或软件问题:本地视频预览模糊可能与设备的硬件性能、摄像头质量、显示屏幕的分辨率等有关。使用不同的设备进行测试,检查是否存在硬件或驱动问题。 如果以上方法都无法解决问题,可以尝试查阅pjsip官方文档或相关论坛,寻找其他开发者遇到类似问题的解决办法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值