Dos métodos comunes de gestión de derechos digitales de encriptación de video y algoritmos de encriptación y ejemplos de aplicación:
La gestión de derechos digitales (DRM) cifra el vídeo.
La gestión de derechos digitales hace referencia al uso de la tecnología de gestión de derechos digitales para cifrar y proteger el contenido de vídeo. Esto se puede hacer agregando identificadores criptográficos especiales, licencias o restringiendo el acceso a los archivos de video.
El algoritmo de encriptación encripta el video.
El contenido de video se encripta usando varios algoritmos de encriptación. Los algoritmos de cifrado comunes incluyen algoritmos de cifrado simétrico (como AES) y algoritmos de cifrado asimétrico (como RSA). Al cifrar datos de video, solo los usuarios con la clave de descifrado correcta pueden descifrar y ver el video.
Ejemplo de código de jugador:
<div id="player"></div>
<script src="//player.polyv.net/script/player.js"></script>
<script>
var player = polyvPlayer({
wrap: '#player',
width: 800,
height: 533,
vid: '88083abbf5bcf1356e05d39666be527a_8',
playsafe:'81814fed-bdd0-4506-bec1-ebc8093148c5-hfevwsfxcsbcocx',
//playsafeUrl:'https://myDomain.com/token', // 业务方自定义的获取播放凭证接口URL,与playsafe参数二选一
ts:'1568131545000',
sign:'88313661ba7ded642c7b557b0a364b4b'
});
//切换加密视频时,需要重新获取播放凭证。如果初始化播放器时使用了playsafeUrl参数,则播放器会自动获取新的凭证,无需传playsafe参数。
player.changeVid({
vid: '88083abbf5bcf1356e05d39666be527a_9', //需要切换的视频vid
playsafe: '81814fed-bdd0-4506-bec1-ebc8093148c6-hfevwsfxcsbcocx', //新获取的playsafe token
sign: '88313661ba7ded642c7b557b0a364b4c', //新获取的sign和ts参数
ts: '1568131545001'
});
</script>
Obtener certificado de reproducción de video
/**
* 获取点播加密视频的播放token
*/
@PostMapping("/getVodToken")
@ResponseBody
public ResponseVO getVodToken(@RequestBody GetTokenRequestVO tokenReq, HttpServletRequest request) throws IOException, NoSuchAlgorithmException {
// 请求参数处理
String videoId = tokenReq.getVideoId();
String viewerId = tokenReq.getViewerId();
if (StringUtils.isEmpty(videoId) || StringUtils.isEmpty(viewerId)) {
return ResponseVO.failure("argument is error");
}
Map<String, Object> args = new HashMap<>(16);
args.put("videoId", videoId);
args.put("viewerId", viewerId);
args.put("viewerIp", IPUtil.getIPAddress(request));
args.put("viewerName", tokenReq.getViewerName());
args.put("expires", tokenReq.getExpires());
args.put("disposable", tokenReq.getDisposable());
args.put("iswxa", tokenReq.getIswxa());
args.put("userId", USER_ID);
args.put("ts", System.currentTimeMillis());
// 去除空值参数
Map<String, String> params = args.entrySet()
.stream()
.filter(entry -> entry.getValue() != null)
.collect(
Collectors.toMap(Map.Entry::getKey, entry -> String.valueOf(entry.getValue()))
);
// 请求参数签名
params.put("sign", LiveSignUtil.getSign(params, SECRET_KEY));
// 向保利威服务器请求Token
TokenVO vo = RequestTokenService.requestTokenFromServer(params);
if (vo == null || vo.getCode() == null || vo.getCode() != HttpStatus.OK.value()) {
return ResponseVO.failure("请求数据失败");
} else {
// TODO 在返回Token前建议实现自己的加密逻辑,以免在网络传输过程中泄露Token
return ResponseVO.success(vo.getData());
}
}
▲ Captura de pantalla del efecto
Mis recomendaciones de artículos populares
- Prueba de efecto del cambio de director en la nube en línea para transmisión de video en vivo multicanal
- ¿Cómo convertir el video en un código QR, escanear el código y reproducirlo directamente?
- ¿Qué sitios web suben videos sin insertar anuncios?
- ¿Cómo generar un código QR a partir de un vídeo? ¿Escanea el código QR en WeChat para verlo? sin publicidad
- Tabla de comparación de tamaño de foto de uso común, el tamaño de la foto está justo en esta tabla
- Estrategia de transmisión de video en vivo (interfaces de transmisión push de las principales plataformas organizadas)
- Función de reproducción de video HTML5 a doble velocidad
- Te enseño un truco: ¿cómo realizar una lista de reproducción de múltiples videos?
- Cómo implementar la función de reproducción de videos en la lista de videos en la cuenta pública de WeChat
- Función de reproducción de vídeo a doble velocidad H5 (un ejemplo de función de visualización de vídeo a varias velocidades)
- Cómo configurar un servidor FTP
- Cómo cargar archivos mediante FTP (transferencia de archivos FTP)
- Guía del usuario de OBS Live Tool/Herramienta para enviar fuentes de video en vivo a servidores de OBS
- El navegador QQ secuestra la etiqueta de video para cargar su propio anuncio (¿cómo resolverlo?)